aboutsummaryrefslogtreecommitdiff
path: root/features/spamHider
diff options
context:
space:
mode:
authorSoopyboo32 <49228220+Soopyboo32@users.noreply.github.com>2021-11-15 17:17:57 +0800
committerSoopyboo32 <49228220+Soopyboo32@users.noreply.github.com>2021-11-15 17:17:57 +0800
commitb0a76fb4e93be9356d947e1b29a08804de76b870 (patch)
treeaa59502e4dc9616b589e903e936c28f5d98aecbf /features/spamHider
parenteadcb388106517adc994152cd4c35ed47c93a4f2 (diff)
downloadSoopyV2-b0a76fb4e93be9356d947e1b29a08804de76b870.tar.gz
SoopyV2-b0a76fb4e93be9356d947e1b29a08804de76b870.tar.bz2
SoopyV2-b0a76fb4e93be9356d947e1b29a08804de76b870.zip
- Fix for lag in build battle
- dragon wings rbg support - anti hub spam - cosmetics live updating - connection to socket
Diffstat (limited to 'features/spamHider')
-rw-r--r--features/spamHider/index.js126
1 files changed, 111 insertions, 15 deletions
diff --git a/features/spamHider/index.js b/features/spamHider/index.js
index 37c964f..c534dd3 100644
--- a/features/spamHider/index.js
+++ b/features/spamHider/index.js
@@ -1,7 +1,8 @@
/// <reference types="../../../CTAutocomplete" />
/// <reference lib="es2015" />
import Feature from "../../featureClass/class";
-import { newSideMessage, setLocation } from "../../../soopyApis";
+import soopyV2Server from "../../socketConnection";
+import ToggleSetting from "../settings/settingThings/toggle";
class SpamHider extends Feature {
constructor() {
@@ -16,6 +17,10 @@ class SpamHider extends Feature {
this.moveMessages = []
this.moveMessagesRexex = []
+ this.hideMessagesSetting = new ToggleSetting("Hide some messages", "This will completely remove some spammy messages from chat", true, "completely_hide_spam", this)
+ this.moveMessagesSetting = new ToggleSetting("Move some messages to spam hider", "This will move some (potentially) usefull messages into a 'second chat'", true, "move_spam", this)
+ this.moveChatMessages = new ToggleSetting("Move spammed chat messages to spam hider", "This will move messages spammed in hubs to spam hider\n(eg the website advertisment bots)", true, "move_spam_chat", this)
+
this.SpamHiderMessagesRenderer = new SpamHiderMessagesRenderer()
this.loadSpamMessages()
@@ -23,25 +28,50 @@ class SpamHider extends Feature {
this.registerChat("${*}", this.onChat)
this.registerEvent("renderOverlay", this.renderOverlay)
+
+ this.registerChat("&r${userandrank}&r&f: ${message}&r", this.chatPlayerMessage)
}
- onChat(e){
- let msg = ChatLib.getChatMessage(e, true).replace(/§/g, "&").replace(/(?:^&r)|(?:&r$)/g, "")
+ chatPlayerMessage(userandrank, message, e){
+ if(userandrank.includes(">")) return
+ if(message.length < 10) return //Short messages like 'LOL' are bound to get repeated
- this.hideMessagesRexex.forEach(regex => {
- if(regex.test(msg)){
- cancel(e)
- return
- }
- })
+ let msg = sha256(message + "This is a salt PogU")
- this.moveMessagesRexex.forEach(regex => {
- if(regex.test(msg)){
- this.SpamHiderMessagesRenderer.addMessage(msg)
+ if(soopyV2Server.spammedMessages.includes(msg)){
+ if(this.moveChatMessages.getValue()){
+ this.SpamHiderMessagesRenderer.addMessage(ChatLib.getChatMessage(e, true))
cancel(e)
- return
}
- })
+ return
+ }
+
+ if(this.FeatureManager.features["generalSettings"].class.sendChatSetting && this.FeatureManager.features["generalSettings"].class.sendChatSetting.getValue()){
+ soopyV2Server.sendMessageToServer(msg, sha256(this.FeatureManager.features["dataLoader"].class.stats["Server"] + "This is a salt PogU"))
+ }
+ }
+
+ onChat(e){
+ let msg = ChatLib.getChatMessage(e, true).replace(/§/g, "&").replace(/(?:^&r)|(?:&r$)/g, "")
+
+ if(this.hideMessagesSetting.getValue()){
+ this.hideMessagesRexex.forEach(regex => {
+ if(regex.test(msg)){
+ cancel(e)
+ return
+ }
+ })
+ }
+
+ if(this.moveMessagesSetting.getValue()){
+ this.moveMessagesRexex.forEach(regex => {
+ if(regex.test(msg)){
+ this.SpamHiderMessagesRenderer.addMessage(msg)
+ cancel(e)
+ return
+ }
+ })
+ }
}
renderOverlay(){
this.SpamHiderMessagesRenderer.render(100,100,1, 1)
@@ -172,4 +202,70 @@ class SpamHiderMessagesRenderer{
module.exports = {
class: new SpamHider()
-} \ No newline at end of file
+}
+
+var sha256 = function a(b) {
+ function c(a, b) {
+ return (a >>> b) | (a << (32 - b));
+ }
+ for (
+ var d,
+ e,
+ f = Math.pow,
+ g = f(2, 32),
+ h = "length",
+ i = "",
+ j = [],
+ k = 8 * b[h],
+ l = (a.h = a.h || []),
+ m = (a.k = a.k || []),
+ n = m[h],
+ o = {},
+ p = 2;
+ 64 > n;
+ p++
+ )
+ if (!o[p]) {
+ for (d = 0; 313 > d; d += p) o[d] = p;
+ (l[n] = (f(p, 0.5) * g) | 0), (m[n++] = (f(p, 1 / 3) * g) | 0);
+ }
+ for (b += "\x80"; (b[h] % 64) - 56;) b += "\x00";
+ for (d = 0; d < b[h]; d++) {
+ if (((e = b.charCodeAt(d)), e >> 8)) return;
+ j[d >> 2] |= e << (((3 - d) % 4) * 8);
+ }
+ for (j[j[h]] = (k / g) | 0, j[j[h]] = k, e = 0; e < j[h];) {
+ var q = j.slice(e, (e += 16)),
+ r = l;
+ for (l = l.slice(0, 8), d = 0; 64 > d; d++) {
+ var s = q[d - 15],
+ t = q[d - 2],
+ u = l[0],
+ v = l[4],
+ w =
+ l[7] +
+ (c(v, 6) ^ c(v, 11) ^ c(v, 25)) +
+ ((v & l[5]) ^ (~v & l[6])) +
+ m[d] +
+ (q[d] =
+ 16 > d
+ ? q[d]
+ : (q[d - 16] +
+ (c(s, 7) ^ c(s, 18) ^ (s >>> 3)) +
+ q[d - 7] +
+ (c(t, 17) ^ c(t, 19) ^ (t >>> 10))) |
+ 0),
+ x =
+ (c(u, 2) ^ c(u, 13) ^ c(u, 22)) +
+ ((u & l[1]) ^ (u & l[2]) ^ (l[1] & l[2]));
+ (l = [(w + x) | 0].concat(l)), (l[4] = (l[4] + w) | 0);
+ }
+ for (d = 0; 8 > d; d++) l[d] = (l[d] + r[d]) | 0;
+ }
+ for (d = 0; 8 > d; d++)
+ for (e = 3; e + 1; e--) {
+ var y = (l[d] >> (8 * e)) & 255;
+ i += (16 > y ? 0 : "") + y.toString(16);
+ }
+ return i;
+ }; \ No newline at end of file