// ==UserScript== // @name Global Game Navigation (PC/Mobile) // @namespace https://greasyfork.org/zh-CN/users/xxxxx // @version 4.0 // @description One-click access to 500+ game sites worldwide, with categories, search, and 16 major languages. // @author Someone // @match *://*/* // @grant none // @license MIT // @icon https://www.google.com/s2/favicons?domain=poki.com // ==/UserScript== (function() { 'use strict'; // ======================= 多语言资源包 ======================= const translations = { en: { panelTitle: "🌍 Global Game Navigation", searchPlaceholder: "🔍 Search site name...", noResults: "😔 No matching sites found. Try another keyword.", langLabel: "Language", categories: { "🌐 Global Platforms": "Global Platforms", "🎨 Indie & Creative": "Indie & Creative", "📀 Retro & Flash Archive": "Retro & Flash Archive", "⚔️ Multiplayer & .io Games": "Multiplayer & .io Games", "☁️ Cloud & China Platforms": "Cloud & China Platforms", "🎓 Educational / School Accessible": "Educational / School Accessible", "🇯🇵 Japan & Korea & East Asia": "Japan & Korea & East Asia", "🌏 Southeast & South Asia": "Southeast & South Asia", "🐫 West Asia, Central Asia & Africa": "West Asia, Central Asia & Africa", "🇪🇺 Europe & Oceania": "Europe & Oceania", "🌎 Americas (North & Latin)": "Americas (North & Latin)", "🔗 Initial Provided Links": "Initial Provided Links" } }, zh: { panelTitle: "🌍 全球游戏导航", searchPlaceholder: "🔍 搜索网站名称...", noResults: "😔 没有找到匹配的网站,试试其他关键词", langLabel: "语言", categories: { "🌐 Global Platforms": "全球综合平台", "🎨 Indie & Creative": "独立创意 & 小众精品", "📀 Retro & Flash Archive": "怀旧经典 & Flash存档", "⚔️ Multiplayer & .io Games": "多人竞技 & .io 游戏", "☁️ Cloud & China Platforms": "云游戏 & 国内平台", "🎓 Educational / School Accessible": "教育/校园可访问", "🇯🇵 Japan & Korea & East Asia": "日韩 & 东亚", "🌏 Southeast & South Asia": "东南亚 & 南亚", "🐫 West Asia, Central Asia & Africa": "西亚 & 中亚 & 非洲", "🇪🇺 Europe & Oceania": "欧洲 & 大洋洲", "🌎 Americas (North & Latin)": "美洲(北美/拉美)", "🔗 Initial Provided Links": "最初提供的链接" } }, ja: { panelTitle: "🌍 グローバルゲームナビ", searchPlaceholder: "🔍 サイト名を検索...", noResults: "😔 一致するサイトが見つかりません", langLabel: "言語", categories: { "🌐 Global Platforms": "グローバルプラットフォーム", "🎨 Indie & Creative": "インディーズ&クリエイティブ", "📀 Retro & Flash Archive": "レトロ&Flashアーカイブ", "⚔️ Multiplayer & .io Games": "マルチプレイ&.ioゲーム", "☁️ Cloud & China Platforms": "クラウド&中国プラットフォーム", "🎓 Educational / School Accessible": "教育/学校向け", "🇯🇵 Japan & Korea & East Asia": "日本・韓国・東アジア", "🌏 Southeast & South Asia": "東南アジア・南アジア", "🐫 West Asia, Central Asia & Africa": "西アジア・中央アジア・アフリカ", "🇪🇺 Europe & Oceania": "ヨーロッパ・オセアニア", "🌎 Americas (North & Latin)": "アメリカ大陸", "🔗 Initial Provided Links": "最初のリンク" } }, ko: { panelTitle: "🌍 글로벌 게임 내비게이션", searchPlaceholder: "🔍 사이트 이름 검색...", noResults: "😔 일치하는 사이트가 없습니다", langLabel: "언어", categories: { "🌐 Global Platforms": "글로벌 플랫폼", "🎨 Indie & Creative": "인디 & 크리에이티브", "📀 Retro & Flash Archive": "레트로 & 플래시 아카이브", "⚔️ Multiplayer & .io Games": "멀티플레이 & .io 게임", "☁️ Cloud & China Platforms": "클라우드 & 중국 플랫폼", "🎓 Educational / School Accessible": "교육/학교 접근 가능", "🇯🇵 Japan & Korea & East Asia": "일본·한국·동아시아", "🌏 Southeast & South Asia": "동남아시아·남아시아", "🐫 West Asia, Central Asia & Africa": "서아시아·중앙아시아·아프리카", "🇪🇺 Europe & Oceania": "유럽·오세아니아", "🌎 Americas (North & Latin)": "아메리카 대륙", "🔗 Initial Provided Links": "초기 제공 링크" } }, vi: { panelTitle: "🌍 Điều hướng Game Toàn cầu", searchPlaceholder: "🔍 Tìm tên trang web...", noResults: "😔 Không tìm thấy trang web phù hợp", langLabel: "Ngôn ngữ", categories: { "🌐 Global Platforms": "Nền tảng toàn cầu", "🎨 Indie & Creative": "Độc lập & Sáng tạo", "📀 Retro & Flash Archive": "Cổ điển & Lưu trữ Flash", "⚔️ Multiplayer & .io Games": "Nhiều người chơi & .io", "☁️ Cloud & China Platforms": "Đám mây & Nền tảng Trung Quốc", "🎓 Educational / School Accessible": "Giáo dục / Truy cập trường học", "🇯🇵 Japan & Korea & East Asia": "Nhật Hàn & Đông Á", "🌏 Southeast & South Asia": "Đông Nam Á & Nam Á", "🐫 West Asia, Central Asia & Africa": "Tây Á, Trung Á & Châu Phi", "🇪🇺 Europe & Oceania": "Châu Âu & Châu Đại Dương", "🌎 Americas (North & Latin)": "Châu Mỹ", "🔗 Initial Provided Links": "Liên kết ban đầu" } }, th: { panelTitle: "🌍 ระบบนำทางเกมทั่วโลก", searchPlaceholder: "🔍 ค้นหาชื่อเว็บไซต์...", noResults: "😔 ไม่พบเว็บไซต์ที่ตรงกัน", langLabel: "ภาษา", categories: { "🌐 Global Platforms": "แพลตฟอร์มระดับโลก", "🎨 Indie & Creative": "อินดี้ & สร้างสรรค์", "📀 Retro & Flash Archive": "ย้อนยุค & คลัง Flash", "⚔️ Multiplayer & .io Games": "ผู้เล่นหลายคน & เกม .io", "☁️ Cloud & China Platforms": "คลาวด์ & แพลตฟอร์มจีน", "🎓 Educational / School Accessible": "การศึกษา / เข้าถึงได้ในโรงเรียน", "🇯🇵 Japan & Korea & East Asia": "ญี่ปุ่น เกาหลี & เอเชียตะวันออก", "🌏 Southeast & South Asia": "เอเชียตะวันออกเฉียงใต้ & เอเชียใต้", "🐫 West Asia, Central Asia & Africa": "เอเชียตะวันตก, เอเชียกลาง & แอฟริกา", "🇪🇺 Europe & Oceania": "ยุโรป & โอเชียเนีย", "🌎 Americas (North & Latin)": "อเมริกา", "🔗 Initial Provided Links": "ลิงก์เริ่มต้น" } }, id: { panelTitle: "🌍 Navigasi Game Global", searchPlaceholder: "🔍 Cari nama situs...", noResults: "😔 Tidak ada situs yang cocok", langLabel: "Bahasa", categories: { "🌐 Global Platforms": "Platform Global", "🎨 Indie & Creative": "Indie & Kreatif", "📀 Retro & Flash Archive": "Retro & Arsip Flash", "⚔️ Multiplayer & .io Games": "Multiplayer & Game .io", "☁️ Cloud & China Platforms": "Cloud & Platform China", "🎓 Educational / School Accessible": "Edukasi / Akses Sekolah", "🇯🇵 Japan & Korea & East Asia": "Jepang Korea & Asia Timur", "🌏 Southeast & South Asia": "Asia Tenggara & Asia Selatan", "🐫 West Asia, Central Asia & Africa": "Asia Barat, Asia Tengah & Afrika", "🇪🇺 Europe & Oceania": "Eropa & Oseania", "🌎 Americas (North & Latin)": "Amerika", "🔗 Initial Provided Links": "Tautan Awal" } }, hi: { panelTitle: "🌍 वैश्विक गेम नेविगेशन", searchPlaceholder: "🔍 साइट का नाम खोजें...", noResults: "😔 कोई मिलान साइट नहीं मिली", langLabel: "भाषा", categories: { "🌐 Global Platforms": "वैश्विक प्लेटफॉर्म", "🎨 Indie & Creative": "इंडी और क्रिएटिव", "📀 Retro & Flash Archive": "रेट्रो और फ्लैश संग्रह", "⚔️ Multiplayer & .io Games": "मल्टीप्लेयर और .io गेम", "☁️ Cloud & China Platforms": "क्लाउड और चीन प्लेटफॉर्म", "🎓 Educational / School Accessible": "शैक्षिक / स्कूल सुलभ", "🇯🇵 Japan & Korea & East Asia": "जापान, कोरिया और पूर्वी एशिया", "🌏 Southeast & South Asia": "दक्षिणपूर्व एशिया और दक्षिण एशिया", "🐫 West Asia, Central Asia & Africa": "पश्चिम एशिया, मध्य एशिया और अफ्रीका", "🇪🇺 Europe & Oceania": "यूरोप और ओशिनिया", "🌎 Americas (North & Latin)": "अमेरिका", "🔗 Initial Provided Links": "प्रारंभिक लिंक" } }, ar: { panelTitle: "🌍 ملاحة الألعاب العالمية", searchPlaceholder: "🔍 ابحث عن اسم الموقع...", noResults: "😔 لم يتم العثور على مواقع مطابقة", langLabel: "اللغة", categories: { "🌐 Global Platforms": "منصات عالمية", "🎨 Indie & Creative": "مستقل وإبداعي", "📀 Retro & Flash Archive": "أرشيف رجعي وفلاش", "⚔️ Multiplayer & .io Games": "ألعاب متعددة اللاعبين و .io", "☁️ Cloud & China Platforms": "السحابة والمنصات الصينية", "🎓 Educational / School Accessible": "تعليمية / يمكن الوصول إليها في المدرسة", "🇯🇵 Japan & Korea & East Asia": "اليابان وكوريا وشرق آسيا", "🌏 Southeast & South Asia": "جنوب شرق آسيا وجنوب آسيا", "🐫 West Asia, Central Asia & Africa": "غرب آسيا وآسيا الوسطى وأفريقيا", "🇪🇺 Europe & Oceania": "أوروبا وأوقيانوسيا", "🌎 Americas (North & Latin)": "الأمريكتان", "🔗 Initial Provided Links": "الروابط الأولية" } }, tr: { panelTitle: "🌍 Küresel Oyun Navigasyonu", searchPlaceholder: "🔍 Site adını ara...", noResults: "😔 Eşleşen site bulunamadı", langLabel: "Dil", categories: { "🌐 Global Platforms": "Küresel Platformlar", "🎨 Indie & Creative": "Bağımsız ve Yaratıcı", "📀 Retro & Flash Archive": "Retro ve Flash Arşivi", "⚔️ Multiplayer & .io Games": "Çok Oyunculu ve .io Oyunları", "☁️ Cloud & China Platforms": "Bulut ve Çin Platformları", "🎓 Educational / School Accessible": "Eğitim / Okul Erişimli", "🇯🇵 Japan & Korea & East Asia": "Japonya, Kore ve Doğu Asya", "🌏 Southeast & South Asia": "Güneydoğu Asya ve Güney Asya", "🐫 West Asia, Central Asia & Africa": "Batı Asya, Orta Asya ve Afrika", "🇪🇺 Europe & Oceania": "Avrupa ve Okyanusya", "🌎 Americas (North & Latin)": "Amerika Kıtası", "🔗 Initial Provided Links": "İlk Sağlanan Bağlantılar" } }, ru: { panelTitle: "🌍 Глобальная навигация по играм", searchPlaceholder: "🔍 Поиск названия сайта...", noResults: "😔 Подходящих сайтов не найдено", langLabel: "Язык", categories: { "🌐 Global Platforms": "Глобальные платформы", "🎨 Indie & Creative": "Инди и креатив", "📀 Retro & Flash Archive": "Ретро и Flash-архив", "⚔️ Multiplayer & .io Games": "Многопользовательские и .io игры", "☁️ Cloud & China Platforms": "Облачные и китайские платформы", "🎓 Educational / School Accessible": "Образовательные / для школ", "🇯🇵 Japan & Korea & East Asia": "Япония, Корея и Восточная Азия", "🌏 Southeast & South Asia": "Юго-Восточная Азия и Южная Азия", "🐫 West Asia, Central Asia & Africa": "Западная Азия, Центральная Азия и Африка", "🇪🇺 Europe & Oceania": "Европа и Океания", "🌎 Americas (North & Latin)": "Америка", "🔗 Initial Provided Links": "Первоначальные ссылки" } }, de: { panelTitle: "🌍 Globale Spielnavigation", searchPlaceholder: "🔍 Website-Name suchen...", noResults: "😔 Keine passende Website gefunden", langLabel: "Sprache", categories: { "🌐 Global Platforms": "Globale Plattformen", "🎨 Indie & Creative": "Indie & Kreativ", "📀 Retro & Flash Archive": "Retro & Flash-Archiv", "⚔️ Multiplayer & .io Games": "Mehrspieler- & .io-Spiele", "☁️ Cloud & China Platforms": "Cloud- & China-Plattformen", "🎓 Educational / School Accessible": "Bildung / Schule zugänglich", "🇯🇵 Japan & Korea & East Asia": "Japan, Korea & Ostasien", "🌏 Southeast & South Asia": "Südostasien & Südasien", "🐫 West Asia, Central Asia & Africa": "Westasien, Zentralasien & Afrika", "🇪🇺 Europe & Oceania": "Europa & Ozeanien", "🌎 Americas (North & Latin)": "Amerika", "🔗 Initial Provided Links": "Ursprüngliche Links" } }, fr: { panelTitle: "🌍 Navigation mondiale des jeux", searchPlaceholder: "🔍 Rechercher un nom de site...", noResults: "😔 Aucun site correspondant trouvé", langLabel: "Langue", categories: { "🌐 Global Platforms": "Plateformes mondiales", "🎨 Indie & Creative": "Indé & Créatif", "📀 Retro & Flash Archive": "Archives rétro et Flash", "⚔️ Multiplayer & .io Games": "Jeux multijoueurs et .io", "☁️ Cloud & China Platforms": "Cloud et plateformes chinoises", "🎓 Educational / School Accessible": "Éducatif / Accessible à l'école", "🇯🇵 Japan & Korea & East Asia": "Japon, Corée et Asie de l'Est", "🌏 Southeast & South Asia": "Asie du Sud-Est et Asie du Sud", "🐫 West Asia, Central Asia & Africa": "Asie occidentale, Asie centrale et Afrique", "🇪🇺 Europe & Oceania": "Europe et Océanie", "🌎 Americas (North & Latin)": "Amériques", "🔗 Initial Provided Links": "Liens initiaux" } }, es: { panelTitle: "🌍 Navegación global de juegos", searchPlaceholder: "🔍 Buscar nombre del sitio...", noResults: "😔 No se encontraron sitios coincidentes", langLabel: "Idioma", categories: { "🌐 Global Platforms": "Plataformas globales", "🎨 Indie & Creative": "Indie y Creativo", "📀 Retro & Flash Archive": "Archivo Retro y Flash", "⚔️ Multiplayer & .io Games": "Juegos multijugador y .io", "☁️ Cloud & China Platforms": "Nube y plataformas chinas", "🎓 Educational / School Accessible": "Educativo / Accesible en escuelas", "🇯🇵 Japan & Korea & East Asia": "Japón, Corea y Asia Oriental", "🌏 Southeast & South Asia": "Sudeste Asiático y Asia del Sur", "🐫 West Asia, Central Asia & Africa": "Asia Occidental, Asia Central y África", "🇪🇺 Europe & Oceania": "Europa y Oceanía", "🌎 Americas (North & Latin)": "Américas", "🔗 Initial Provided Links": "Enlaces iniciales" } }, pt: { panelTitle: "🌍 Navegação Global de Jogos", searchPlaceholder: "🔍 Pesquisar nome do site...", noResults: "😔 Nenhum site correspondente encontrado", langLabel: "Idioma", categories: { "🌐 Global Platforms": "Plataformas Globais", "🎨 Indie & Creative": "Indie e Criativo", "📀 Retro & Flash Archive": "Arquivo Retro e Flash", "⚔️ Multiplayer & .io Games": "Jogos Multiplayer e .io", "☁️ Cloud & China Platforms": "Nuvem e Plataformas Chinesas", "🎓 Educational / School Accessible": "Educacional / Acessível na Escola", "🇯🇵 Japan & Korea & East Asia": "Japão, Coreia e Ásia Oriental", "🌏 Southeast & South Asia": "Sudeste Asiático e Sul da Ásia", "🐫 West Asia, Central Asia & Africa": "Ásia Ocidental, Ásia Central e África", "🇪🇺 Europe & Oceania": "Europa e Oceania", "🌎 Americas (North & Latin)": "Américas", "🔗 Initial Provided Links": "Links Iniciais" } }, it: { panelTitle: "🌍 Navigazione globale dei giochi", searchPlaceholder: "🔍 Cerca nome del sito...", noResults: "😔 Nessun sito corrispondente trovato", langLabel: "Lingua", categories: { "🌐 Global Platforms": "Piattaforme globali", "🎨 Indie & Creative": "Indie e Creativo", "📀 Retro & Flash Archive": "Archivio Retro e Flash", "⚔️ Multiplayer & .io Games": "Giochi multiplayer e .io", "☁️ Cloud & China Platforms": "Cloud e piattaforme cinesi", "🎓 Educational / School Accessible": "Educativo / Accessibile a scuola", "🇯🇵 Japan & Korea & East Asia": "Giappone, Corea e Asia orientale", "🌏 Southeast & South Asia": "Sud-est asiatico e Asia meridionale", "🐫 West Asia, Central Asia & Africa": "Asia occidentale, Asia centrale e Africa", "🇪🇺 Europe & Oceania": "Europa e Oceania", "🌎 Americas (North & Latin)": "Americhe", "🔗 Initial Provided Links": "Link iniziali" } } }; const langList = [ { code: "en", name: "English" }, { code: "zh", name: "中文" }, { code: "ja", name: "日本語" }, { code: "ko", name: "한국어" }, { code: "vi", name: "Tiếng Việt" }, { code: "th", name: "ไทย" }, { code: "id", name: "Bahasa Indonesia" }, { code: "hi", name: "हिन्दी" }, { code: "ar", name: "العربية" }, { code: "tr", name: "Türkçe" }, { code: "ru", name: "Русский" }, { code: "de", name: "Deutsch" }, { code: "fr", name: "Français" }, { code: "es", name: "Español" }, { code: "pt", name: "Português" }, { code: "it", name: "Italiano" } ]; let currentLang = "en"; // ======================= 网站数据 ======================= const siteCategories = { "global": [ { name:"Poki", url:"https://poki.com/" }, { name:"CrazyGames", url:"https://www.crazygames.com/" }, { name:"Armor Games", url:"https://www.armorgames.com/" }, { name:"Kongregate", url:"https://www.kongregate.com/" }, { name:"Miniclip", url:"https://www.miniclip.com/" }, { name:"Addicting Games", url:"https://www.addictinggames.com/" }, { name:"Friv", url:"https://www.friv.com/" }, { name:"Y8 Games", url:"https://www.y8.com/" }, { name:"Lagged", url:"https://www.lagged.com/" }, { name:"AllWebGames", url:"https://www.allwebgames.com/" }, { name:"SeaGames", url:"https://www.seagames.com/" }, { name:"GamePix", url:"https://www.gamepix.com/" }, { name:"PlayVio", url:"https://playvio.com/" }, { name:"GameShred", url:"https://www.gameshred.com/" }, { name:"GameReek", url:"https://www.gamereek.com/" }, { name:"GameSludge", url:"https://www.gamesludge.com/" }, { name:"Playgama", url:"https://playgama.com/" }, { name:"GamH5", url:"https://gamh5.com/" }, { name:"Sonsaur", url:"https://www.sonsaur.com/" }, { name:"Game.Monster", url:"https://game.monster/" }, { name:"AppAgg", url:"https://appagg.com/" }, { name:"MobyGames", url:"https://www.mobygames.com/" }, { name:"WhatGamesPlay", url:"https://whatgamesplay.com/" }, { name:"HelloGame.io", url:"https://hellogame.io/" }, { name:"Game Jolt", url:"https://gamejolt.com/" }, { name:"Newgrounds", url:"https://www.newgrounds.com/" }, { name:"itch.io", url:"https://itch.io/" }, { name:"FUUN.FUN", url:"https://fuun.fun/" }, { name:"Rando.gg", url:"https://rando.gg/" }, { name:"MiniPlay", url:"https://miniplay.com/" } ], "indie": [ { name:"Neal.fun", url:"https://neal.fun/" }, { name:"NanoBanana.games", url:"https://nanobanana.games/" }, { name:"BestCrazyGames", url:"https://bestcrazygames.com/" }, { name:"gaming.inlinestyle.it", url:"https://gaming.inlinestyle.it/" }, { name:"Manyland", url:"https://manyland.com/" }, { name:"Nazo Game", url:"https://nazo.one/" }, { name:"Gugu Fish", url:"https://www.guguyu.com/" }, { name:"U77 / Git Games", url:"https://gitgame.com/" }, { name:"Snokido", url:"https://www.snokido.com/" }, { name:"KBH Games", url:"https://kbhgames.com/" } ], "retro": [ { name:"Flashpoint Archive", url:"https://flashpointarchive.org/" }, { name:"17yoo (YiQiYou)", url:"https://www.17yoo.com/" }, { name:"niconico Flash Game", url:"https://www.nicovideo.jp/flash" }, { name:"Flashstorage.games", url:"https://flashstorage.games/" }, { name:"ClassicReload", url:"https://classicreload.com/" }, { name:"Internet Archive (MS-DOS)", url:"https://archive.org/details/softwarelibrary_msdos_games" }, { name:"Little霸王 (XiaoBaWang)", url:"https://www.xiaobawang.com/" }, { name:"YIKM", url:"https://yikm.net/" }, { name:"return8090", url:"https://return8090.com/" }, { name:"Emu666", url:"https://www.emu666.com/" }, { name:"80 Online Arcade", url:"https://www.80online.com/" }, { name:"zaixianwan.app", url:"https://zaixianwan.app/" }, { name:"retroonline.net", url:"https://retroonline.net/" }, { name:"Heheda.top", url:"https://heheda.top/" }, { name:"classic.minecraft.net", url:"https://classic.minecraft.net/" }, { name:"oldswf.com", url:"https://oldswf.com/" } ], "io": [ { name:"ioGames.Space", url:"https://iogames.space/" }, { name:"io2333", url:"https://io2333.com/" }, { name:"YORG.io", url:"https://yorg.io/" }, { name:"Krunker.io", url:"https://krunker.io/" }, { name:"Zombs Royale", url:"https://zombsroyale.io/" }, { name:"Bloxd.io", url:"https://bloxd.io/" }, { name:"Circle Battle", url:"https://bulletz.io/" }, { name:"Online CS 1.6", url:"https://play-cs.com/" }, { name:"Draw & Guess", url:"https://enazo.cn/" }, { name:"Papergames.io", url:"https://papergames.io/" } ], "cloud": [ { name:"Tencent Start", url:"https://gamer.qq.com/" }, { name:"Netease Cloud Game", url:"https://cg.163.com/" }, { name:"MiGu KuaiYou", url:"https://www.migufun.com/" }, { name:"4399", url:"https://www.4399.com/" }, { name:"7k7k", url:"https://www.7k7k.com/" }, { name:"YiQiYou", url:"https://www.17yoo.cn/" }, { name:"DouYou", url:"https://www.doyo.cn/" }, { name:"7724 Games", url:"https://www.7724.com/" }, { name:"7723 Game Box", url:"https://www.7723.cn/" }, { name:"Ali213 Mini Games", url:"https://u.ali213.net/" }, { name:"Pigame", url:"https://cn.pigame.cc/" }, { name:"WuFan Game Hall", url:"https://www.wufan.com/" }, { name:"LingDong Games", url:"https://www.ldgame.com/" }, { name:"37 Games", url:"https://www.37.com/" }, { name:"9377 Games", url:"https://www.9377.com/" }, { name:"TanWan Games", url:"https://www.tanwan.com/" }, { name:"JiongYou Village", url:"https://www.jyc.com/" }, { name:"45yx", url:"https://www.45yx.com/" }, { name:"QQ Games", url:"https://qqgame.qq.com/" }, { name:"YY Games", url:"https://game.yy.com/" }, { name:"51 Games", url:"https://www.51.com/" }, { name:"Hao123 Mini Games", url:"https://www.hao123.com/game" }, { name:"07073 Game Network", url:"https://www.07073.com/" } ], "edu": [ { name:"Coolmath Games", url:"https://www.coolmathgames.com/" }, { name:"Hooda Math", url:"https://www.hoodamath.com/" }, { name:"Math Playground", url:"https://www.mathplayground.com/" }, { name:"Montessori Childrens Community", url:"https://www.montessorichildrenscommunity.org/" }, { name:"PushtoLearn", url:"https://pushtolearn.com/" }, { name:"Unblocked Games 66", url:"https://sites.google.com/site/unblockedgames66ez/" }, { name:"Unblocked Games 77", url:"https://sites.google.com/site/unblockedgames77/" }, { name:"Unblocked Games WTF", url:"https://sites.google.com/site/unblockedgameswtf/" }, { name:"Car Games Unblocked", url:"https://cargamesunblocked.com/" } ], "jpkr": [ { name:"DMM Games", url:"https://games.dmm.com/" }, { name:"G123.jp", url:"https://g123.jp/" }, { name:"GameWith.jp", url:"https://gamewith.jp/" }, { name:"Game8.jp", url:"https://game8.jp/" }, { name:"Hangame", url:"https://www.hangame.com/" }, { name:"Netmarble", url:"https://company.netmarble.com/" }, { name:"NCSOFT", url:"https://www.ncsoft.com/" }, { name:"Lol.ps", url:"https://lol.ps/" }, { name:"HanYouWang", url:"https://www.hanyouwang.com/" }, { name:"Dan Ball", url:"https://dan-ball.jp/" }, { name:"Freem", url:"https://www.freem.ne.jp/" }, { name:"81Dojo", url:"https://81dojo.com/" }, { name:"Yahoo! Mobage", url:"https://yahoo-mbga.jp/" }, { name:"QooApp", url:"https://www.qoo-app.com/" }, { name:"GameKee", url:"https://www.gamekee.com/" } ], "seasia": [ { name:"PlayPark", url:"https://www.playpark.com/" }, { name:"SEAGM", url:"https://www.seagm.com/" }, { name:"VNGGames", url:"https://vnggames.com/" }, { name:"Garena", url:"https://www.garena.com/" }, { name:"Dunia Games", url:"https://duniagames.co.id/" }, { name:"WinZO", url:"https://www.winzo.com/" }, { name:"MPL (Mobile Premier League)", url:"https://www.mpl.live/" }, { name:"Ludo King™", url:"https://ludoking.com/" }, { name:"Krikya", url:"https://krikya.com/" }, { name:"MJ88 (M88)", url:"https://www.m88.com/" }, { name:"Googly", url:"https://googly.com/" } ], "westasia": [ { name:"Tamatem Games", url:"https://tamatemgames.com/" }, { name:"Yaahlan", url:"https://yaahlan.com/" }, { name:"Kafu Games", url:"https://kafugames.com/" }, { name:"Babil Games", url:"https://babilgames.com/" }, { name:"Games-Arabia.com", url:"https://games-arabia.com/" }, { name:"beGAME", url:"https://begame.com/" }, { name:"Carry1st", url:"https://carry1st.com/" }, { name:"Gamr", url:"https://gamr.com/" }, { name:"Mettlestate", url:"https://mettlestate.com/" } ], "europe": [ { name:"Gameforge", url:"https://gameforge.com/" }, { name:"4Players", url:"https://www.4players.de/" }, { name:"Fanatical", url:"https://www.fanatical.com/" }, { name:"R2Games", url:"https://www.r2games.com/" }, { name:"Hatch", url:"https://www.hatch.gg/" }, { name:"Big Fish Games", url:"https://www.bigfishgames.com/" }, { name:"BigD Gaming", url:"https://www.bigdgaming.net/" }, { name:"HytaleANZ", url:"https://hytaleanz.com/" }, { name:"freegames.nz", url:"https://freegames.nz/" } ], "americas": [ { name:"Atomix.vg", url:"https://atomix.vg/" }, { name:"TierraGamer", url:"https://tierragamer.com/" }, { name:"1Up Gaming MX", url:"https://1upgamingmx.com/" }, { name:"PlayUZU.mx", url:"https://playuzu.mx/" }, { name:"Winpot.mx", url:"https://winpot.mx/" }, { name:"Ubuy Mexico", url:"https://www.ubuy.mx/" }, { name:"Spinoo.mx", url:"https://spinoo.mx/" }, { name:"MXWin", url:"https://mxwin.com/" }, { name:"CMillonario.com", url:"https://cmillonario.com/" }, { name:"Adrenaline", url:"https://adrenaline.com.br/" }, { name:"MMOJOGO", url:"https://mmojogo.com/" }, { name:"Hype.games", url:"https://hype.games/" }, { name:"ViVa Games", url:"https://vivagames.com/" }, { name:"PlayUZU", url:"https://playuzu.com/" } ], "initial": [ { name:"17173 H5", url:"https://h5.17173.com/" }, { name:"Yuppiy", url:"https://yuppiy.com/cn/" }, { name:"Easegame", url:"https://easegame.com/zh" }, { name:"Playhop", url:"https://playhop.com/zh" } ] }; const categoryKeys = [ { key: "global", transKey: "🌐 Global Platforms" }, { key: "indie", transKey: "🎨 Indie & Creative" }, { key: "retro", transKey: "📀 Retro & Flash Archive" }, { key: "io", transKey: "⚔️ Multiplayer & .io Games" }, { key: "cloud", transKey: "☁️ Cloud & China Platforms" }, { key: "edu", transKey: "🎓 Educational / School Accessible" }, { key: "jpkr", transKey: "🇯🇵 Japan & Korea & East Asia" }, { key: "seasia", transKey: "🌏 Southeast & South Asia" }, { key: "westasia", transKey: "🐫 West Asia, Central Asia & Africa" }, { key: "europe", transKey: "🇪🇺 Europe & Oceania" }, { key: "americas", transKey: "🌎 Americas (North & Latin)" }, { key: "initial", transKey: "🔗 Initial Provided Links" } ]; // ======================= UI 构建 ======================= const btn = document.createElement('div'); btn.id = 'game-nav-btn'; btn.innerHTML = '🎮'; btn.style.cssText = ` position: fixed; bottom: 20px; right: 20px; width: 40px; height: 40px; background: #1e2a3a; color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; cursor: pointer; z-index: 999999; box-shadow: 0 4px 12px rgba(0,0,0,0.3); transition: all 0.2s; user-select: none; touch-action: manipulation; `; btn.onmouseenter = () => btn.style.background = '#e67e22'; btn.onmouseleave = () => btn.style.background = '#1e2a3a'; const panel = document.createElement('div'); panel.id = 'game-nav-panel'; panel.style.cssText = ` position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); z-index: 1000000; display: none; align-items: center; justify-content: center; backdrop-filter: blur(2px); `; const modal = document.createElement('div'); modal.style.cssText = ` width: 90%; max-width: 1000px; height: 85%; max-height: 90vh; background: #fefefe; border-radius: 24px; display: flex; flex-direction: column; overflow: hidden; font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; box-shadow: 0 20px 40px rgba(0,0,0,0.3); `; const header = document.createElement('div'); header.style.cssText = ` padding: 12px 20px; background: #1e2a3a; color: white; display: flex; justify-content: space-between; align-items: center; font-size: 18px; font-weight: bold; flex-shrink: 0; flex-wrap: wrap; gap: 10px; `; const titleSpan = document.createElement('span'); titleSpan.id = 'panel-title'; const controlsDiv = document.createElement('div'); controlsDiv.style.cssText = `display: flex; align-items: center; gap: 12px;`; const langSelect = document.createElement('select'); langSelect.id = 'lang-select'; langSelect.style.cssText = ` background: rgba(255,255,255,0.2); border: none; color: white; font-size: 14px; padding: 4px 8px; border-radius: 20px; cursor: pointer; `; for (const lang of langList) { const option = document.createElement('option'); option.value = lang.code; option.textContent = lang.name; langSelect.appendChild(option); } const closeSpan = document.createElement('span'); closeSpan.id = 'close-nav-panel'; closeSpan.innerHTML = '×'; closeSpan.style.cssText = `cursor:pointer; font-size:28px; line-height:1;`; controlsDiv.appendChild(langSelect); controlsDiv.appendChild(closeSpan); header.appendChild(titleSpan); header.appendChild(controlsDiv); const searchBox = document.createElement('div'); searchBox.style.cssText = ` padding: 12px 20px; background: #f1f5f9; border-bottom: 1px solid #cbd5e1; flex-shrink: 0; `; const searchInput = document.createElement('input'); searchInput.type = 'text'; searchInput.id = 'search-input'; searchInput.style.cssText = ` width: 100%; padding: 12px 16px; font-size: 16px; border: 1px solid #cbd5e1; border-radius: 40px; box-sizing: border-box; outline: none; background: white; `; searchBox.appendChild(searchInput); const contentDiv = document.createElement('div'); contentDiv.id = 'content-div'; contentDiv.style.cssText = ` flex: 1; overflow-y: auto; padding: 16px 20px; `; modal.appendChild(header); modal.appendChild(searchBox); modal.appendChild(contentDiv); panel.appendChild(modal); document.body.appendChild(panel); document.body.appendChild(btn); function updateLanguage() { const t = translations[currentLang]; if (!t) return; titleSpan.textContent = t.panelTitle; searchInput.placeholder = t.searchPlaceholder; langSelect.value = currentLang; renderSites(searchInput.value); } function renderSites(filter = '') { contentDiv.innerHTML = ''; const lowerFilter = filter.toLowerCase(); let hasAny = false; const t = translations[currentLang]; for (const cat of categoryKeys) { const sites = siteCategories[cat.key]; const filtered = sites.filter(s => s.name.toLowerCase().includes(lowerFilter)); if (filtered.length === 0) continue; hasAny = true; const catDiv = document.createElement('div'); catDiv.style.marginBottom = '24px'; const catTitle = document.createElement('div'); catTitle.style.cssText = ` font-size: 18px; font-weight: 700; border-left: 5px solid #e67e22; padding-left: 12px; margin-bottom: 12px; color: #0f172a; `; const translatedCatName = t.categories[cat.transKey] || cat.transKey; catTitle.textContent = translatedCatName; catDiv.appendChild(catTitle); const grid = document.createElement('div'); grid.style.cssText = ` display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px 12px; `; for (const site of filtered) { const link = document.createElement('a'); link.href = site.url; link.target = '_blank'; link.rel = 'noopener noreferrer'; link.textContent = site.name; link.style.cssText = ` display: block; padding: 8px 12px; background: #ffffff; border-radius: 12px; text-decoration: none; color: #2563eb; font-size: 14px; font-weight: 500; transition: 0.1s; border: 1px solid #e2e8f0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; `; link.onmouseenter = () => link.style.backgroundColor = '#eff6ff'; link.onmouseleave = () => link.style.backgroundColor = '#fff'; link.addEventListener('touchstart', () => link.style.backgroundColor = '#eff6ff'); link.addEventListener('touchend', () => link.style.backgroundColor = '#fff'); grid.appendChild(link); } catDiv.appendChild(grid); contentDiv.appendChild(catDiv); } if (!hasAny) { contentDiv.innerHTML = `