- // ==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);