@@ -145,6 +145,8 @@ class Chat {
145
145
this . source . on ( 'MASSGIFT' , ( data ) => this . onMASSGIFT ( data ) ) ;
146
146
this . source . on ( 'DONATION' , ( data ) => this . onDONATION ( data ) ) ;
147
147
this . source . on ( 'UPDATEUSER' , ( data ) => this . onUPDATEUSER ( data ) ) ;
148
+ this . source . on ( 'ADDPHRASE' , ( data ) => this . onADDPHRASE ( data ) ) ;
149
+ this . source . on ( 'REMOVEPHRASE' , ( data ) => this . onREMOVEPHRASE ( data ) ) ;
148
150
this . source . on ( 'DEATH' , ( data ) => this . onDEATH ( data ) ) ;
149
151
150
152
this . control . on ( 'SEND' , ( data ) => this . cmdSEND ( data ) ) ;
@@ -209,6 +211,18 @@ class Chat {
209
211
this . control . on ( 'UNMOTD' , ( ) => this . cmdUNPIN ( ) ) ;
210
212
this . control . on ( 'HOST' , ( data ) => this . cmdHOST ( data ) ) ;
211
213
this . control . on ( 'UNHOST' , ( ) => this . cmdUNHOST ( ) ) ;
214
+ this . control . on ( 'ADDPHRASE' , ( data ) => this . cmdADDPHRASE ( data ) ) ;
215
+ this . control . on ( 'ADDBAN' , ( data ) => this . cmdADDPHRASE ( data ) ) ;
216
+ this . control . on ( 'ADDMUTE' , ( data ) => this . cmdADDPHRASE ( data ) ) ;
217
+ this . control . on ( 'REMOVEPHRASE' , ( data ) => this . cmdREMOVEPHRASE ( data ) ) ;
218
+ this . control . on ( 'REMOVEBAN' , ( data ) => this . cmdREMOVEPHRASE ( data ) ) ;
219
+ this . control . on ( 'REMOVEMUTE' , ( data ) => this . cmdREMOVEPHRASE ( data ) ) ;
220
+ this . control . on ( 'DELETEPHRASE' , ( data ) => this . cmdREMOVEPHRASE ( data ) ) ;
221
+ this . control . on ( 'DELETEBAN' , ( data ) => this . cmdREMOVEPHRASE ( data ) ) ;
222
+ this . control . on ( 'DELETEMUTE' , ( data ) => this . cmdREMOVEPHRASE ( data ) ) ;
223
+ this . control . on ( 'DPHRASE' , ( data ) => this . cmdREMOVEPHRASE ( data ) ) ;
224
+ this . control . on ( 'DBAN' , ( data ) => this . cmdREMOVEPHRASE ( data ) ) ;
225
+ this . control . on ( 'DMUTE' , ( data ) => this . cmdREMOVEPHRASE ( data ) ) ;
212
226
this . control . on ( 'DIE' , ( ) => this . cmdDIE ( ) ) ;
213
227
this . control . on ( 'SUICIDE' , ( ) => this . cmdDIE ( ) ) ;
214
228
this . control . on ( 'BITLY' , ( ) => this . cmdDIE ( ) ) ;
@@ -1245,6 +1259,12 @@ class Chat {
1245
1259
`You are temporarily muted! You can chat again ${ this . mutedtimer . getReadableDuration ( ) } . Subscribe to remove the mute immediately.` ,
1246
1260
) ;
1247
1261
break ;
1262
+ case 'bannedphrase' : {
1263
+ message = MessageBuilder . error (
1264
+ `Your message was blocked because it contained this banned phrase: "${ data . filtered } ".` ,
1265
+ ) ;
1266
+ break ;
1267
+ }
1248
1268
default :
1249
1269
message = MessageBuilder . error ( errorstrings . get ( desc ) || desc ) ;
1250
1270
}
@@ -1315,6 +1335,19 @@ class Chat {
1315
1335
MessageBuilder . donation ( data ) . into ( this ) ;
1316
1336
}
1317
1337
1338
+ onADDPHRASE ( data ) {
1339
+ MessageBuilder . command ( `Phrase "${ data . data } " added.` , data . timestamp ) . into (
1340
+ this ,
1341
+ ) ;
1342
+ }
1343
+
1344
+ onREMOVEPHRASE ( data ) {
1345
+ MessageBuilder . command (
1346
+ `Phrase "${ data . data } " removed.` ,
1347
+ data . timestamp ,
1348
+ ) . into ( this ) ;
1349
+ }
1350
+
1318
1351
onPRIVMSGSENT ( ) {
1319
1352
if ( this . mainwindow . visible ) {
1320
1353
MessageBuilder . info ( 'Your message has been sent.' ) . into ( this ) ;
@@ -2272,6 +2305,38 @@ class Chat {
2272
2305
this . source . send ( 'PIN' , { data : '' } ) ;
2273
2306
}
2274
2307
2308
+ cmdADDPHRASE ( parts ) {
2309
+ if ( ! this . user . hasAnyFeatures ( UserFeatures . ADMIN , UserFeatures . MODERATOR ) ) {
2310
+ MessageBuilder . error ( errorstrings . get ( 'nopermission' ) ) . into ( this ) ;
2311
+ return ;
2312
+ }
2313
+
2314
+ if ( ! parts . length ) {
2315
+ MessageBuilder . error ( 'No phrase provided - /addphrase <phrase>' ) . into (
2316
+ this ,
2317
+ ) ;
2318
+ return ;
2319
+ }
2320
+
2321
+ this . source . send ( 'ADDPHRASE' , { data : parts . join ( ' ' ) } ) ;
2322
+ }
2323
+
2324
+ cmdREMOVEPHRASE ( parts ) {
2325
+ if ( ! this . user . hasAnyFeatures ( UserFeatures . ADMIN , UserFeatures . MODERATOR ) ) {
2326
+ MessageBuilder . error ( errorstrings . get ( 'nopermission' ) ) . into ( this ) ;
2327
+ return ;
2328
+ }
2329
+
2330
+ if ( ! parts . length ) {
2331
+ MessageBuilder . error ( 'No phrase provided - /removephrase <phrase>' ) . into (
2332
+ this ,
2333
+ ) ;
2334
+ return ;
2335
+ }
2336
+
2337
+ this . source . send ( 'REMOVEPHRASE' , { data : parts . join ( ' ' ) } ) ;
2338
+ }
2339
+
2275
2340
cmdDIE ( ) {
2276
2341
this . source . send ( 'DIE' , { data : '' } ) ;
2277
2342
}
0 commit comments