您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds a chatroom to all games on Kongregate and lets you switch between the remaining chat rooms.
// ==UserScript== // @name Kongregate Chatroom Switcher // @namespace Kongregate Chatroom Switcher // @match https://www.kongregate.com/games/* // @match http://www.kongregate.com/games/* // @grant none // @version 1.0.2 // @author Lexiebean <[email protected]> // @description Adds a chatroom to all games on Kongregate and lets you switch between the remaining chat rooms. // @license GNU GPLv3 // ==/UserScript== var savedchat function initialise() { //Gets stored default chat defaultChat = 287709; if (localStorage.getItem("KCSDefault")) { defaultChat = localStorage.getItem("KCSDefault"); } var hook = document.getElementById("chat_connected_indicator").innerHTML; if (hook == "Connected") { var hook = document.getElementById('main_tab_set'); //Add the tab var switcher = document.createElement("li"); switcher.setAttribute("class", "tab"); switcher.setAttribute("style","float: right; cursor: pointer;"); switcher.addEventListener('click', function() { var x = document.getElementById("chat_switcher"); if (x.style.display === "none") { x.style.display = "block"; } else { x.style.display = "none"; } }, true); hook.appendChild(switcher); var tab = document.createElement("a"); tab.innerHTML = "Chat Switcher"; switcher.appendChild(tab); //Add ul for chats var ul = document.createElement("ul"); ul.setAttribute("id", "chat_switcher"); ul.setAttribute("style",` background-color: #e3e3e3; border: solid 1px #666; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; box-shadow: 0 1px 4px rgba(0,0,0,0.22); min-width: 150px; padding: 8px; position: absolute; right: 2px; top: 52px; z-index: 1; display: none; `); switcher.appendChild(ul); //CSS for <li> var style = document.createElement('style'); style.innerHTML = ` #chat_switcher li {cursor: pointer;display:block;text-align:left;color:#900;text-decoration: underline;padding: 1px 0;} #chat_switcher li:nth-child(even) { background: #e3e3e3; } #chat_switcher li:nth-child(odd) { background: white; } #chat_switcher input { margin-right: 3px; cursor:help !important; } .activeChat { background: #99f !important; }`; var ref = document.querySelector('script'); ref.parentNode.insertBefore(style, ref); //The list of games var game_list = { 1: { title:"Animation Throwdown", game:"animation-throwdown", id:"271381" }, 2: { title:"BattleHand", game:"battlehand-web", id:"261051" }, 3: { title:"Bit Heroes", game:"bit-heroes", id:"266462" }, 4: { title:"Cosmos Quest: The Origin", game:"cosmos-quest", id:"276144" }, 5: { title:"Crush Crush", game:"crush-crush", id:"256923" }, 6: { title:"DPS IDLE", game:"dps-idle", id:"316416" }, 7: { title:"Dungeon Crusher: Soul Hunters", game:"dungeon-crusher-soul-hunters", id:"283352" }, 8: { title:"Firestone Idle RPG", game:"firestone", id:"299519" }, 9: { title:"Idle Champions of the Forgotten Realms", game:"idle-champions-of-the-forgotten-realms", id:"303551" }, 10: { title:"Idle Grindia: Dungeon Quest", game:"idle-grindia-dungeon-quest", id:"317742" }, 11: { title:"Idle Monster TD", game:"idle-monster-td", id:"315606" }, 12: { title:"Incremental Epic Hero", game:"incremental-epic-hero", id:"317607" }, 13: { title:"Iron Rage", game:"iron-rage", id:"296562" }, 14: { title:"Mighty Party", game:"mighty-party", id:"272366" }, 15: { title:"NGU IDLE", game:"ngu-idle", id:"287709" }, 16: { title:"Pincremental", game:"pincremental", id:"321971" }, 17: { title:"Spellstone", game:"spellstone", id:"248326" }, 18: { title:"Synergism", game:"synergism", id:"320578" }, 19: { title:"The Perfect Tower", game:"the-perfect-tower", id:"258553" }, 20: { title:"Tyrant Unleashed", game:"tyrant-unleashed-web", id:"208033" } }; //Generate the list var x; for (x in game_list) { var li = document.createElement("li"); li.setAttribute("title",game_list[x].title); li.setAttribute("game",game_list[x].game); li.setAttribute("id",game_list[x].id); li.onclick = function(e) { holodeck.activeDialogue().displayMessage("Joined", this.getAttribute("title") + " - Room #01", { "class": "error" }, { non_user: true }); savedchat = document.getElementsByClassName("chat_message_window")[1]; active = document.querySelectorAll(".activeChat");for(var i=0;i<active.length;i++) { active[i].className = ""; }; this.className = "activeChat"; holodeck.selectRoom({"name": this.getAttribute("title") + "- Room #01","xmpp_name": this.getAttribute("id") + "-" + this.getAttribute("game") + "-1","type":"game"}); setTimeout( function() { document.getElementsByClassName("chat_message_window")[1].innerHTML = savedchat.innerHTML; }, 1000); }; ul.appendChild(li); //Add radio buttons to select default var input = document.createElement("input"); input.setAttribute("type", "radio"); input.setAttribute("title","Default Chat Room"); input.setAttribute("name","Default"); li.appendChild(input); li.innerHTML = li.innerHTML + game_list[x].title; } //Checks default radio button document.getElementById(defaultChat).children[0].checked = true; //Saves default chat var x = document.querySelectorAll('[name="Default"]') for(var i=0; i<x.length; i++) { x[i].onclick = function (e) { e.stopPropagation(); localStorage.setItem("KCSDefault", this.parentNode.id); var div = document.createElement("div"); div.className = "chat-message"; div.innerHTML = "Default Chat: " + this.parentNode.title; div.style.textAlign = "center"; div.style.background = "#666"; div.style.color = "white"; document.getElementsByClassName("chat_message_window")[1].appendChild(div); }; } //Sets background colour for active room if it's one on the list. var current = document.getElementById(active_user._game_id); if (current) { current.className = "activeChat"; } //Join default chat if (document.querySelector("#chat_default_content > p").innerHTML == "No Chat Rooms found!") { var d = document.getElementById(defaultChat); holodeck.selectRoom({"name": d.getAttribute("title") + "- Room #01","xmpp_name": d.getAttribute("id") + "-" + d.getAttribute("game") + "-1","type":"game"}); d.className = "activeChat"; } console.log('[Kong Chatroom Switcher] Links Added!'); clearInterval(initialise); } } var initialise = setInterval(initialise, 5000);