Skip to content

Commit 960fe13

Browse files
committed
Commit
1 parent cb4a05e commit 960fe13

File tree

3 files changed

+65
-5
lines changed

3 files changed

+65
-5
lines changed

server-src/commands.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ class CommandHandler {
1818
var sendClientCommand = this.sendClientCommand.bind(this); //Send a browser based command to the user.
1919
var getActiveClients = this.getActiveClients.bind(this); //Gets everyone's conection socket in the room.
2020
var commandIsAllowed = this.commandIsAllowed.bind(this); //Checks if the command for that client is allowed.
21+
var addUserMessageFilter = this.addUserMessageFilter.bind(this); //Add a message filter to a client, editing their messages sent.
22+
var removeUserMessageFilter = this.removeUserMessageFilter.bind(this); //Remove a message filter from a client.
2123
var _this = this;
2224

2325
////////////////////////////////////////////////////
@@ -402,6 +404,7 @@ class CommandHandler {
402404
var foundClients = searchUsersByKey(args[0], senderClient);
403405
foundClients.forEach((otherClient) => {
404406
sendClientCommand(otherClient, "slowrotateEnd");
407+
removeUserMessageFilter(otherClient, "");
405408
});
406409
},
407410
"<Username>[br]Aligns the specified users screen back to its default position from the mildly infuriating command, this command won’t show in the ;help list",
@@ -698,6 +701,44 @@ class CommandHandler {
698701
false
699702
);
700703

704+
addCommand(
705+
"Australian",
706+
function (args,userInfo,senderClient) {
707+
var nameToSearch = args[0];
708+
var foundClients = searchUsersByKey(nameToSearch, senderClient);
709+
710+
foundClients.forEach((client) => {
711+
addUserMessageFilter(client, "australian_filter", function (originalMessage) {
712+
var message = "" + originalMessage; //Make sure its string.
713+
714+
function safeFindAndReplace(str, find, replace) { //For compatibility
715+
var splitStr = str.split(find);
716+
return splitStr.join(replace);
717+
}
718+
719+
var bro_replace = "mate";
720+
var bro_words = ["bro", "friend", "dude", "bruh", "bru", "brother", "man"];
721+
var hello_replace = "Oi";
722+
var hello_words = ["hi", "hello", "hey"];
723+
724+
for (var targetWord of bro_words) {
725+
message = safeFindAndReplace(message, targetWord, bro_replace);
726+
}
727+
728+
for (var targetWord of hello_words) {
729+
message = safeFindAndReplace(message, targetWord, hello_replace);
730+
}
731+
732+
return message;
733+
});
734+
});
735+
736+
return CommandHandler.HIDE_MESSAGE;
737+
},
738+
"",
739+
true
740+
)
741+
701742
////////////////////////////////////////////////////
702743
}
703744

@@ -929,6 +970,14 @@ class CommandHandler {
929970
}
930971
}
931972
}
973+
974+
addUserMessageFilter(client,id,func) {
975+
client._rrUserFilters["commands_"+id] = func;
976+
}
977+
978+
removeUserMessageFilter(client,id,func) {
979+
delete client._rrUserFilters["commands_"+id];
980+
}
932981
}
933982

934983
module.exports = CommandHandler;

server-src/server.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1681,6 +1681,7 @@ async function startRoomWSS(roomid) {
16811681
ws._rrLastMessageTime = Date.now();
16821682
connectionIDCount += 1;
16831683
(async function () {
1684+
ws._rrUserFilters = {};
16841685
ws.server = wss;
16851686
ws._rrWsID = generateWebsocketID();
16861687
ws._rrIsOwner = false;
@@ -2064,13 +2065,18 @@ async function startRoomWSS(roomid) {
20642065
);
20652066
return;
20662067
}
2068+
var outputMessage = json.message;
2069+
for (var id of Object.keys(ws._rrUserFilters)) {
2070+
var func = ws._rrUserFilters[id];
2071+
outputMessage = func(outputMessage,ws);
2072+
}
20672073
var messageJson = JSON.stringify({
20682074
type: "newMessage",
20692075
message:
20702076
"[color css=yellow]For [bold]@" +
20712077
targetUser +
20722078
"[/bold]: [/color]" +
2073-
json.message,
2079+
outputMessage,
20742080
username: ws._rrUsername,
20752081
displayName: displayName,
20762082
color: ws._rrUserColor,
@@ -2126,14 +2132,19 @@ async function startRoomWSS(roomid) {
21262132
);
21272133
return;
21282134
}
2135+
var outputMessage = json.message;
2136+
for (var id of Object.keys(ws._rrUserFilters)) {
2137+
var func = ws._rrUserFilters[id];
2138+
outputMessage = func(outputMessage,ws);
2139+
}
21292140
wss.clients.forEach((cli) => {
21302141
if (!cli._rrIsReady) {
21312142
return;
21322143
}
21332144
cli.send(
21342145
JSON.stringify({
21352146
type: "newMessage",
2136-
message: json.message,
2147+
message: outputMessage,
21372148
username: ws._rrUsername,
21382149
displayName: displayName,
21392150
color: ws._rrUserColor,
@@ -2148,11 +2159,11 @@ async function startRoomWSS(roomid) {
21482159
wss._rrRoomMessages.push({
21492160
displayName: displayName,
21502161
username: ws._rrUsername,
2151-
message: json.message,
2162+
message: outputMessage,
21522163
color: ws._rrUserColor,
21532164
font: ws._rrUserFont,
21542165
});
2155-
ws._rrLastMessagePosted = json.message;
2166+
ws._rrLastMessagePosted = outputMessage;
21562167
wss._rrRoomMessages = wss._rrRoomMessages.slice(-50);
21572168
}
21582169
}

wpstatic/version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"timestamp":"1769109302611"}
1+
{"timestamp":"1770381263688"}

0 commit comments

Comments
 (0)