mirror of https://github.com/calzoneman/sync.git
Continue refactoring
This commit is contained in:
parent
6e99990ef0
commit
0e95ef2aa4
|
@ -604,7 +604,7 @@ Channel.prototype.tryNameBan = function(actor, name) {
|
|||
var notice = {
|
||||
username: "[server]",
|
||||
msg: actor.name + " banned " + name,
|
||||
msgclass: "server-whisper",
|
||||
meta: { addClass: "server-whisper" },
|
||||
time: Date.now()
|
||||
};
|
||||
self.users.forEach(function(u) {
|
||||
|
@ -716,7 +716,7 @@ Channel.prototype.tryIPBan = function(actor, name, range) {
|
|||
username: "[server]",
|
||||
msg: actor.name + " banned " + $util.maskIP(ip) +
|
||||
" (" + name + ")",
|
||||
msgclass: "server-whisper",
|
||||
meta: { addClass: "server-whisper" },
|
||||
time: Date.now()
|
||||
};
|
||||
self.users.forEach(function(u) {
|
||||
|
@ -1133,7 +1133,7 @@ Channel.prototype.broadcastNewUser = function(user) {
|
|||
var pkt = {
|
||||
username: "[server]",
|
||||
msg: msg,
|
||||
msgclass: "server-whisper",
|
||||
meta: { addClass: "server-whisper" },
|
||||
time: Date.now()
|
||||
};
|
||||
self.sendAllWithRank(2, "joinMessage", pkt);
|
||||
|
@ -2209,6 +2209,15 @@ Channel.prototype.tryChat = function(user, data) {
|
|||
return;
|
||||
}
|
||||
|
||||
// Validate meta
|
||||
var meta = {};
|
||||
if (user.rank >= 2) {
|
||||
if ("modflair" in data.meta && data.meta.modflair === user.rank) {
|
||||
meta.modflair = data.meta.modflair;
|
||||
}
|
||||
}
|
||||
data.meta = meta;
|
||||
|
||||
var msg = data.msg;
|
||||
if(msg.length > 240) {
|
||||
msg = msg.substring(0, 240);
|
||||
|
@ -2300,7 +2309,8 @@ Channel.prototype.sendMessage = function (user, msg, meta, filter) {
|
|||
if(this.chatbuffer.length > 15)
|
||||
this.chatbuffer.shift();
|
||||
var unescaped = sanitize(msg).entityDecode();
|
||||
this.logger.log("<" + user.name + "> " + unescaped);
|
||||
this.logger.log("<" + user.name + (meta.addClass ? "." + meta.addclass : "")
|
||||
+ "> " + unescaped);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ var Logger = require("./logger.js");
|
|||
var Poll = require("./poll").Poll;
|
||||
|
||||
var handlers = {
|
||||
/* commands that send chat messages */
|
||||
"me": function (chan, user, msg, meta) {
|
||||
meta.addClass = "action";
|
||||
meta.action = true;
|
||||
|
@ -29,9 +30,6 @@ var handlers = {
|
|||
chan.sendMessage(user, msg, meta);
|
||||
}
|
||||
},
|
||||
"afk": function (chan, user, msg, meta) {
|
||||
user.setAFK(!user.meta.afk);
|
||||
},
|
||||
"a": function (chan, user, msg, meta) {
|
||||
var superadminflair = {
|
||||
labelclass: "label-important",
|
||||
|
@ -55,33 +53,108 @@ var handlers = {
|
|||
meta.forceShowName = true;
|
||||
chan.sendMessage(user, cargs.join(" "), meta);
|
||||
},
|
||||
"poll": function (chan, user, msg, meta) {
|
||||
handlePoll(chan, user, msg, false);
|
||||
},
|
||||
"hpoll": function (chan, user, msg, meta) {
|
||||
handlePoll(chan, user, msg, true);
|
||||
},
|
||||
|
||||
/* commands that do not send chat messages */
|
||||
"afk": function (chan, user, msg, meta) {
|
||||
user.setAFK(!user.meta.afk);
|
||||
},
|
||||
"mute": function (chan, user, msg, meta) {
|
||||
handleMute(chan, user, msg.split(" "));
|
||||
},
|
||||
"smute": function (chan, user, msg, meta) {
|
||||
handleShadowMute(chan, user, msg.split(" "));
|
||||
},
|
||||
"unmute": function (chan, user, msg, meta) {
|
||||
handleUnmute(chan, user, msg.split(" "));
|
||||
},
|
||||
"kick": function (chan, user, msg, meta) {
|
||||
handleKick(chan, user, msg.split(" "));
|
||||
},
|
||||
"ban": function (chan, user, msg, meta) {
|
||||
handleBan(chan, user, msg.split(" "));
|
||||
},
|
||||
"ipban": function (chan, user, msg, meta) {
|
||||
handleIPBan(chan, user, msg.split(" "));
|
||||
},
|
||||
"unban": function (chan, user, msg, meta) {
|
||||
handleUnban(chan, user, msg.split(" "));
|
||||
},
|
||||
"clear": function (chan, user, msg, meta) {
|
||||
handleClear(chan, user);
|
||||
},
|
||||
"clean": function (chan, user, msg, meta) {
|
||||
handleClean(chan, user, msg);
|
||||
},
|
||||
"cleantitle": function (chan, user, msg, meta) {
|
||||
handleCleanTitle(chan, user, msg);
|
||||
}
|
||||
};
|
||||
|
||||
var handlerList = [];
|
||||
for (var key in handlers) {
|
||||
handlerList.push({
|
||||
sub: key.length + 2,
|
||||
re: new RegExp("^\\/" + key + "(?:\\s|$)"),
|
||||
fn: handlers[key]
|
||||
});
|
||||
}
|
||||
|
||||
function handle(chan, user, msg, meta) {
|
||||
// Special case
|
||||
var m = msg.match(/^\/d(-?[0-9]*)(?:\s|$)(.*)/);
|
||||
if (m) {
|
||||
handleDrink(chan, user, m[1], m[2], meta);
|
||||
return;
|
||||
}
|
||||
for (var i = 0; i < handlerList.length; i++) {
|
||||
var h = handlerList[i];
|
||||
if (msg.match(h.re)) {
|
||||
h.fn(chan, user, msg.substring(h.sub), meta);
|
||||
var rest;
|
||||
if (msg.indexOf(" ") >= 0) {
|
||||
rest = msg.substring(msg.indexOf(" ") + 1);
|
||||
} else {
|
||||
rest = "";
|
||||
}
|
||||
h.fn(chan, user, rest, meta);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function handleDrink(chan, user, count, msg, meta) {
|
||||
if (!chan.hasPermission(user, "drink")) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (count === "") {
|
||||
count = 1;
|
||||
}
|
||||
count = parseInt(count);
|
||||
if (isNaN(count)) {
|
||||
return;
|
||||
}
|
||||
|
||||
meta.drink = true;
|
||||
meta.forceShowName = true;
|
||||
meta.addClass = "drink";
|
||||
chan.drinks += count;
|
||||
chan.broadcastDrinks();
|
||||
if (count < 0 && msg.trim() === "") {
|
||||
return;
|
||||
}
|
||||
|
||||
msg = msg + " drink!";
|
||||
if (count !== 1) {
|
||||
msg += " (x" + count + ")";
|
||||
}
|
||||
chan.sendMessage(user, msg, meta);
|
||||
}
|
||||
|
||||
function handleOld(chan, user, msg, data) {
|
||||
if(msg.indexOf("/me ") == 0)
|
||||
chan.sendMessage(user.name, msg.substring(4), "action", data);
|
||||
|
@ -207,7 +280,7 @@ function handleShadowMute(chan, user, args) {
|
|||
var pkt = {
|
||||
username: "[server]",
|
||||
msg: user.name + " shadow muted " + args[0],
|
||||
msgclass: "server-whisper",
|
||||
addClass: "server-whisper",
|
||||
time: Date.now()
|
||||
};
|
||||
chan.users.forEach(function (u) {
|
||||
|
@ -343,6 +416,7 @@ function handlePoll(chan, user, msg, hidden) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
function handleDrink(chan, user, msg, data) {
|
||||
if(!chan.hasPermission(user, "drink")) {
|
||||
return;
|
||||
|
@ -366,6 +440,7 @@ function handleDrink(chan, user, msg, data) {
|
|||
msg += " (x" + count + ")";
|
||||
chan.sendMessage(user.name, msg, "drink", data);
|
||||
}
|
||||
*/
|
||||
|
||||
function handleClear(chan, user) {
|
||||
if(user.rank < 2) {
|
||||
|
|
|
@ -1454,6 +1454,10 @@ function formatChatMessage(data) {
|
|||
LASTCHATNAME = data.username;
|
||||
LASTCHATTIME = data.time;
|
||||
var div = $("<div/>");
|
||||
if (data.meta.addClass === "drink") {
|
||||
div.addClass("drink");
|
||||
data.meta.addClass = "";
|
||||
}
|
||||
if (USEROPTS.show_timestamps) {
|
||||
var time = $("<span/>").addClass("timestamp").appendTo(div);
|
||||
var timestamp = new Date(data.time).toTimeString().split(" ")[0];
|
||||
|
|
Loading…
Reference in New Issue