From 93a32bbbd183cf45af10a7fbe9a5238585eb442e Mon Sep 17 00:00:00 2001 From: Kendell R Date: Sun, 29 May 2022 12:39:36 -0700 Subject: spam block v2 --- src/main/kotlin/cc/woverflow/chatting/Chatting.kt | 137 +- .../cc/woverflow/chatting/chat/ChatSpamBlock.kt | 124 + .../cc/woverflow/chatting/config/ChattingConfig.kt | 101 +- src/main/resources/spamInfo.json | 6146 ++++++++++++++++++++ 4 files changed, 6446 insertions(+), 62 deletions(-) create mode 100644 src/main/kotlin/cc/woverflow/chatting/chat/ChatSpamBlock.kt create mode 100644 src/main/resources/spamInfo.json (limited to 'src/main') diff --git a/src/main/kotlin/cc/woverflow/chatting/Chatting.kt b/src/main/kotlin/cc/woverflow/chatting/Chatting.kt index d012ab3..ce18f13 100644 --- a/src/main/kotlin/cc/woverflow/chatting/Chatting.kt +++ b/src/main/kotlin/cc/woverflow/chatting/Chatting.kt @@ -2,6 +2,7 @@ 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 @@ -13,6 +14,10 @@ import cc.woverflow.chatting.utils.screenshot import cc.woverflow.onecore.utils.* import gg.essential.universal.UDesktop import gg.essential.universal.UResolution +import java.awt.image.BufferedImage +import java.io.File +import java.text.SimpleDateFormat +import java.util.* import net.minecraft.client.Minecraft import net.minecraft.client.gui.* import net.minecraft.client.renderer.GlStateManager @@ -36,6 +41,7 @@ import java.io.File import java.text.SimpleDateFormat import java.util.* +import skytils.skytilsmod.core.Config @Mod( modid = Chatting.ID, @@ -72,13 +78,10 @@ object Chatting { @Mod.EventHandler fun onInitialization(event: FMLInitializationEvent) { ChattingConfig.preload() - command("chatting") { - main { - ChattingConfig.openScreen() - } - } + command("chatting") { main { ChattingConfig.openScreen() } } ClientRegistry.registerKeyBinding(keybind) EVENT_BUS.register(this) + EVENT_BUS.register(ChatSpamBlock) ChatTabs.initialize() ChatShortcuts.initialize() } @@ -95,20 +98,42 @@ object Chatting { fun onForgeLoad(event: FMLLoadCompleteEvent) { if (ChattingConfig.informForAlternatives) { if (isHychat) { - sendBrandedNotification(NAME, "Hychat can be removed at it is replaced by Chatting. Click here for more information.", action = { - UDesktop.browseURL("https://github.com/MicrocontrollersDev/Alternatives/blob/main/Hychat.md") - }) + sendBrandedNotification( + NAME, + "Hychat can be removed at it is replaced by Chatting. Click here for more information.", + action = { + UDesktop.browseURL( + "https://github.com/MicrocontrollersDev/Alternatives/blob/main/Hychat.md" + ) + } + ) } if (isSkytils) { - try { - skytilsCompat(Class.forName("gg.skytils.skytilsmod.core.Config")) - } catch (e: Exception) { - e.printStackTrace() - try { - skytilsCompat(Class.forName("skytils.skytilsmod.core.Config")) - } catch (e: Exception) { - e.printStackTrace() - } + if (Config.chatTabs) { + sendBrandedNotification( + NAME, + "Skytils' chat tabs can be disabled as it is replace by Chatting.\nClick here to automatically do this.", + 6F, + action = { + Config.chatTabs = false + ChattingConfig.chatTabs = true + ChattingConfig.hypixelOnlyChatTabs = true + Config.markDirty() + Config.writeData() + } + ) + } + if (Config.copyChat) { + sendBrandedNotification( + NAME, + "Skytils' copy chat messages can be disabled as it is replace by Chatting.\nClick here to automatically do this.", + 6F, + action = { + Config.copyChat = false + Config.markDirty() + Config.writeData() + } + ) } } } @@ -142,7 +167,12 @@ object Chatting { @SubscribeEvent fun onTickEvent(event: TickEvent.ClientTickEvent) { - if (event.phase == TickEvent.Phase.START && Minecraft.getMinecraft().theWorld != null && Minecraft.getMinecraft().thePlayer != null && (Minecraft.getMinecraft().currentScreen == null || Minecraft.getMinecraft().currentScreen is GuiChat)) { + if (event.phase == TickEvent.Phase.START && + Minecraft.getMinecraft().theWorld != null && + Minecraft.getMinecraft().thePlayer != null && + (Minecraft.getMinecraft().currentScreen == null || + Minecraft.getMinecraft().currentScreen is GuiChat) + ) { if (doTheThing) { screenshotChat() doTheThing = false @@ -154,8 +184,13 @@ object Chatting { var height = if (opened) ChattingConfig.focusedHeight else ChattingConfig.unfocusedHeight height = (height * Minecraft.getMinecraft().gameSettings.chatScale).toInt() val chatY = ModCompatHooks.yOffset + ModCompatHooks.chatPosition - if (height + chatY + 27 > (UResolution.scaledHeight / Minecraft.getMinecraft().gameSettings.chatScale).toInt() - 27 - chatY) { - height = (UResolution.scaledHeight / Minecraft.getMinecraft().gameSettings.chatScale).toInt() - 27 - chatY + if (height + chatY + 27 > + (UResolution.scaledHeight / Minecraft.getMinecraft().gameSettings.chatScale) + .toInt() - 27 - chatY + ) { + height = + (UResolution.scaledHeight / Minecraft.getMinecraft().gameSettings.chatScale) + .toInt() - 27 - chatY } return height } @@ -164,7 +199,17 @@ object Chatting { val hud = Minecraft.getMinecraft().ingameGUI val chat = hud.chatGUI val i = MathHelper.floor_float(chat.chatWidth / chat.chatScale) - return screenshot(GuiUtilRenderComponents.splitText(line.chatComponent, i, Minecraft.getMinecraft().fontRendererObj, false, false).map { it.formattedText }.reversed()) + return screenshot( + GuiUtilRenderComponents.splitText( + line.chatComponent, + i, + Minecraft.getMinecraft().fontRendererObj, + false, + false + ) + .map { it.formattedText } + .reversed() + ) } private fun screenshotChat() { @@ -175,14 +220,23 @@ object Chatting { val hud = Minecraft.getMinecraft().ingameGUI val chat = hud.chatGUI val chatLines = ArrayList() - ChatSearchingManager.filterMessages((chat as GuiNewChatHook).prevText, (chat as GuiNewChatAccessor).drawnChatLines)?.let { drawnLines -> - val chatHeight = if (ChattingConfig.customChatHeight) getChatHeight(true) / 9 else GuiNewChat.calculateChatboxHeight(Minecraft.getMinecraft().gameSettings.chatHeightFocused / 9) - for (i in scrollPos until drawnLines.size.coerceAtMost(scrollPos + chatHeight)) { - chatLines.add(drawnLines[i].chatComponent.formattedText) - } + ChatSearchingManager.filterMessages( + (chat as GuiNewChatHook).prevText, + (chat as GuiNewChatAccessor).drawnChatLines + ) + ?.let { drawnLines -> + val chatHeight = + if (ChattingConfig.customChatHeight) getChatHeight(true) / 9 + else + GuiNewChat.calculateChatboxHeight( + Minecraft.getMinecraft().gameSettings.chatHeightFocused / 9 + ) + for (i in scrollPos until drawnLines.size.coerceAtMost(scrollPos + chatHeight)) { + chatLines.add(drawnLines[i].chatComponent.formattedText) + } - screenshot(chatLines)?.copyToClipboard() - } + screenshot(chatLines)?.copyToClipboard() + } } private fun screenshot(messages: List): BufferedImage? { @@ -191,30 +245,47 @@ object Chatting { return null } if (!OpenGlHelper.isFramebufferEnabled()) { - sendBrandedNotification("Chatting", "Screenshot failed, please disable “Fast Render” in OptiFine’s “Performance” tab.") + sendBrandedNotification( + "Chatting", + "Screenshot failed, please disable “Fast Render” in OptiFine’s “Performance” tab." + ) return null } val fr: FontRenderer = ModCompatHooks.fontRenderer val width = messages.maxOf { fr.getStringWidth(it) } + 4 val fb: Framebuffer = createBindFramebuffer(width * 2, (messages.size * 9) * 2) - val file = File(Minecraft.getMinecraft().mcDataDir, "screenshots/chat/" + fileFormatter.format(Date())) + val file = + File( + Minecraft.getMinecraft().mcDataDir, + "screenshots/chat/" + fileFormatter.format(Date()) + ) GlStateManager.scale(2f, 2f, 1f) val scale = Minecraft.getMinecraft().gameSettings.chatScale GlStateManager.scale(scale, scale, 1f) for (i in messages.indices) { - ModCompatHooks.redirectDrawString(messages[i], 0f, (messages.size - 1 - i) * 9f, 0xffffff) + ModCompatHooks.redirectDrawString( + messages[i], + 0f, + (messages.size - 1 - i) * 9f, + 0xffffff + ) } val image = fb.screenshot(file) Minecraft.getMinecraft().entityRenderer.setupOverlayRendering() Minecraft.getMinecraft().framebuffer.bindFramebuffer(true) - sendBrandedNotification("Chatting", "Chat screenshotted successfully." + (if (ChattingConfig.copyMode != 1) "\nClick to open." else ""), action = { + sendBrandedNotification( + "Chatting", + "Chat screenshotted successfully." + + (if (ChattingConfig.copyMode != 1) "\nClick to open." else ""), + action = { if (!UDesktop.open(file)) { sendBrandedNotification("Chatting", "Could not browse!") } - }) + } + ) return image } } diff --git a/src/main/kotlin/cc/woverflow/chatting/chat/ChatSpamBlock.kt b/src/main/kotlin/cc/woverflow/chatting/chat/ChatSpamBlock.kt new file mode 100644 index 0000000..91ea6b5 --- /dev/null +++ b/src/main/kotlin/cc/woverflow/chatting/chat/ChatSpamBlock.kt @@ -0,0 +1,124 @@ +package cc.woverflow.chatting.chat + +import cc.woverflow.chatting.config.ChattingConfig +import com.google.gson.JsonObject +import com.google.gson.JsonParser +import java.text.Normalizer +import net.minecraft.util.ChatComponentText +import net.minecraft.util.EnumChatFormatting +import net.minecraftforge.client.event.ClientChatReceivedEvent +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +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 + + if (ChattingConfig.spamThreshold != 100) { + val tokens = tokenize(content) + val spamProb = findSpamProbability(tokens) + if (spamProb * 100 > ChattingConfig.spamThreshold) { + if (ChattingConfig.hideSpam) { + event.isCanceled = true + } else { + var newMessage = + EnumChatFormatting.DARK_GRAY.toString() + + EnumChatFormatting.STRIKETHROUGH.toString() + if (!ChattingConfig.customChatFormatting) { + newMessage += rank + } + newMessage += "$player${EnumChatFormatting.DARK_GRAY.toString()}: $content" + event.message = ChatComponentText(newMessage) + } + return + } + } + if (ChattingConfig.customChatFormatting) { + val coloredPlayer = findRankColor(rank) + player + EnumChatFormatting.RESET.toString() + event.message = ChatComponentText("$coloredPlayer: $content") + } + } + + private fun tokenize(message: String): MutableList { + 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): Double { + val tokenProbs = mutableMapOf() + 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 1a936c9..3041af8 100644 --- a/src/main/kotlin/cc/woverflow/chatting/config/ChattingConfig.kt +++ b/src/main/kotlin/cc/woverflow/chatting/config/ChattingConfig.kt @@ -17,7 +17,11 @@ import java.awt.Color import java.io.File object ChattingConfig : - Vigilant(File(Chatting.modDir, "${Chatting.ID}.toml"), Chatting.NAME, sortingBehavior = ConfigSorting) { + Vigilant( + File(Chatting.modDir, "${Chatting.ID}.toml"), + Chatting.NAME, + sortingBehavior = ConfigSorting + ) { @Property( type = PropertyType.SELECTOR, @@ -73,7 +77,8 @@ object ChattingConfig : @Property( type = PropertyType.SWITCH, name = "Inform for Alternatives", - description = "Inform the user if a mod they are using can be replaced by a feature in Chatting.", + description = + "Inform the user if a mod they are using can be replaced by a feature in Chatting.", category = "General" ) var informForAlternatives = true @@ -97,6 +102,40 @@ object ChattingConfig : */ + @Property( + type = PropertyType.SLIDER, + min = 80, + max = 100, + name = "Spam Blocker Threshold", + description = + "If Chatting detects a public chat message that seems like spam, and the probability is higher than this, it will hide it.\n" + + "Made for Hypixel Skyblock. Set to 100% to disable. 95% is a reasonable threshold to use it at.\n" + + "Note that this is not and never will be 100% accurate; however, it's pretty much guaranteed to block most spam.", + category = "Player Chats" + ) + var spamThreshold = 100 + + @Property( + type = PropertyType.SWITCH, + name = "Custom Chat Formatting", + description = + "Reformat all Skyblock chat messages. Example:\n" + + "§a[VIP] Person§f: Message\n§7Person2: Message\n" + + "§eBecomes:\n" + + "§aPerson§f: Message\n§7Person2§f: Message", + category = "Player Chats" + ) + var customChatFormatting = false + + @Property( + type = PropertyType.SWITCH, + name = "Hide Spam", + description = + "When Chatting detects spam (if it's enabled), hide it instead of just graying it out.", + category = "Player Chats" + ) + var hideSpam = false + @Property( type = PropertyType.SWITCH, name = "Custom Chat Height", @@ -143,7 +182,10 @@ object ChattingConfig : var chatSearch = true @Property( - type = PropertyType.SWITCH, name = "Chat Tabs", description = "Add chat tabs.", category = "Tabs" + type = PropertyType.SWITCH, + name = "Chat Tabs", + description = "Add chat tabs.", + category = "Tabs" ) var chatTabs = true get() { @@ -164,7 +206,10 @@ object ChattingConfig : var hypixelOnlyChatTabs = true @Property( - type = PropertyType.SWITCH, name = "Chat Shortcuts", description = "Add chat shortcuts.", category = "Shortcuts" + type = PropertyType.SWITCH, + name = "Chat Shortcuts", + description = "Add chat shortcuts.", + category = "Shortcuts" ) var chatShortcuts = false get() { @@ -198,26 +243,27 @@ object ChattingConfig : chatTabs = funny ChatTabs.initialize() if (!funny) { - val dummy = ChatTab( - true, - "ALL", - false, - false, - null, - null, - null, - null, - null, - null, - null, - null, - null, - null, - TabButton.color, - TabButton.hoveredColor, - TabButton.selectedColor, - "" - ) + val dummy = + ChatTab( + true, + "ALL", + false, + false, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + TabButton.color, + TabButton.hoveredColor, + TabButton.selectedColor, + "" + ) dummy.initialize() ChatTabs.currentTab = dummy } else { @@ -228,16 +274,13 @@ object ChattingConfig : chatShortcuts = funny ChatShortcuts.initialize() } - //addDependency("showTimestampHover", "showTimestamp") + // addDependency("showTimestampHover", "showTimestamp") } private object ConfigSorting : SortingBehavior() { override fun getCategoryComparator(): Comparator = Comparator { o1, o2 -> if (o1.name == "General") return@Comparator -1 - if (o2.name == "General") return@Comparator 1 - else compareValuesBy(o1, o2) { - it.name - } + if (o2.name == "General") return@Comparator 1 else compareValuesBy(o1, o2) { it.name } } } } diff --git a/src/main/resources/spamInfo.json b/src/main/resources/spamInfo.json new file mode 100644 index 0000000..8f5d44d --- /dev/null +++ b/src/main/resources/spamInfo.json @@ -0,0 +1,6146 @@ +{ + "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 + }, + "dragon": { + "fine": 2.668, + "spam": 2.23 + }, + "hoes": { + "fine": 0.668, + "spam": 4.23 + }, + "skins": { + "fine": 1.6680000000000001, + "spam": 2.23 + }, + "or": { + "fine": 6.668, + "spam": 11.23 + }, + "exotics": { + "fine": 0.668, + "spam": 2.23 + }, + "demand": { + "fine": 0.668, + "spam": 1.23 + }, + "who": { + "fine": 1.6680000000000001, + "spam": 4.23 + }, + "sell": { + "fine": 1.6680000000000001, + "spam": 3.23 + }, + "flower": { + "fine": 0.668, + "spam": 6.23 + }, + "t10": { + "fine": 0.668, + "spam": 2.23 + }, + "if": { + "fine": 7.668, + "spam": 16.23 + }, + "want": { + "fine": 11.668, + "spam": 8.23 + }, + "look": { + "fine": 1.6680000000000001, + "spam": 2.23 + }, + "many": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "pets": { + "fine": 0.668, + "spam": 3.23 + }, + "maxed": { + "fine": 0.668, + "spam": 6.23 + }, + "juju": { + "fine": 2.668, + "spam": 5.23 + }, + "pa": { + "fine": 0.668, + "spam": 6.23 + }, + "d": { + "fine": 3.668, + "spam": 6.23 + }, + "coins": { + "fine": 2.668, + "spam": 21.23 + }, + "fast": { + "fine": 2.668, + "spam": 7.23 + }, + "easily": { + "fine": 0.668, + "spam": 11.23 + }, + "brucepog": { + "fine": 0.668, + "spam": 10.23 + }, + "net": { + "fine": 0.668, + "spam": 11.23 + }, + "fastest": { + "fine": 0.668, + "spam": 2.23 + }, + "making": { + "fine": 0.668, + "spam": 5.23 + }, + "method": { + "fine": 0.668, + "spam": 3.23 + }, + "ever": { + "fine": 0.668, + "spam": 2.23 + }, + "hypixelsky": { + "fine": 0.668, + "spam": 1.23 + }, + "anybody": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "yea": { + "fine": 5.668, + "spam": 0.23 + }, + "gifts": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "give": { + "fine": 5.668, + "spam": 4.23 + }, + "h": { + "fine": 1.6680000000000001, + "spam": 2.23 + }, + "thats": { + "fine": 4.668, + "spam": 0.23 + }, + "saw": { + "fine": 2.668, + "spam": 0.23 + }, + "name": { + "fine": 3.668, + "spam": 2.23 + }, + "esotericvoid": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "trash": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "mining": { + "fine": 5.668, + "spam": 0.23 + }, + "also": { + "fine": 3.668, + "spam": 0.23 + }, + "holding": { + "fine": 2.668, + "spam": 0.23 + }, + "click": { + "fine": 2.668, + "spam": 0.23 + }, + "pixel": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "party": { + "fine": 3.668, + "spam": 8.23 + }, + "dont": { + "fine": 7.668, + "spam": 0.23 + }, + "pooch": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "unlocked": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "ofc": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "w": { + "fine": 3.668, + "spam": 0.23 + }, + "crits": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "was": { + "fine": 9.668, + "spam": 1.23 + }, + "gonna": { + "fine": 4.668, + "spam": 0.23 + }, + "jerry": { + "fine": 5.668, + "spam": 2.23 + }, + "iich": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "547mil": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "netherwart": { + "fine": 2.668, + "spam": 2.23 + }, + "same": { + "fine": 5.668, + "spam": 0.23 + }, + "auto": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "awesome": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "he": { + "fine": 3.668, + "spam": 1.23 + }, + "irl": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "way": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "mega": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "lateeeee": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "sheesh": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "will": { + "fine": 6.668, + "spam": 4.23 + }, + "ya": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "know": { + "fine": 4.668, + "spam": 0.23 + }, + "with": { + "fine": 6.668, + "spam": 9.23 + }, + "c": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "hours": { + "fine": 3.668, + "spam": 1.23 + }, + "long": { + "fine": 2.668, + "spam": 0.23 + }, + "15m": { + "fine": 0.668, + "spam": 1.23 + }, + "ending": { + "fine": 0.668, + "spam": 4.23 + }, + "now": { + "fine": 6.668, + "spam": 5.23 + }, + "double": { + "fine": 0.668, + "spam": 2.23 + }, + "your": { + "fine": 5.668, + "spam": 8.23 + }, + "by": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "gambling": { + "fine": 0.668, + "spam": 2.23 + }, + "scam": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "said": { + "fine": 2.668, + "spam": 0.23 + }, + "wout": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "underscore": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "rip": { + "fine": 5.668, + "spam": 0.23 + }, + "why": { + "fine": 8.668, + "spam": 0.23 + }, + "toxic": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "purchase": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "debates": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "life": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "back": { + "fine": 3.668, + "spam": 1.23 + }, + "cliffside": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "veins": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "tita": { + "fine": 2.668, + "spam": 0.23 + }, + "billionare": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "destroyed": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "bazaar": { + "fine": 4.668, + "spam": 0.23 + }, + "30fps": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "forest": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "called": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "sounds": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "good": { + "fine": 5.668, + "spam": 5.23 + }, + "optifine": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "50k": { + "fine": 2.668, + "spam": 0.23 + }, + "disabled": { + "fine": 2.668, + "spam": 0.23 + }, + "there": { + "fine": 5.668, + "spam": 0.23 + }, + "dupe": { + "fine": 2.668, + "spam": 1.23 + }, + "quitting": { + "fine": 0.668, + "spam": 1.23 + }, + "skyblock": { + "fine": 2.668, + "spam": 4.23 + }, + "me4": { + "fine": 0.668, + "spam": 1.23 + }, + "6/7": { + "fine": 0.668, + "spam": 1.23 + }, + "damage": { + "fine": 0.668, + "spam": 1.23 + }, + "800k": { + "fine": 0.668, + "spam": 2.23 + }, + "need": { + "fine": 13.668, + "spam": 9.23 + }, + "4m": { + "fine": 0.668, + "spam": 6.23 + }, + "truth": { + "fine": 0.668, + "spam": 3.23 + }, + "t11": { + "fine": 0.668, + "spam": 8.23 + }, + "lapis": { + "fine": 0.668, + "spam": 3.23 + }, + "leg": { + "fine": 0.668, + "spam": 2.23 + }, + "skeleton": { + "fine": 0.668, + "spam": 1.23 + }, + "horse": { + "fine": 0.668, + "spam": 1.23 + }, + "9m": { + "fine": 0.668, + "spam": 1.23 + }, + "100k": { + "fine": 1.6680000000000001, + "spam": 3.23 + }, + "lower": { + "fine": 0.668, + "spam": 1.23 + }, + "than": { + "fine": 6.668, + "spam": 1.23 + }, + "14m": { + "fine": 0.668, + "spam": 1.23 + }, + "profit": { + "fine": 0.668, + "spam": 1.23 + }, + "quick": { + "fine": 0.668, + "spam": 6.23 + }, + "oof": { + "fine": 0.668, + "spam": 1.23 + }, + "o/////////////": { + "fine": 0.668, + "spam": 1.23 + }, + "best": { + "fine": 2.668, + "spam": 8.23 + }, + "plac3": { + "fine": 0.668, + "spam": 2.23 + }, + "t0": { + "fine": 0.668, + "spam": 7.23 + }, + "co": { + "fine": 0.668, + "spam": 6.23 + }, + "ins": { + "fine": 0.668, + "spam": 2.23 + }, + "kirapog": { + "fine": 0.668, + "spam": 2.23 + }, + "hi": { + "fine": 7.668, + "spam": 0.23 + }, + "white": { + "fine": 2.668, + "spam": 0.23 + }, + "block": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "spawn": { + "fine": 3.668, + "spam": 0.23 + }, + "spare": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "gg": { + "fine": 6.668, + "spam": 0.23 + }, + "damm": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "effecient": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "miner": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "bid": { + "fine": 1.6680000000000001, + "spam": 5.23 + }, + "hiegher": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "hard": { + "fine": 2.668, + "spam": 0.23 + }, + "nice": { + "fine": 8.668, + "spam": 1.23 + }, + "f": { + "fine": 3.668, + "spam": 1.23 + }, + "ignore": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "typing": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "from": { + "fine": 3.668, + "spam": 2.23 + }, + "where": { + "fine": 10.668, + "spam": 0.23 + }, + "eu": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "last": { + "fine": 2.668, + "spam": 0.23 + }, + "night": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "s": { + "fine": 5.668, + "spam": 3.23 + }, + "luck": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "went": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "into": { + "fine": 2.668, + "spam": 0.23 + }, + "hypothetically": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "wya": { + "fine": 2.668, + "spam": 0.23 + }, + "crazy": { + "fine": 1.6680000000000001, + "spam": 3.23 + }, + "wit": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "cause": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "forge": { + "fine": 2.668, + "spam": 0.23 + }, + "spot": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "twice": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "comm": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "take": { + "fine": 2.668, + "spam": 0.23 + }, + "titanium": { + "fine": 2.668, + "spam": 0.23 + }, + "gotta": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "ask": { + "fine": 2.668, + "spam": 0.23 + }, + "imma": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "fish": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "macro": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "1b": { + "fine": 0.668, + "spam": 2.23 + }, + "tools": { + "fine": 1.6680000000000001, + "spam": 2.23 + }, + "10m": { + "fine": 1.6680000000000001, + "spam": 4.23 + }, + "lions": { + "fine": 0.668, + "spam": 1.23 + }, + "12m": { + "fine": 0.668, + "spam": 1.23 + }, + "per": { + "fine": 0.668, + "spam": 2.23 + }, + "hour": { + "fine": 0.668, + "spam": 2.23 + }, + "million": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "never": { + "fine": 2.668, + "spam": 0.23 + }, + "played": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "welp": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "ihave": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "pls": { + "fine": 3.668, + "spam": 3.23 + }, + "thank": { + "fine": 3.668, + "spam": 0.23 + }, + "nature": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "dumb": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "da": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "hecc": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "ice": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "bridge": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "omw": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "3m": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "keep": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "wamt": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "protip": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "am": { + "fine": 0.668, + "spam": 6.23 + }, + "250k": { + "fine": 0.668, + "spam": 2.23 + }, + "fot": { + "fine": 0.668, + "spam": 1.23 + }, + "bank": { + "fine": 0.668, + "spam": 1.23 + }, + "max": { + "fine": 1.6680000000000001, + "spam": 2.23 + }, + "shortbow": { + "fine": 0.668, + "spam": 3.23 + }, + "18m": { + "fine": 0.668, + "spam": 1.23 + }, + "amazing": { + "fine": 0.668, + "spam": 1.23 + }, + "deals": { + "fine": 0.668, + "spam": 1.23 + }, + "flips": { + "fine": 0.668, + "spam": 1.23 + }, + "jungle": { + "fine": 0.668, + "spam": 2.23 + }, + "pic": { + "fine": 0.668, + "spam": 1.23 + }, + "7m": { + "fine": 0.668, + "spam": 3.23 + }, + "spiritual": { + "fine": 0.668, + "spam": 1.23 + }, + "star": { + "fine": 0.668, + "spam": 7.23 + }, + "hot": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "potato": { + "fine": 2.668, + "spam": 3.23 + }, + "soul": { + "fine": 2.668, + "spam": 2.23 + }, + "eater": { + "fine": 0.668, + "spam": 1.23 + }, + "enchants": { + "fine": 0.668, + "spam": 2.23 + }, + "35m": { + "fine": 0.668, + "spam": 3.23 + }, + "8m": { + "fine": 0.668, + "spam": 3.23 + }, + "loving": { + "fine": 0.668, + "spam": 1.23 + }, + "g3t": { + "fine": 0.668, + "spam": 1.23 + }, + "pa1d": { + "fine": 0.668, + "spam": 1.23 + }, + "ns": { + "fine": 0.668, + "spam": 4.23 + }, + "3asily": { + "fine": 0.668, + "spam": 1.23 + }, + "co1ns": { + "fine": 0.668, + "spam": 2.23 + }, + "whats": { + "fine": 4.668, + "spam": 0.23 + }, + "fishing": { + "fine": 2.668, + "spam": 0.23 + }, + "afk": { + "fine": 2.668, + "spam": 0.23 + }, + "sry": { + "fine": 2.668, + "spam": 0.23 + }, + "sooo": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "better": { + "fine": 5.668, + "spam": 1.23 + }, + "wut": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "young": { + "fine": 2.668, + "spam": 1.23 + }, + "building": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "straight": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "wil": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "gtg": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "manney": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "days": { + "fine": 2.668, + "spam": 1.23 + }, + "till": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "de": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "drenstein": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "ktibow": { + "fine": 2.668, + "spam": 0.23 + }, + "closed": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "850k": { + "fine": 0.668, + "spam": 1.23 + }, + "aote": { + "fine": 2.668, + "spam": 1.23 + }, + "ult": { + "fine": 0.668, + "spam": 2.23 + }, + "wise": { + "fine": 1.6680000000000001, + "spam": 3.23 + }, + "worth": { + "fine": 1.6680000000000001, + "spam": 2.23 + }, + "mil": { + "fine": 1.6680000000000001, + "spam": 6.23 + }, + "top": { + "fine": 0.668, + "spam": 1.23 + }, + "guild": { + "fine": 0.668, + "spam": 2.23 + }, + "/g": { + "fine": 1.6680000000000001, + "spam": 2.23 + }, + "reqs": { + "fine": 0.668, + "spam": 1.23 + }, + "giving": { + "fine": 0.668, + "spam": 2.23 + }, + "away": { + "fine": 0.668, + "spam": 1.23 + }, + "cookeis": { + "fine": 0.668, + "spam": 1.23 + }, + "booster": { + "fine": 1.6680000000000001, + "spam": 2.23 + }, + "monke_qt": { + "fine": 0.668, + "spam": 1.23 + }, + "deal": { + "fine": 0.668, + "spam": 1.23 + }, + "overload": { + "fine": 0.668, + "spam": 1.23 + }, + "shadow": { + "fine": 1.6680000000000001, + "spam": 2.23 + }, + "assasin": { + "fine": 0.668, + "spam": 2.23 + }, + "mod": { + "fine": 5.668, + "spam": 1.23 + }, + "test": { + "fine": 0.668, + "spam": 1.23 + }, + "something": { + "fine": 0.668, + "spam": 1.23 + }, + "guys": { + "fine": 4.668, + "spam": 2.23 + }, + "submit": { + "fine": 0.668, + "spam": 1.23 + }, + "/ah": { + "fine": 0.668, + "spam": 2.23 + }, + "coder_ultimate": { + "fine": 0.668, + "spam": 1.23 + }, + "g1veaway": { + "fine": 0.668, + "spam": 2.23 + }, + "coinskyblock": { + "fine": 0.668, + "spam": 4.23 + }, + "c01ns": { + "fine": 0.668, + "spam": 5.23 + }, + "sbhcoins": { + "fine": 0.668, + "spam": 2.23 + }, + "visit": { + "fine": 2.668, + "spam": 14.23 + }, + "chance": { + "fine": 2.668, + "spam": 1.23 + }, + "doublr": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "damn": { + "fine": 4.668, + "spam": 0.23 + }, + "fps": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "t": { + "fine": 7.668, + "spam": 1.23 + }, + "lmao": { + "fine": 3.668, + "spam": 0.23 + }, + "crystal": { + "fine": 1.6680000000000001, + "spam": 2.23 + }, + "fragments": { + "fine": 0.668, + "spam": 1.23 + }, + "120k": { + "fine": 0.668, + "spam": 1.23 + }, + "each": { + "fine": 0.668, + "spam": 8.23 + }, + "dirt": { + "fine": 0.668, + "spam": 1.23 + }, + "farm": { + "fine": 1.6680000000000001, + "spam": 3.23 + }, + "lot": { + "fine": 1.6680000000000001, + "spam": 2.23 + }, + "please": { + "fine": 1.6680000000000001, + "spam": 4.23 + }, + "freee": { + "fine": 0.668, + "spam": 1.23 + }, + "armour": { + "fine": 0.668, + "spam": 1.23 + }, + "hypixelskyblock": { + "fine": 0.668, + "spam": 1.23 + }, + "fr33": { + "fine": 0.668, + "spam": 1.23 + }, + "du3pe": { + "fine": 0.668, + "spam": 1.23 + }, + "meth0d//": { + "fine": 0.668, + "spam": 1.23 + }, + "sdf": { + "fine": 0.668, + "spam": 1.23 + }, + "dfgdfasdgfsd": { + "fine": 0.668, + "spam": 1.23 + }, + "gfhj": { + "fine": 0.668, + "spam": 1.23 + }, + "gfasdhfghsad": { + "fine": 0.668, + "spam": 1.23 + }, + "sdfsdf": { + "fine": 0.668, + "spam": 1.23 + }, + "we": { + "fine": 3.668, + "spam": 2.23 + }, + "made": { + "fine": 3.668, + "spam": 1.23 + }, + "mcdupe": { + "fine": 0.668, + "spam": 3.23 + }, + "while": { + "fine": 3.668, + "spam": 1.23 + }, + "lasts": { + "fine": 0.668, + "spam": 1.23 + }, + "__": { + "fine": 0.668, + "spam": 1.23 + }, + "ksdfgfksdf": { + "fine": 0.668, + "spam": 1.23 + }, + "ds": { + "fine": 0.668, + "spam": 1.23 + }, + "fd": { + "fine": 0.668, + "spam": 1.23 + }, + "sqewrwtfgdsksfj": { + "fine": 0.668, + "spam": 1.23 + }, + "hjk": { + "fine": 0.668, + "spam": 1.23 + }, + "stupid": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "asf": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "lowkey": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "omg": { + "fine": 3.668, + "spam": 0.23 + }, + "come": { + "fine": 4.668, + "spam": 2.23 + }, + "hub": { + "fine": 2.668, + "spam": 0.23 + }, + "znqtix": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "ty": { + "fine": 12.668, + "spam": 0.23 + }, + "20mil": { + "fine": 0.668, + "spam": 1.23 + }, + "here": { + "fine": 7.668, + "spam": 5.23 + }, + "anywhere": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "everythinglogic": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "ai": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "might": { + "fine": 2.668, + "spam": 0.23 + }, + "as": { + "fine": 4.668, + "spam": 0.23 + }, + "well": { + "fine": 7.668, + "spam": 0.23 + }, + "lemmy": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "see": { + "fine": 5.668, + "spam": 0.23 + }, + "youdie": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "lvl": { + "fine": 3.668, + "spam": 1.23 + }, + "combat": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "being": { + "fine": 2.668, + "spam": 0.23 + }, + "duped": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "awwww": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "thru": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "hahaha": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "havo": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "moment": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "wdym": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "stared": { + "fine": 0.668, + "spam": 1.23 + }, + "anceint": { + "fine": 0.668, + "spam": 1.23 + }, + "necron": { + "fine": 0.668, + "spam": 1.23 + }, + "boots": { + "fine": 0.668, + "spam": 3.23 + }, + "negotate": { + "fine": 0.668, + "spam": 1.23 + }, + "price": { + "fine": 0.668, + "spam": 3.23 + }, + "900k": { + "fine": 0.668, + "spam": 2.23 + }, + "interested": { + "fine": 0.668, + "spam": 2.23 + }, + "place": { + "fine": 0.668, + "spam": 5.23 + }, + "poo": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "flipping": { + "fine": 2.668, + "spam": 0.23 + }, + "rich": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "enough": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "afford": { + "fine": 2.668, + "spam": 0.23 + }, + "livid": { + "fine": 1.6680000000000001, + "spam": 4.23 + }, + "dagger": { + "fine": 1.6680000000000001, + "spam": 3.23 + }, + "hide": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "those": { + "fine": 3.668, + "spam": 0.23 + }, + "spam": { + "fine": 2.668, + "spam": 0.23 + }, + "links": { + "fine": 1.6680000000000001, + "spam": 0.23 + }, + "idk": { + "fine": 4.668, + "spam": 0.23 + }, + "set": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "few": { + "fine": 1.6680000000000001, + "spam": 1.23 + }, + "ago": { + "fine": 1.6680000000000001, + "spam": 1.23