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