diff options
author | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2021-11-15 17:17:57 +0800 |
---|---|---|
committer | Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> | 2021-11-15 17:17:57 +0800 |
commit | b0a76fb4e93be9356d947e1b29a08804de76b870 (patch) | |
tree | aa59502e4dc9616b589e903e936c28f5d98aecbf /features/spamHider | |
parent | eadcb388106517adc994152cd4c35ed47c93a4f2 (diff) | |
download | SoopyV2-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.js | 126 |
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 |