import { useEffect, useMemo, memo, useState } from "react"; import { motion } from "framer-motion"; import { useUI, useAudio } from "../../context/LauncherContext"; import { usePlatform } from "../../hooks/usePlatform"; interface CreditCategory { category: string; icon?: string; subcategories: { name: string; icon: string; roles: { role: string; members: { name: string; url: string; }[]; }[]; subprojects?: { name: string; roles: { role: string; members: { name: string; url: string; }[]; }[]; }[]; }[]; } const CreditsView = memo(function CreditsView() { const { setActiveView } = useUI(); const { playPressSound } = useAudio(); const { isAndroid } = usePlatform(); const [isHovered, setIsHovered] = useState(false); const shuffledAndroid = useMemo( //neo: yes im shuffling it () => [ "Peppinaramenisblack", "kacper", "tjdownchurch", "tjdownchurch's dad (rip)", "dadael3", "bekhens", "notrainbowsteve", "moth_scribe", "leader", "raymanroy", "fin", "liugu", "Zrox2013 (Zameras2013)", "kierwa", "cartox", "necmi", "theunknown", "XeroChunks (double thanks!)", "bee (quickjinxy_)", "loss_less", "ttfly", "harper", "dllie (tofou)", "recycleordie", "nezzled", "frenchwith0skill", "tarknim", "thehuckle", "gabrielblast", "nedjouamario", "bossanova", "jayem", "andrewjcf", "thingthing", "toastybaguette", "goobert", "Erickk64", "flamingphoenex", "Tymszn21", "DaPogLord", "turniphead", "ArthurDotPNG", "CounterrAct", "luckyduuckxd", "PixelatedCheese1", ].sort(() => Math.random() - 0.5), [], ); const credits: CreditCategory[] = [ { category: "Emerald Team", icon: "/images/emerald_0.png", subcategories: [ { name: "Leadership", icon: "", roles: [ { role: "Founder & Maintainer", members: [ { name: "KayJann", url: "https://github.com/KayJannOnGit" }, { name: "Architect", url: "#" }, { name: "neoapps", url: "https://github.com/neoapps-dev" }, ], }, { role: "Active Maintainer", members: [ { name: "neoapps", url: "https://github.com/neoapps-dev" }, ], }, ], }, { name: "Contributors", icon: "", roles: [ { role: "", members: [ { name: "Santiago Fisela", url: "https://github.com/PinkLittleKitty", }, { name: "Leon", url: "https://github.com/hornyalcoholic" }, { name: "Criador_Mods", url: "https://github.com/CriadorMods" }, { name: "j-carv", url: "https://github.com/j-carv" }, ], }, ], }, ], }, { category: "LCE TEAM", subcategories: [ { name: "neoLegacy", icon: "/images/neoLegacy.png", roles: [ { role: "Founder", members: [{ name: "Piebot", url: "https://github.com/Piebot" }], }, ], subprojects: [ { name: "neoStudios LCE", roles: [ { role: "Active Maintainer", members: [ { name: "Huckle", url: "https://github.com/TheHuckleDev" }, { name: "Andi_pog", url: "https://github.com/Andi-pog" }, { name: "neoapps", url: "https://github.com/neoapps-dev" }, { name: "tranqlmao", url: "https://github.com/tranqlmao" }, ], }, { role: "Contributors", members: [ { name: "Fireblade", url: "#" }, { name: "Rockefeler", url: "#" }, { name: "CDevJoud", url: "#" }, { name: "Rhys Evolution", url: "#" }, { name: "LordCambion", url: "https://github.com/LordCambion", }, ], }, ], }, { name: "Minigames Division (LMRP)", roles: [ { role: "Founders", members: [ { name: "700", url: "#" }, { name: "DankMan01", url: "#" }, ], }, { role: "Contributors", members: [ { name: "xxxtentactcles", url: "#" }, { name: "salad", url: "#" }, ], }, ], }, ], }, { name: "360 Revived", icon: "/images/360_revived.png", roles: [ { role: "Founder", members: [ { name: "BluTac10", url: "https://github.com/BluTac10" }, { name: "TheGrimReaper", url: "#" }, ], }, ], }, { name: "Hellish Ends", icon: "/images/hellishEndsIcon.png", roles: [ { role: "Founder", members: [ { name: "DeadVoxelx", url: "https://github.com/DeadVoxelx" }, ], }, ], }, { name: "Revelations", icon: "/images/revelations.png", roles: [ { role: "Founder", members: [{ name: "Revela", url: "https://github.com/Revela" }], }, ], }, { name: "Project Lost Legacy", icon: "/images/lostlegacy.png", roles: [ { role: "Founder", members: [{ name: "SailsYT", url: "#" }], }, ], }, { name: "Minecraft: Moon Edition", icon: "/images/moonEdition.png", roles: [ { role: "Founder", members: [{ name: "BlazinBlaze", url: "#" }], }, ], }, ], }, { category: "SPECIAL THANKS", icon: "", subcategories: [ ...(isAndroid ? [ { name: "Android Beta Testers", icon: "", roles: [ { role: "", members: shuffledAndroid.map((name) => ({ name, url: "#", })), }, ], }, ] : []), { name: "Discord Booster", icon: "/images/Nitro Boost.png", roles: [ { role: "", members: [ { name: "mr_anilex", url: "#" }, { name: "faisal508508", url: "#" }, { name: "dr.av", url: "#" }, { name: "alreadywarned", url: "#" }, { name: "andrewjcf", url: "#" }, { name: "dille", url: "#" }, { name: "neoapps", url: "#" }, ], }, ], }, { name: "Ko-fi Supporters", icon: "/images/kofi_symbol.svg", roles: [ { role: "", members: [{ name: "faisal508508", url: "#" }], }, ], }, ], }, ]; useEffect(() => { const handleKey = (e: KeyboardEvent) => { if (document.activeElement?.tagName === "INPUT") return; if (e.key === "Escape") { playPressSound(); setActiveView("main"); } }; window.addEventListener("keydown", handleKey); return () => window.removeEventListener("keydown", handleKey); }, [setActiveView, playPressSound]); return (
Minecraft is a trademark of Mojang Synergies AB. This project is not affiliated with, endorsed by, sponsored by, or specifically approved by Mojang, Microsoft, or 4J Studios.