Strong Kong

Adds a number of commands to Kongregate chat

目前為 2015-05-16 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Strong Kong
// @namespace    http://alphaoverall.com
// @version      0.1
// @description  Adds a number of commands to Kongregate chat
// @author       AlphaOverall
// @match        http://www.kongregate.com/games/*/*
// ==/UserScript==

//==========
// Strong Kong
// http://...
// by AlphaOverall (http://www.kongregate.com/accounts/AlphaOverall)
// Inspired by Kongregate Get
//==========

var dom = (typeof unsafeWindow === "undefined"?window:unsafeWindow);

function init_strongKong(){
    var holodeck = dom.holodeck;
    ChatDialogue = dom.ChatDialogue;

    //From original Kongregate Get script (http://userscripts-mirror.org/scripts/review/56432)
    holodeck.addChatCommand("avg", function(l,n){
        var roomDetails = l.chatWindow().activeRoom();
        var allUsers = roomDetails.users();
        var allLevels = 0;
        for(var i=0; i < allUsers.length; i++)
        {
            allLevels += allUsers[i]._level;
        }
        var avgLevel = Math.round(allLevels/allUsers.length*10)/10;
        l.activeDialogue().displayUnsanitizedMessage("Average Level in Room", avgLevel , {"class":"whisper received_whisper"}, {non_user: true});
        return false;
    });

    holodeck.addChatCommand("highlvl", function(l,n){
        var roomDetails = l.chatWindow().activeRoom();
        var allUsers = roomDetails.users();
        var highLevels = "";
        var highestLevel = 0;
        for(var i=0; i < allUsers.length; i++)
        {
            if (allUsers[i]._level > highestLevel)
            {
                highestLevel = allUsers[i]._level;
                highLevels = "<img src=\"" + allUsers[i]._chat_avatar_url + "\"><a href=\"http://www.kongregate.com/accounts/" + allUsers[i].username + "\" target=\"_blank\">" + allUsers[i].username + "</a></img>";
            }
            else if (allUsers[i]._level == highestLevel)
            {
                highLevels = highLevels + ", <img src=\"" + allUsers[i]._chat_avatar_url + "\"><a href=\"http://www.kongregate.com/accounts/" + allUsers[i].username + "\" target=\"_blank\">" + allUsers[i].username + "</a></img>";
            }
        }
        l.activeDialogue().displayUnsanitizedMessage("Highest Level in Room", highestLevel + ", Users: " + highLevels, {"class":"whisper received_whisper"}, {non_user: true});
        return false;
    });

    holodeck.addChatCommand("lowlvl", function(l,n){
        var roomDetails = l.chatWindow().activeRoom();
        var allUsers = roomDetails.users();
        var lowLevels = "";
        var lowestLevel = Infinity; //Just to makes sure :P
        for(var i=0; i < allUsers.length; i++)
        {
            if (allUsers[i]._level < lowestLevel)
            {
                lowestLevel = allUsers[i]._level;
                lowLevels = "<img src=\"" + allUsers[i]._chat_avatar_url + "\"><a href=\"http://www.kongregate.com/accounts/" + allUsers[i].username + "\" target=\"_blank\">" + allUsers[i].username + "</a>";
            }
            else if (allUsers[i]._level == lowestLevel)
            {
                lowLevels = lowLevels + ", <img src=\"" + allUsers[i]._chat_avatar_url + "\"><a href=\"http://www.kongregate.com/accounts/" + allUsers[i].username + "\" target=\"_blank\">" + allUsers[i].username + "</a>";
            }
        }
        l.activeDialogue().displayUnsanitizedMessage("Lowest Level in Room", lowestLevel + ", Users: " + lowLevels, {"class":"whisper received_whisper"}, {non_user: true});
        return false;
    });

    holodeck.addChatCommand("developer", function(l,n){
        var roomDetails = l.chatWindow().activeRoom();
        var allUsers = roomDetails.users();
        var devs = [];
        for(var i=0; i < allUsers.length; i++)
        {
            if (allUsers[i]._developer)
            {
                devs.push(allUsers[i].username);
            }
        }
        l.activeDialogue().displayUnsanitizedMessage("Developers in room", devs.join(", "), {"class":"whisper received_whisper"}, {non_user: true});
        return false;
    });

    holodeck.addChatCommand("admin", function(l,n){
        var roomDetails = l.chatWindow().activeRoom();
        var allUsers = roomDetails.users();
        var admins = [];
        for(var i=0; i < allUsers.length; i++)
        {
            if (allUsers[i]._admin)
            {
                admins.push(allUsers[i].username);
            }
        }
        l.activeDialogue().displayUnsanitizedMessage("Admins in room", admins.join(", "), {"class":"whisper received_whisper"}, {non_user: true});
        return false;
    });

    holodeck.addChatCommand("user", function(l,n){
        var z = n.match(/^\/\S+\s+(.+)/);
        if (z)
        {
            var roomDetails = l.chatWindow().activeRoom();
            var allUsers = roomDetails.users();
            for(var i=0; i < allUsers.length; i++)
            {
                if (i == allUsers.length-1 && allUsers[i].username != z)
                {
                    l.activeDialogue().displayUnsanitizedMessage("Kong Bot", "No user of specified name in chat", {"class":"whisper received_whisper"}, {non_user: true});
                    return false;
                }
                if (allUsers[i].username == z[1])
                {
                    var user = allUsers[i];

                    l.activeDialogue().displayUnsanitizedMessage("Username", "<img src=\""+user._chat_avatar_url+"\"></img><a href=\"http://www.kongregate.com/accounts/" + user.username+"\" target=\"_blank\">"+ user.username+"</a>", {"class":"whisper received_whisper"}, {non_user: true});
                    l.activeDialogue().displayUnsanitizedMessage("Level", user._level, {"class":"whisper received_whisper"}, {non_user: true});
                    if (user._moderator_room_ids.length == 0 && user._moderator_game_ids.length == 0)
                    {
                        l.activeDialogue().displayUnsanitizedMessage("Admin/Moderator/Developer/Premium",user._admin+"/false/"+user._developer+"/"+user._premium, {"class":"whisper received_whisper"}, {non_user: true});
                    }
                    else
                    {
                        l.activeDialogue().displayUnsanitizedMessage("Admin/Moderator/Developer/Premium",user._admin+"/true/"+user._developer+"/"+user._premium, {"class":"whisper received_whisper"}, {non_user: true});
                        l.activeDialogue().displayUnsanitizedMessage("Moderator Game Ids", user._moderator_game_ids.join(", "), {"class":"whisper received_whisper"}, {non_user: true});
                        l.activeDialogue().displayUnsanitizedMessage("Moderator Room Ids", user._moderator_room_ids.join(", "), {"class":"whisper received_whisper"}, {non_user: true});
                    }
                    l.activeDialogue().displayUnsanitizedMessage("Playing", "<a href=\"http://www.kongregate.com" + user._game_url + "\" target=\"_blank\">" + user._game_title + "</a>", {"class":"whisper received_whisper"}, {non_user: true});
                    l.activeDialogue().displayUnsanitizedMessage("Presence", user._presence, {"class":"whisper received_whisper"}, {non_user: true});
                    l.activeDialogue().displayUnsanitizedMessage("Role", user._role, {"class":"whisper received_whisper"}, {non_user: true});
                    return false;
                }
            }
        }
        else {
            var user = l._active_user._attributes._object;
            l.activeDialogue().displayUnsanitizedMessage("Username", "<img src=\""+user.avatar_url+"\"></img><a href=\"http://www.kongregate.com/accounts/" + user.username+"\" target=\"_blank\">"+ user.username+"</a>", {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("Age", user.age, {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("Admin/Moderator/Developer/Premium",user.admin+"/"+user.moderator+"/"+user.developer+"/"+user.premium, {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("ID", user.id, {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("Level", user.level, {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("Points for Next Level", user.points_away, {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("Total Points", user.points, {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("Last Level Up", user.last_levelup_at, {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("Kreds", user.kreds_balance, {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("Gameplays", user.gameplays_count, {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("Game Ratings", user.ratings_count, {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("BOTD Earned This Week", user.botds_this_week, {"class":"whisper received_whisper"}, {non_user: true});
            l.activeDialogue().displayUnsanitizedMessage("Name/Email", user.sender_name_or_email, {"class":"whisper received_whisper"}, {non_user: true});
            return false;
        }
    });

    holodeck.addChatCommand("info", function(l,n){
        var info = l._chat_window._active_room;
        var room = info._room;
        l.activeDialogue().displayUnsanitizedMessage("Room Name", room.name, {"class":"whisper received_whisper"}, {non_user: true});
        l.activeDialogue().displayUnsanitizedMessage("Room ID", room.id, {"class":"whisper received_whisper"}, {non_user: true});
        l.activeDialogue().displayUnsanitizedMessage("Room Owner", "<a href=\"http://www.kongregate.com/accounts/" + room.owner + "\" target=\"_blank\">" + room.owner + "</a>", {"class":"whisper received_whisper"}, {non_user: true});
        l.activeDialogue().displayUnsanitizedMessage("Room Type", room.type, {"class":"whisper received_whisper"}, {non_user: true});
        l.activeDialogue().displayUnsanitizedMessage("Favorite Room", info._favorite_room, {"class":"whisper received_whisper"}, {non_user: true});
        l.activeDialogue().displayUnsanitizedMessage("Users In Room", info._number_in_room_node.innerText, {"class":"whisper received_whisper"}, {non_user: true});
        l.activeDialogue().displayUnsanitizedMessage("Guests In Room", info._guests_in_room_node.innerText, {"class":"whisper received_whisper"}, {non_user: true});
        return false;
    });

    holodeck.addChatCommand("botd", function(l,n){
        var kbotd = l._active_user._attributes._object;
        var typeOf = "(easy)";
        if (kbotd.botd_reward_points == 5){//Do nothing
        }
        else if (kbotd.botd_reward_points == 15) {typeOf = "(medium)";}
        else if (kbotd.botd_reward_points == 30){typeOf = "(hard)";}
        else if (kbotd.botd_reward_points == 60){typeOf = "(impossible)";}
        else {typeOf = "Points: " + kbotd.botd_reward_points;} //Just in case
        l.activeDialogue().displayUnsanitizedMessage("BOTD", "<img src=\""+kbotd.botd_icon_uri+"\"></img>" + "<a href=\"" + kbotd.botd_game_uri + "\" target=\"_blank\">" + kbotd.botd_game_name + " - " + kbotd.botd_description + "</a> " + typeOf, {"class":"whisper received_whisper"}, {non_user: true});
        return false;
    });

    holodeck.addChatCommand("friends", function(l,n){
        var kongfriends = l._chat_window._friends;
        var final = [];
        for(var friend in kongfriends)
        {
            final.push("<a href=\"http://www.kongregate.com/accounts/" + friend + "\" target=\"_blank\">" + friend + "</a>");
        }
        l.activeDialogue().displayUnsanitizedMessage("Friends", final.join(", "), {"class":"whisper received_whisper"}, {non_user: true});
        return false;
    });

    holodeck.addChatCommand("online", function(l,n){
        var online = document.getElementsByClassName("chat_actions_list")[0].childNodes[5];
        online.click();
        return false;
    });

    holodeck.addChatCommand("exit", function(l,n){
        close();
        return false;
    });

    holodeck.addChatCommand("open", function(l,n){
        var z = n.match(/^\/\S+\s+(.+)/);
        if (z[1]) {
            m = z[1].split(" ");
            if (m[0] == "accounts"){
                if (m[1]){
                    open("http://www.kongregate.com/accounts/" + m[1], "_blank");
                }
                else{
                    open("http://www.kongregate.com/accounts/" + l._active_user._attributes._object.username);
                }
            }
            else if (m[0] == "games"){
                if (m[1]) {
                    if (m[2]){
                        open("http://www.kongregate.com/games/" + m[1] + "/" + m[2], "_blank");
                    }
                    else{
                        l.activeDialogue().displayUnsanitizedMessage("Kong Bot", "No specified game", {"class":"whisper received_whisper"}, {non_user: true});
                    }
                }
                else{
                    l.activeDialogue().displayUnsanitizedMessage("Kong Bot", "No specified game creator", {"class":"whisper received_whisper"}, {non_user: true});
                }
            }
            else {
                open("http://www.kongregate.com/search?q=" + z[1], "_blank");
            }
        }
        else {
            open("http://www.kongregate.com/accounts/" + l._active_user._attributes._object.username);
        }
        return false;
    });
    
    holodeck.addChatCommand("help", function(l,n){
        open("http://www.kongregate.com/pages/help", "_blank");
        return false;
    });

    holodeck._chat_commands.close = holodeck._chat_commands.exit;
    holodeck._chat_commands.roominfo = holodeck._chat_commands.info;
    holodeck._chat_commands.friendsonline = holodeck._chat_commands.online;
    holodeck._chat_commands.u = holodeck._chat_commands.me = holodeck._chat_commands.user;
    holodeck._chat_commands.admins = holodeck._chat_commands.administrator = holodeck._chat_commands.administrators = holodeck._chat_commands.admin;
    holodeck._chat_commands.dev = holodeck._chat_commands.devs = holodeck._chat_commands.developers = holodeck._chat_commands.developer;
    holodeck._chat_commands.hlvl = holodeck._chat_commands.highlevel = holodeck._chat_commands.hlevel = holodeck._chat_commands.highlvl;
    holodeck._chat_commands.llvl = holodeck._chat_commands.lowlevel = holodeck._chat_commands.llevel = holodeck._chat_commands.lowlvl;
    holodeck._chat_commands.mp = holodeck._chat_commands.getmp = holodeck._chat_commands.mostplayed;
}

function check(){
	var injectScript = dom.injectScript||(document.getElementById("injectScriptDiv")?document.getElementById("injectScriptDiv").onclick():0);
	if(injectScript){
		injectScript(init_strongKong, 0);
	} else if(!dom._promptedFramework && !/Chrome/i.test(navigator.appVersion)){
		if(confirm("You don't have the latest version of the framework-script!\n" + 
		           "Please install it, otherwise Strong Kong script won't work.\n" +
		           "Clicking ok will open a new tab where you can install the script"))
			window.open("http://userscripts-mirror.org/scripts/show/54245", "_blank");
		dom._promptedFramework = true;
	}
}

setTimeout(check, 0);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址