From 431e4fc9d1657a50ebc34b8ac24f9bfaea06417f Mon Sep 17 00:00:00 2001 From: Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> Date: Sat, 17 Sep 2022 19:39:05 +0800 Subject: Initial move to babel + change fetch to use async/await --- features/spamHider/index.js | 352 -------------------------------------------- 1 file changed, 352 deletions(-) delete mode 100644 features/spamHider/index.js (limited to 'features/spamHider/index.js') diff --git a/features/spamHider/index.js b/features/spamHider/index.js deleted file mode 100644 index 1d13e57..0000000 --- a/features/spamHider/index.js +++ /dev/null @@ -1,352 +0,0 @@ -/// -/// -import SoopyContentChangeEvent from "../../../guimanager/EventListener/SoopyContentChangeEvent"; -import Feature from "../../featureClass/class"; -import soopyV2Server from "../../socketConnection"; -import { fetch } from "../../utils/networkUtils"; -import ToggleSetting from "../settings/settingThings/toggle"; - -class SpamHider extends Feature { - constructor() { - super() - } - - onEnable() { - this.initVariables() - - this.hideMessages = [] - this.hideMessagesRexex = [] - this.moveMessages = [] - this.moveMessagesRexex = [] - - this.moveMessagesDict = { - all: [] - } - this.hideMessagesDict = { - all: [] - } - - 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.textShadowSetting = new ToggleSetting("Spam Hider Text Shadow", "Whether to give the spam hider text shadow", true, "spam_text_shadow", this) - this.showFriendMessages = new ToggleSetting("Show friend message", "should it show friend join/leave message", false, "spam_text_friend", this) - this.showGuildMessages = new ToggleSetting("Show guild message", "should it show guild mate join/leave message", false, "spam_text_guild", this) - this.showPetLevelUpMessage = new ToggleSetting("Show pet level message", "should it show pet level up message", false, "spam_text_pet_level", this) - this.removeBlocksInTheWay = new ToggleSetting("Remove limited tp msg", "completely erases 'There are blocks in the way!' message from gui", false, "limited_tp_msg", this) - this.showAutoPetRule = new ToggleSetting("Show autopet rule", "Should it show autopet rule messages", false, "autopet_msg", this) - - this.SpamHiderMessagesRenderer = new SpamHiderMessagesRenderer() - this.textShadowSetting.toggleObject.addEvent(new SoopyContentChangeEvent().setHandler((newVal, oldVal, resetFun) => { - this.SpamHiderMessagesRenderer.textShadow = this.textShadowSetting.getValue() - })) - - this.loadSpamMessages() - - this.registerChat("${*}", this.onChat) - - this.registerEvent("renderOverlay", this.renderOverlay).registeredWhen(() => this.moveMessagesSetting.getValue()) - - // this.registerChat("&r${userandrank}&r&f: ${message}&r", this.chatPlayerMessage) - } - - // chatPlayerMessage(userandrank, message, e){ - // if(!this.FeatureManager.features["generalSettings"]) return - // if(userandrank.includes(">")) return - // if(message.length < 10) return //Short messages like 'LOL' are bound to get repeated - - // let msg = sha256(message + "This is a salt PogU") - - // if(soopyV2Server.spammedMessages.includes(msg)){ - // if(this.moveChatMessages.getValue()){ - // this.SpamHiderMessagesRenderer.addMessage(ChatLib.getChatMessage(e, true)) - // cancel(e) - // } - // 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 (msg.length > 1000) return //performance - - //&r&aFriend > &r&6Soopyboo32 &r&ejoined.&r - if (this.showFriendMessages.getValue() && msg.includes("&aFriend")) return - - //&r&2Guild > &r&6Soopyboo32 &r&ejoined.&r - if (this.showGuildMessages.getValue() && msg.includes("&2Guild")) return - - //&r&aYour &r&6Golden Dragon &r&alevelled up to level &r&9200&r&a!&r - if (this.showPetLevelUpMessage.getValue() && msg.includes("&alevelled up")) return - - //&r&cThere are blocks in the way!&r - //completely erases this - if (this.removeBlocksInTheWay.getValue() && msg.includes("There are blocks in the way!")) { - cancel(e) - return - } - - //&cAutopet &eequipped your &7[Lvl 200] &6Golden Dragon&e! &a&lVIEW RULE&r - if (this.showAutoPetRule.getValue() && msg.includes("&cAutopet")) return - - if (this.hideMessagesSetting.getValue()) { - // console.log("testing " + (this.hideMessagesDict[msg.substring(0,5)]?.length || 0) + this.hideMessagesDict.all.length + " hide messages") - this.hideMessagesDict[msg.substring(0, 5)]?.forEach(regex => { - if (regex.test(msg)) { - cancel(e) - return - } - }) - this.hideMessagesDict.all.forEach(regex => { - if (regex.test(msg)) { - cancel(e) - return - } - }) - } - - if (this.moveMessagesSetting.getValue()) { - // console.log("testing " + (this.moveMessagesDict[msg.substring(0,5)]?.length || 0) + this.moveMessagesDict.all.length + " spam messages") - this.moveMessagesDict[msg.substring(0, 5)]?.forEach(regex => { - if (regex.test(msg)) { - this.SpamHiderMessagesRenderer.addMessage(msg) - cancel(e) - return - } - }) - this.moveMessagesDict.all.forEach(regex => { - if (regex.test(msg)) { - this.SpamHiderMessagesRenderer.addMessage(msg) - cancel(e) - return - } - }) - } - } - renderOverlay() { //TODO: move this to java - this.SpamHiderMessagesRenderer.render(100, 100, 1, 1) - } - - loadSpamMessages() { - fetch("http://soopy.dev/api/soopyv2/spamHiderMessages.json").json(messages => { - this.hideMessages = messages.hideMessages - this.moveMessages = messages.moveMessages - - this.hideMessagesDict = { - all: [] - } - - this.hideMessagesRexex = [] - this.hideMessages.forEach(message => { - let regex = new RegExp(message.replace(/[\\^$*+?.()|[\]{}]/g, '$&') - .replace(/\$\{\*\}/g, "(?:.+)")) - if (!message.substring(0, 5).includes("$")) { - if (!this.hideMessagesDict[message.substring(0, 5)]) this.hideMessagesDict[message.substring(0, 5)] = [] - this.hideMessagesDict[message.substring(0, 5)].push(regex) - } else { - this.hideMessagesDict.all.push(regex) - } - this.hideMessagesRexex.push(regex) - }) - - this.moveMessagesDict = { - all: [] - } - - this.moveMessagesRexex = [] - this.moveMessages.forEach(message => { - let regex = new RegExp(message.replace(/[\\^$*+?.()|[\]{}]/g, '$&') - .replace(/\$\{\*\}/g, "(?:.+)")) - - if (!message.substring(0, 5).includes("$")) { - if (!this.moveMessagesDict[message.substring(0, 5)]) this.moveMessagesDict[message.substring(0, 5)] = [] - this.moveMessagesDict[message.substring(0, 5)].push(regex) - } else { - this.moveMessagesDict.all.push(regex) - } - this.moveMessagesRexex.push(regex) - }) - }) - } - - initVariables() { - this.hideMessages = undefined - this.hideMessagesRexex = undefined - this.moveMessages = undefined - this.moveMessagesRexex = undefined - this.SpamHiderMessagesRenderer = undefined - } - - onDisable() { - this.initVariables() - } -} - -class SpamHiderMessagesRenderer { - constructor() { - this.messages = [] - this.x = 0 //offset from corner, not absolute location - this.y = 0 //offset from corner, not absolute location - this.scale = 1 - this.corner = 2 - - this.lastRender = 0 - - this.textShadow = true - } - - addMessage(str) { - this.messages.push([str, Date.now(), this.y]) - } - - render() { - Renderer.drawString("", -100, -100)//Fixes skytils issue //idk if this is still needed, it was in old code and imma just leave it ig - - let now = Date.now() - let animDiv = (now - this.lastRender) / 1000 - this.lastRender = now - let swidth = Renderer.screen.getWidth() - let sheight = Renderer.screen.getHeight() - - //loop over all messages backwards - for (let i = this.messages.length - 1; i >= 0; i--) { - let message = this.messages[i] - - let [str, time, height] = message - - time = now - time - - let messageWidth = Renderer.getStringWidth(ChatLib.removeFormatting(str)) - - let x = 0; - let y = 0; - if (this.corner === 0) { //top left - x = 20 - this.messages[i][2] = height + (((this.messages.length - i) * -10) - height) * (animDiv * 5) - } - if (this.corner === 1) { //top right - x = swidth - 20 - messageWidth - this.messages[i][2] = height + (((this.messages.length - i) * -10) - height) * (animDiv * 5) - } - if (this.corner === 2) { //bottom right - x = swidth - 20 - messageWidth - this.messages[i][2] = height + (((this.messages.length - i) * 10) - height) * (animDiv * 5) - } - - let animOnOff = 0 - if (time < 500) { - animOnOff = 1 - (time / 500) - } - if (time > 3500) { - animOnOff = ((time - 3500) / 500) - } - - animOnOff *= 90 - animOnOff += 90 - - animOnOff = animOnOff * Math.PI / 180; - - animOnOff = Math.sin(animOnOff) - - animOnOff *= -1 - animOnOff += 1 - - if (this.corner === 0) { //top left - x += ((animOnOff * -1) * (messageWidth + 30)) - y = 30 - (height) - } - if (this.corner === 1) { //top right - x += (animOnOff * (messageWidth + 30)) - y = 30 - (height) - } - if (this.corner === 2) { //bottom right - x += (animOnOff * (messageWidth + 30)) - y = sheight - 30 - (height) - } - - if (this.textShadow) { - Renderer.drawStringWithShadow(str, x + this.x, y + this.y); - } else { - Renderer.drawString(str, x + this.x, y + this.y); - } - - if (time > 4000) { - this.messages.shift() - } - } - } -} - -module.exports = { - class: new SpamHider() -} - -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; -}; -- cgit