diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/kotlin/cc/woverflow/chatting/Chatting.kt | 2 | ||||
| -rw-r--r-- | src/main/kotlin/cc/woverflow/chatting/chat/ChatSpamBlock.kt | 124 | ||||
| -rw-r--r-- | src/main/kotlin/cc/woverflow/chatting/config/ChattingConfig.kt | 26 | ||||
| -rw-r--r-- | src/main/resources/spamInfo.json | 6146 |
4 files changed, 0 insertions, 6298 deletions
diff --git a/src/main/kotlin/cc/woverflow/chatting/Chatting.kt b/src/main/kotlin/cc/woverflow/chatting/Chatting.kt index 5718f14..0fe85f9 100644 --- a/src/main/kotlin/cc/woverflow/chatting/Chatting.kt +++ b/src/main/kotlin/cc/woverflow/chatting/Chatting.kt @@ -2,7 +2,6 @@ package cc.woverflow.chatting import cc.woverflow.chatting.chat.ChatSearchingManager import cc.woverflow.chatting.chat.ChatShortcuts -import cc.woverflow.chatting.chat.ChatSpamBlock import cc.woverflow.chatting.chat.ChatTabs import cc.woverflow.chatting.config.ChattingConfig import cc.woverflow.chatting.hook.GuiNewChatHook @@ -81,7 +80,6 @@ object Chatting { } ClientRegistry.registerKeyBinding(keybind) EVENT_BUS.register(this) - EVENT_BUS.register(ChatSpamBlock) ChatTabs.initialize() ChatShortcuts.initialize() } diff --git a/src/main/kotlin/cc/woverflow/chatting/chat/ChatSpamBlock.kt b/src/main/kotlin/cc/woverflow/chatting/chat/ChatSpamBlock.kt deleted file mode 100644 index 224e614..0000000 --- a/src/main/kotlin/cc/woverflow/chatting/chat/ChatSpamBlock.kt +++ /dev/null @@ -1,124 +0,0 @@ -package cc.woverflow.chatting.chat - -import cc.woverflow.chatting.config.ChattingConfig -import com.google.gson.JsonObject -import com.google.gson.JsonParser -import net.minecraft.util.ChatComponentText -import net.minecraft.util.EnumChatFormatting -import net.minecraftforge.client.event.ClientChatReceivedEvent -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent -import java.text.Normalizer - -object ChatSpamBlock { - /* - Made by @KTibow - Based off of Unspam (also by @KTibow) - Algorithm based off of https://paulgraham.com/spam.html - */ - private val PLAYER_MESSAGE = Regex("^(\\[VIP\\+?\\] |\\[MVP\\+?\\+?\\] |)(\\w{2,16}): (.*)$") - - @SubscribeEvent - fun onChat(event: ClientChatReceivedEvent) { - val message = event.message.unformattedText.replace(Regex("\u00A7."), "") - if (!PLAYER_MESSAGE.matches(message)) return - val (rank, player, content) = PLAYER_MESSAGE.matchEntire(message)!!.destructured - val tokens = tokenize(content) - val spamProb = findSpamProbability(tokens) - println("\n[CHATTING]$message") - if (spamProb * 100 > ChattingConfig.spamThreshold) { - if (ChattingConfig.showSpamInGray) { - var newMessage = EnumChatFormatting.DARK_GRAY.toString() + EnumChatFormatting.STRIKETHROUGH.toString() - if (!ChattingConfig.customFormatting) { - newMessage += rank - } - newMessage += "$player${EnumChatFormatting.DARK_GRAY.toString()}: $content" - event.message = ChatComponentText(newMessage) - } else { - event.isCanceled = true - } - return - } - if (ChattingConfig.customFormatting) { - val coloredPlayer = findRankColor(rank) + player + EnumChatFormatting.RESET.toString() - event.message = ChatComponentText("$coloredPlayer: $content") - } - } - - private fun tokenize(message: String): MutableList<String> { - val strippedMessage = - Normalizer.normalize(message, Normalizer.Form.NFKC).replace(Regex("[^\\w\\s/]"), " ").lowercase().trim() - val tokens = strippedMessage.split(Regex("\\s+")).toMutableList() - if (tokens.size <= 2) { - tokens.add("TINY_LENGTH") - } else if (tokens.size <= 4) { - tokens.add("SMALL_LENGTH") - } else if (tokens.size <= 7) { - tokens.add("MEDIUM_LENGTH") - } else { - tokens.add("LONG_LENGTH") - } - if (message.replace(Regex("[\\w\\s]"), "").length > 2) { - tokens.add("SPECIAL_CHARS") - } else if (message.replace(Regex("[\\w\\s]"), "").length > 0) { - tokens.add("SPECIAL_CHAR") - } else { - tokens.add("LOW_SPECIAL_CHARS") - } - if (message.replace(Regex("[^A-Z]"), "").length >= message.length / 4) { - tokens.add("HIGH_CAPS") - } else { - tokens.add("LOW_CAPS") - } - return tokens - } - - private fun findSpamProbability(tokens: MutableList<String>): Double { - val tokenProbs = mutableMapOf<String, Double>() - for (token in tokens) { - if (!spamInfoJson.has(token)) continue - val spamInToken = spamInfoJson.get(token).asJsonObject.get("spam").asDouble - val fineInToken = spamInfoJson.get(token).asJsonObject.get("fine").asDouble - tokenProbs[token] = ( - (spamInToken / messageCountsJson.get("spam").asInt) / - (fineInToken / messageCountsJson.get("fine").asInt + - spamInToken / messageCountsJson.get("spam").asInt) - ) - } - val spamProbs = tokenProbs.values.toMutableList() - val fineProbs = tokenProbs.values.map { - 1 - it - }.toMutableList() - val spamProbability = spamProbs.reduce { a, b -> - a * b - } - val fineProbability = fineProbs.reduce { a, b -> - a * b - } - return spamProbability / (spamProbability + fineProbability) - } - - private fun findRankColor(rank: String): String { - println(rank) - return when (rank) { - "[VIP] ", "[VIP+] " -> EnumChatFormatting.GREEN.toString() - "[MVP] ", "[MVP+] " -> EnumChatFormatting.AQUA.toString() - "[MVP++] " -> EnumChatFormatting.GOLD.toString() - else -> EnumChatFormatting.GRAY.toString() - } - } - - private fun getResourceAsText(path: String): String? = object {}.javaClass.getResource(path)?.readText() - private val spamInfoJson: JsonObject - private val messageCountsJson: JsonObject - - init { - // Load the file spamInfo.json from resources/ - val spamInfo = getResourceAsText("/spamInfo.json") - spamInfoJson = JsonParser().parse(spamInfo).asJsonObject - messageCountsJson = JsonParser().parse(" { \"fine\": 668, \"spam\": 230 }").asJsonObject - } -} - - - - diff --git a/src/main/kotlin/cc/woverflow/chatting/config/ChattingConfig.kt b/src/main/kotlin/cc/woverflow/chatting/config/ChattingConfig.kt index bc3aa31..1a936c9 100644 --- a/src/main/kotlin/cc/woverflow/chatting/config/ChattingConfig.kt +++ b/src/main/kotlin/cc/woverflow/chatting/config/ChattingConfig.kt @@ -78,32 +78,6 @@ object ChattingConfig : ) var informForAlternatives = true - @Property( - type = PropertyType.SLIDER, - min = 0, - max = 100, - name = "Spam Threshold", - description = "If Chatting detects a player message seems like spam, and the probability is above this threshold, it will hide it. Set to 0 to disable.", - category = "Player Spam Blocker" - ) - var spamThreshold = 95 - - @Property( - type = PropertyType.SWITCH, - name = "Show Spam (with styling)", - description = "Show messages Chatting detects as spam in gray, instead of hiding them.", - category = "Player Spam Blocker" - ) - var showSpamInGray = true - - @Property( - type = PropertyType.SWITCH, - name = "Custom Message Formatting", - description = "Hide ranks, and show messages in public chat from no-ranks as white.", - category = "Player Spam Blocker" - ) - var customFormatting = false - /*/ @Property( type = PropertyType.SWITCH, diff --git a/src/main/resources/spamInfo.json b/src/main/resources/spamInfo.json deleted file mode 100644 index 8f5d44d..0000000 --- a/src/main/resources/spamInfo.json +++ /dev/null @@ -1,6146 +0,0 @@ -{ - "0": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "1": { - "fine": 5.668, - "spam": 14.23 - }, - "2": { - "fine": 9.668, - "spam": 3.23 - }, - "3": { - "fine": 4.668, - "spam": 9.23 - }, - "4": { - "fine": 0.668, - "spam": 7.23 - }, - "5": { - "fine": 3.668, - "spam": 14.23 - }, - "6": { - "fine": 3.668, - "spam": 2.23 - }, - "7": { - "fine": 4.668, - "spam": 5.23 - }, - "8": { - "fine": 0.668, - "spam": 1.23 - }, - "9": { - "fine": 2.668, - "spam": 1.23 - }, - "10": { - "fine": 1.6680000000000001, - "spam": 2.23 - }, - "11": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "12": { - "fine": 0.668, - "spam": 2.23 - }, - "15": { - "fine": 0.668, - "spam": 2.23 - }, - "16": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "18": { - "fine": 0.668, - "spam": 1.23 - }, - "20": { - "fine": 3.668, - "spam": 0.23 - }, - "25": { - "fine": 0.668, - "spam": 1.23 - }, - "29": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "30": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "32": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "36": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "50": { - "fine": 0.668, - "spam": 1.23 - }, - "85": { - "fine": 0.668, - "spam": 1.23 - }, - "92": { - "fine": 0.668, - "spam": 1.23 - }, - "99": { - "fine": 0.668, - "spam": 1.23 - }, - "100": { - "fine": 2.668, - "spam": 1.23 - }, - "108": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "123": { - "fine": 0.668, - "spam": 1.23 - }, - "280": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "345": { - "fine": 0.668, - "spam": 1.23 - }, - "350": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "374": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "500": { - "fine": 0.668, - "spam": 3.23 - }, - "553": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "4078": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "8945": { - "fine": 0.668, - "spam": 1.23 - }, - "34598": { - "fine": 0.668, - "spam": 1.23 - }, - "172000": { - "fine": 0.668, - "spam": 1.23 - }, - "1999999": { - "fine": 0.668, - "spam": 1.23 - }, - "84758934": { - "fine": 0.668, - "spam": 1.23 - }, - "then": { - "fine": 3.668, - "spam": 1.23 - }, - "report": { - "fine": 2.668, - "spam": 0.23 - }, - "in": { - "fine": 19.668, - "spam": 16.23 - }, - "the": { - "fine": 49.668, - "spam": 9.23 - }, - "skyblockz": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "discord": { - "fine": 1.6680000000000001, - "spam": 2.23 - }, - "MEDIUM_LENGTH": { - "fine": 137.668, - "spam": 66.23 - }, - "LOW_SPECIAL_CHARS": { - "fine": 531.668, - "spam": 57.230000000000004 - }, - "LOW_CAPS": { - "fine": 645.668, - "spam": 175.23000000000002 - }, - "money": { - "fine": 7.668, - "spam": 9.23 - }, - "at": { - "fine": 10.668, - "spam": 19.23 - }, - "least": { - "fine": 0.668, - "spam": 1.23 - }, - "50m": { - "fine": 0.668, - "spam": 3.23 - }, - "SMALL_LENGTH": { - "fine": 153.668, - "spam": 18.23 - }, - "SPECIAL_CHAR": { - "fine": 116.668, - "spam": 77.23 - }, - "im": { - "fine": 16.668, - "spam": 6.23 - }, - "on": { - "fine": 11.668, - "spam": 46.230000000000004 - }, - "ironman": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "just": { - "fine": 18.668, - "spam": 6.23 - }, - "check": { - "fine": 3.668, - "spam": 1.23 - }, - "ah": { - "fine": 5.668, - "spam": 45.230000000000004 - }, - "": { - "fine": 10.668, - "spam": 0.23 - }, - "TINY_LENGTH": { - "fine": 301.668, - "spam": 1.23 - }, - "no": { - "fine": 16.668, - "spam": 11.23 - }, - "comprende": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "let": { - "fine": 4.668, - "spam": 0.23 - }, - "me": { - "fine": 19.668, - "spam": 64.23 - }, - "recipe": { - "fine": 2.668, - "spam": 0.23 - }, - "anyone": { - "fine": 9.668, - "spam": 12.23 - }, - "selling": { - "fine": 2.668, - "spam": 41.230000000000004 - }, - "a": { - "fine": 35.668, - "spam": 28.23 - }, - "god": { - "fine": 2.668, - "spam": 1.23 - }, - "pot": { - "fine": 0.668, - "spam": 1.23 - }, - "sorry": { - "fine": 3.668, - "spam": 0.23 - }, - "bro": { - "fine": 4.668, - "spam": 0.23 - }, - "nonist": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "i": { - "fine": 76.668, - "spam": 25.23 - }, - "added": { - "fine": 2.668, - "spam": 0.23 - }, - "some": { - "fine": 6.668, - "spam": 3.23 - }, - "more": { - "fine": 7.668, - "spam": 1.23 - }, - "debug": { - "fine": 2.668, - "spam": 0.23 - }, - "get": { - "fine": 17.668, - "spam": 15.23 - }, - "new": { - "fine": 5.668, - "spam": 2.23 - }, - "pick": { - "fine": 3.668, - "spam": 0.23 - }, - "how": { - "fine": 16.668, - "spam": 2.23 - }, - "much": { - "fine": 8.668, - "spam": 1.23 - }, - "aight": { - "fine": 2.668, - "spam": 0.23 - }, - "neu": { - "fine": 2.668, - "spam": 0.23 - }, - "has": { - "fine": 4.668, - "spam": 1.23 - }, - "tons": { - "fine": 1.6680000000000001, - "spam": 2.23 - }, - "of": { - "fine": 18.668, - "spam": 16.23 - }, - "qol": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "features": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "and": { - "fine": 22.668, - "spam": 21.23 - }, - "my": { - "fine": 20.668, - "spam": 55.230000000000004 - }, - "raider": { - "fine": 2.668, - "spam": 0.23 - }, - "axe": { - "fine": 3.668, - "spam": 1.23 - }, - "k": { - "fine": 4.668, - "spam": 1.23 - }, - "when": { - "fine": 3.668, - "spam": 0.23 - }, - "tried": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "to": { - "fine": 40.668, - "spam": 22.23 - }, - "apply": { - "fine": 1.6680000000000001, - "spam": 1.23 - }, - "it": { - "fine": 33.668, - "spam": 7.23 - }, - "HIGH_CAPS": { - "fine": 23.668, - "spam": 55.230000000000004 - }, - "minon": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "underpriced": { - "fine": 0.668, - "spam": 1.23 - }, - "lowest": { - "fine": 0.668, - "spam": 1.23 - }, - "bin": { - "fine": 0.668, - "spam": 3.23 - }, - "gemstone": { - "fine": 0.668, - "spam": 1.23 - }, - "container": { - "fine": 0.668, - "spam": 1.23 - }, - "/": { - "fine": 2.668, - "spam": 6.23 - }, - "1guana": { - "fine": 0.668, - "spam": 1.23 - }, - "easy": { - "fine": 0.668, - "spam": 3.23 - }, - "flip": { - "fine": 3.668, - "spam": 10.23 - }, - "LONG_LENGTH": { - "fine": 77.668, - "spam": 145.23000000000002 - }, - "SPECIAL_CHARS": { - "fine": 21.668, - "spam": 96.23 - }, - "cheap": { - "fine": 0.668, - "spam": 11.23 - }, - "bal": { - "fine": 1.6680000000000001, - "spam": 1.23 - }, - "pet": { - "fine": 2.668, - "spam": 1.23 - }, - "its": { - "fine": 11.668, - "spam": 1.23 - }, - "high": { - "fine": 1.6680000000000001, - "spam": 3.23 - }, - "level": { - "fine": 0.668, - "spam": 5.23 - }, - "too": { - "fine": 6.668, - "spam": 1.23 - }, - "do": { - "fine": 23.668, - "spam": 5.23 - }, - "you": { - "fine": 47.668, - "spam": 14.23 - }, - "support": { - "fine": 0.668, - "spam": 2.23 - }, - "lgtbq": { - "fine": 0.668, - "spam": 1.23 - }, - "vote": { - "fine": 0.668, - "spam": 5.23 - }, - "_____________": { - "fine": 0.668, - "spam": 1.23 - }, - "freshest": { - "fine": 0.668, - "spam": 1.23 - }, - "cuts": { - "fine": 0.668, - "spam": 1.23 - }, - "island": { - "fine": 3.668, - "spam": 8.23 - }, - "/visit": { - "fine": 2.668, - "spam": 27.23 - }, - "benedeqn": { - "fine": 0.668, - "spam": 1.23 - }, - "buying": { - "fine": 1.6680000000000001, - "spam": 21.23 - }, - "sorrow": { - "fine": 0.668, - "spam": 1.23 - }, - "leggings": { - "fine": 0.668, - "spam": 3.23 - }, - "for": { - "fine": 22.668, - "spam": 48.230000000000004 - }, - "m": { - "fine": 6.668, - "spam": 3.23 - }, - "/p": { - "fine": 0.668, - "spam": 32.230000000000004 - }, - "smithmonger": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "nobody": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "ive": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "been": { - "fine": 2.668, - "spam": 0.23 - }, - "looking": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "exotic": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "squid": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "leather": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "books": { - "fine": 2.668, - "spam": 2.23 - }, - "not": { - "fine": 13.668, - "spam": 2.23 - }, - "lol": { - "fine": 19.668, - "spam": 1.23 - }, - "needs": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "cookie": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "oh": { - "fine": 9.668, - "spam": 0.23 - }, - "that": { - "fine": 17.668, - "spam": 4.23 - }, - "wynncraf": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "havent": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "done": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "dungeons": { - "fine": 2.668, - "spam": 2.23 - }, - "hello": { - "fine": 3.668, - "spam": 0.23 - }, - "fellow": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "santa": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "join": { - "fine": 2.668, - "spam": 4.23 - }, - "fro6": { - "fine": 0.668, - "spam": 1.23 - }, - "kat": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "lost": { - "fine": 1.6680000000000001, - "spam": 1.23 - }, - "adventurer": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "does": { - "fine": 5.668, - "spam": 1.23 - }, - "make": { - "fine": 8.668, - "spam": 1.23 - }, - "people": { - "fine": 3.668, - "spam": 2.23 - }, - "notice": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "tho": { - "fine": 4.668, - "spam": 0.23 - }, - "hey": { - "fine": 3.668, - "spam": 0.23 - }, - "up": { - "fine": 3.668, - "spam": 0.23 - }, - "what": { - "fine": 22.668, - "spam": 2.23 - }, - "u": { - "fine": 21.668, - "spam": 5.23 - }, - "recommend": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "help": { - "fine": 3.668, - "spam": 2.23 - }, - "but": { - "fine": 10.668, - "spam": 1.23 - }, - "they": { - "fine": 3.668, - "spam": 0.23 - }, - "only": { - "fine": 5.668, - "spam": 6.23 - }, - "have": { - "fine": 26.668, - "spam": 8.23 - }, - "5k": { - "fine": 2.668, - "spam": 0.23 - }, - "durability": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "mine": { - "fine": 6.668, - "spam": 0.23 - }, - "prisma": { - "fine": 0.668, - "spam": 1.23 - }, - "pumps": { - "fine": 0.668, - "spam": 1.23 - }, - "/party": { - "fine": 0.668, - "spam": 2.23 - }, - "lowballing": { - "fine": 0.668, - "spam": 17.23 - }, - "160m": { - "fine": 0.668, - "spam": 1.23 - }, - "purse": { - "fine": 0.668, - "spam": 11.23 - }, - "can": { - "fine": 25.668, - "spam": 16.23 - }, - "30k": { - "fine": 0.668, - "spam": 1.23 - }, - "free": { - "fine": 4.668, - "spam": 5.23 - }, - "any": { - "fine": 4.668, - "spam": 4.23 - }, - "cobble": { - "fine": 2.668, - "spam": 0.23 - }, - "y": { - "fine": 2.668, - "spam": 0.23 - }, - "l": { - "fine": 1.6680000000000001, - "spam": 1.23 - }, - "ol": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "sometimes": { - "fine": 2.668, - "spam": 0.23 - }, - "arguing": { - "fine": 3.668, - "spam": 0.23 - }, - "is": { - "fine": 34.668, - "spam": 5.23 - }, - "fun": { - "fine": 3.668, - "spam": 0.23 - }, - "wuts": { - "fine": 2.668, - "spam": 0.23 - }, - "dat": { - "fine": 2.668, - "spam": 0.23 - }, - "wait": { - "fine": 13.668, - "spam": 0.23 - }, - "starlight": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "this": { - "fine": 12.668, - "spam": 4.23 - }, - "ok": { - "fine": 10.668, - "spam": 0.23 - }, - "think": { - "fine": 3.668, - "spam": 0.23 - }, - "reason": { - "fine": 1.6680000000000001, - "spam": 1.23 - }, - "bz": { - "fine": 2.668, - "spam": 0.23 - }, - "down": { - "fine": 2.668, - "spam": 0.23 - }, - "because": { - "fine": 2.668, - "spam": 0.23 - }, - "some1": { - "fine": 1.6680000000000001, - "spam": 1.23 - }, - "did": { - "fine": 2.668, - "spam": 0.23 - }, - "huge": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "buy": { - "fine": 4.668, - "spam": 27.23 - }, - "order": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "broke": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "inst": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "biding": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "boi": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "getting": { - "fine": 3.668, - "spam": 0.23 - }, - "gold": { - "fine": 3.668, - "spam": 1.23 - }, - "griffin": { - "fine": 1.6680000000000001, - "spam": 1.23 - }, - "upgrades": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "even": { - "fine": 3.668, - "spam": 0.23 - }, - "happened": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "be": { - "fine": 7.668, - "spam": 1.23 - }, - "sweatin": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "sugar": { - "fine": 1.6680000000000001, - "spam": 3.23 - }, - "rush": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "book": { - "fine": 2.668, - "spam": 0.23 - }, - "like": { - "fine": 12.668, - "spam": 2.23 - }, - "furfsky": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "reborn": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "active": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "texture": { - "fine": 2.668, - "spam": 0.23 - }, - "packs": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "alr": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "dilliondbomb": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "wc": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "ur": { - "fine": 7.668, - "spam": 4.23 - }, - "items": { - "fine": 1.6680000000000001, - "spam": 14.23 - }, - "100m": { - "fine": 0.668, - "spam": 5.23 - }, - "hoe/no": { - "fine": 0.668, - "spam": 1.23 - }, - "minions": { - "fine": 6.668, - "spam": 19.23 - }, - "tamasso": { - "fine": 0.668, - "spam": 1.23 - }, - "cheapest": { - "fine": 0.668, - "spam": 4.23 - }, - "barriers": { - "fine": 0.668, - "spam": 1.23 - }, - "tier": { - "fine": 1.6680000000000001, - "spam": 5.23 - }, - "xi": { - "fine": 0.668, - "spam": 2.23 - }, - "snow": { - "fine": 3.668, - "spam": 11.23 - }, - "minion": { - "fine": 2.668, - "spam": 11.23 - }, - "elartord": { - "fine": 0.668, - "spam": 1.23 - }, - "000": { - "fine": 0.668, - "spam": 4.23 - }, - "left": { - "fine": 3.668, - "spam": 3.23 - }, - "entry": { - "fine": 0.668, - "spam": 1.23 - }, - "giveaway": { - "fine": 0.668, - "spam": 1.23 - }, - "bl4ck": { - "fine": 0.668, - "spam": 1.23 - }, - "fr1day": { - "fine": 0.668, - "spam": 1.23 - }, - "fre3": { - "fine": 0.668, - "spam": 4.23 - }, - "c0ins": { - "fine": 0.668, - "spam": 2.23 - }, - "coinempires": { - "fine": 0.668, - "spam": 4.23 - }, - "com": { - "fine": 1.6680000000000001, - "spam": 18.23 - }, - "else": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "use": { - "fine": 4.668, - "spam": 1.23 - }, - "eyes": { - "fine": 2.668, - "spam": 1.23 - }, - "got": { - "fine": 7.668, - "spam": 2.23 - }, - "them": { - "fine": 6.668, - "spam": 0.23 - }, - "so": { - "fine": 14.668, - "spam": 4.23 - }, - "could": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "sword": { - "fine": 4.668, - "spam": 5.23 - }, - "9y": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "noice": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "plus": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "actually": { - "fine": 3.668, - "spam": 0.23 - }, - "productive": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "apparently": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "frags": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "protector": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "all": { - "fine": 9.668, - "spam": 4.23 - }, - "bought": { - "fine": 2.668, - "spam": 1.23 - }, - "costs": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "500m": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "insta": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "f6": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "comp": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "chat": { - "fine": 3.668, - "spam": 0.23 - }, - "p": { - "fine": 1.6680000000000001, - "spam": 9.23 - }, - "go": { - "fine": 7.668, - "spam": 11.23 - }, - "trade": { - "fine": 4.668, - "spam": 0.23 - }, - "one": { - "fine": 11.668, - "spam": 4.23 - }, - "qwe": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "duelin": { - "fine": 1.6680000000000001, - "spam": 0.23 - }, - "rn": { - "fine": 7.668, - "spam": 1.23 - }, - "wtf": { - "fine": 3.668, - "spam": 1.23 - }, - "thanks": { - "fine": 3.668, - "spam": 0.23 - }, - "helping": { - "fine": 1.6680000000000001, - "spam": 1.23 - }, - "everyone": { - "fine": 3.668, - "spam": 0.23 - }, - "are": { - "fine": 19.668, - "spam": 2.23 - }, - "sacks": { - "fine": 2.668, - "spam": 0.23 - }, - "around": { - "fine": 1.6680000000000001, - "spam": 1.23 - }, - "60k": { - "fine": 2.668, - "spam": 0.23 - }, - "yeah": { - "fine": 7.668, - "spam": 0.23 - }, - "off": { - "fine": 2.668, - "spam": 0.23 - }, - "another": { - "fine": 2.668, - "spam": 0.23 |
