Skip to content

Instantly share code, notes, and snippets.

@arfie
Created June 18, 2015 17:25
Show Gist options
  • Save arfie/23e6d8bba7754d47e093 to your computer and use it in GitHub Desktop.
Save arfie/23e6d8bba7754d47e093 to your computer and use it in GitHub Desktop.
TagPro group overview on joiner
// ==UserScript==
// @name TagPro group information in joiner
// @namespace http://www.arfie.nl
// @version 0.1.3
// @description something useful
// @author Ruud Verbeek
// @include http://tagpro-*.koalabeast.com/games/find
// @include http://tangent.jukejuice.com/games/find
// @include http://*.newcompte.fr/games/find
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==
var done = false;
var update = function() {
if(!done) {
done = true;
$('#message').after('<div id="groupOverview">');
var g = tagpro.group, o = $('#groupOverview');
$('body').append('<style type="text/css">#groupOverview h4{text-align:center;font-size:150%;margin:8px;}#groupOverview table{margin:0 auto;border-collapse:collapse;}td#redTeam{background-color:rgba(255,0,0,0.2);}td#blueTeam{background-color:rgba(0,0,255,0.2);}#groupOverview td{vertical-align:top;min-width:192px;text-align:center;padding:24px 0;cursor:default;}#groupOverview td b{font-size: 150%;}#groupOverview td ul{list-style:none;padding:0;margin:12px 0 0 0;}div#groupChat{border:1px solid rgba(255,255,255,0.20);overflow-y:auto;padding:10px;color:#E5E5E5;width:60%;height:240px;margin:12px auto 0 auto;}input#groupChatInput{border:1px solid rgba(255,255,255,0.40);background-color:rgba(255,255,255,0.20);margin:16px auto;display:block;padding:3px 0 3px 3px;color:white;width:60%;}ul#groupMembers{list-style:none;border:1px solid rgba(255,255,255,0.20);padding:10px;color:#E5E5E5;min-width:192px;margin:0 auto;display:table;text-align:center;}');
if(g.members.length > 4 || document.URL.search('newcompte') >= 0) { // Private game
o.html('<h4>Private Game</h4><table><tbody><tr><td id="redTeam"><b>Red</b><ul></ul></td><td id="blueTeam"><b>Blue</b><ul></ul></td></tr></tbody></table>');
setInterval(function() {
$('#groupOverview li').remove();
for(var player in g.members) {
g.members[player].team > 0 && $('<li>').text(g.members[player].name).appendTo(g.members[player].team === 1 ? '#redTeam ul' : '#blueTeam ul');
}
}, 1000);
} else { // Public game
o.html('<h4>Public game</h4><ul id="groupMembers"></ul></h4>');
setInterval(function() {
$('#groupOverview li').remove();
for(var player in g.members) {
$('<li>').text(g.members[player].name).appendTo('#groupMembers');
}
}, 1000);
}
$('#groupOverview').append('<div id="groupChat"></div><input type="text" id="groupChatInput"></div>');
$('#groupChatInput').keydown(function(e) {
if(e.which === 13) {
tagpro.group.socket.emit("chat", $(this).val());
$(this).val("");
}
});
tagpro.group.socket.on("chat", function(e) {
var t = e.from ? (e.from + ": " + e.message) : e.message;
$("<div></div>").text(t).appendTo($("#groupChat"));
$("#groupChat").scrollTop($("#groupChat").get(0).scrollHeight);
});
}
}
if(tagpro.group)
tagpro.group.afterUpdateCallbacks.push(update);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment