diff options
Diffstat (limited to 'src/main/kotlin')
-rw-r--r-- | src/main/kotlin/dulkirmod/DulkirMod.kt | 4 | ||||
-rw-r--r-- | src/main/kotlin/dulkirmod/command/JoinDungeonCommand.kt | 3 | ||||
-rw-r--r-- | src/main/kotlin/dulkirmod/config/Config.kt | 53 | ||||
-rw-r--r-- | src/main/kotlin/dulkirmod/events/ChatEvent.kt | 23 |
4 files changed, 73 insertions, 10 deletions
diff --git a/src/main/kotlin/dulkirmod/DulkirMod.kt b/src/main/kotlin/dulkirmod/DulkirMod.kt index d0ea1e5..265d121 100644 --- a/src/main/kotlin/dulkirmod/DulkirMod.kt +++ b/src/main/kotlin/dulkirmod/DulkirMod.kt @@ -11,14 +11,12 @@ import net.minecraft.client.Minecraft import net.minecraft.client.gui.GuiScreen import net.minecraft.client.settings.KeyBinding import net.minecraftforge.client.ClientCommandHandler -import net.minecraftforge.client.event.ClientChatReceivedEvent import net.minecraftforge.common.MinecraftForge import net.minecraftforge.fml.client.registry.ClientRegistry import net.minecraftforge.fml.common.Mod import net.minecraftforge.fml.common.event.FMLInitializationEvent import net.minecraftforge.fml.common.event.FMLLoadCompleteEvent import net.minecraftforge.fml.common.event.FMLPreInitializationEvent -import net.minecraftforge.fml.common.eventhandler.EventPriority import net.minecraftforge.fml.common.eventhandler.SubscribeEvent import net.minecraftforge.fml.common.gameevent.InputEvent.KeyInputEvent import net.minecraftforge.fml.common.gameevent.TickEvent @@ -84,7 +82,7 @@ class DulkirMod { companion object { const val MOD_ID = "dulkirmod" const val MOD_NAME = "Dulkir Mod" - const val MOD_VERSION = "1.0.3" + const val MOD_VERSION = "1.0.4" const val CHAT_PREFIX = "<DulkirMod>" val mc: Minecraft = Minecraft.getMinecraft() diff --git a/src/main/kotlin/dulkirmod/command/JoinDungeonCommand.kt b/src/main/kotlin/dulkirmod/command/JoinDungeonCommand.kt index 3e5405a..46506a2 100644 --- a/src/main/kotlin/dulkirmod/command/JoinDungeonCommand.kt +++ b/src/main/kotlin/dulkirmod/command/JoinDungeonCommand.kt @@ -2,7 +2,6 @@ package dulkirmod.command import dulkirmod.DulkirMod.Companion.mc import dulkirmod.config.Config -import net.minecraft.client.Minecraft import net.minecraft.command.CommandException import net.minecraft.command.ICommandSender import net.minecraft.util.ChatComponentText @@ -12,10 +11,8 @@ class JoinDungeonCommand : ClientCommandBase("joindungeon") { @Throws(CommandException::class) override fun processCommand(sender: ICommandSender, args: Array<String>) { var arguments = args.contentToString().replace("[", "").replace("]", "").replace(",","") - println(arguments) var type = "" var num = "" - println(args[0]) if (args[0] == "master_catacombs") { type = "M" } diff --git a/src/main/kotlin/dulkirmod/config/Config.kt b/src/main/kotlin/dulkirmod/config/Config.kt index 1a50b88..d17ef47 100644 --- a/src/main/kotlin/dulkirmod/config/Config.kt +++ b/src/main/kotlin/dulkirmod/config/Config.kt @@ -1,16 +1,13 @@ package dulkirmod.config import dulkirmod.DulkirMod +import dulkirmod.utils.Utils import gg.essential.vigilance.Vigilant import gg.essential.vigilance.data.Category import gg.essential.vigilance.data.Property import gg.essential.vigilance.data.PropertyType import gg.essential.vigilance.data.SortingBehavior -import dulkirmod.DulkirMod.Companion.display -import dulkirmod.utils.Utils -import java.awt.Color import java.io.File -import java.util.function.Consumer object Config : Vigilant(File("./config/dulkirmod/config.toml"), "DulkirMod", sortingBehavior = ConfigSorting) { @@ -242,6 +239,50 @@ object Config : Vigilant(File("./config/dulkirmod/config.toml"), "DulkirMod", so ) var noReverse3rdPerson = false + @Property( + type = PropertyType.SWITCH, + name = "Bridge Bot Formatter", + description = "Global Toggle", + category = "Bridge" + ) + var bridgeBot = false + + @Property( + type = PropertyType.TEXT, + name = "Bridge Bot Name", + description = "Not case-sensitive", + category = "Bridge", + placeholder = "Bweefing", + protectedText = false + ) + var botName: String = "Bweefing" + + @Property( + type = PropertyType.SELECTOR, + name = "Bridge Chatter Name Color", + description = "Pick how the player name looks.", + category = "Bridge", + options = ["§0Black", + "§1Dark Blue", + "§2Dark Green", + "§3Dark Aqua", + "§4Dark Red", + "§5Dark Purple", + "§6Gold", + "§7Gray", + "§8Dark Gray", + "§9Blue", + "§aGreen", + "§bAqua", + "§cRed", + "§dLight Purple", + "§eYellow", + "§fWhite", + "§zSBA Chroma" + ] + ) + var bridgeColor = 6 + fun init() { initialize() @@ -251,6 +292,10 @@ object Config : Vigilant(File("./config/dulkirmod/config.toml"), "DulkirMod", so "Custom Animations", "All settings that are related to custom animations. Mostly help from Aton." ) + setCategoryDescription( + "Bridge", + "Expected format: (bridge bot user) > (sent message) - without any parenthesis." + ) } private object ConfigSorting : SortingBehavior() { override fun getCategoryComparator(): Comparator<in Category> = Comparator { o1, o2 -> diff --git a/src/main/kotlin/dulkirmod/events/ChatEvent.kt b/src/main/kotlin/dulkirmod/events/ChatEvent.kt index de180fa..f1a4bef 100644 --- a/src/main/kotlin/dulkirmod/events/ChatEvent.kt +++ b/src/main/kotlin/dulkirmod/events/ChatEvent.kt @@ -1,21 +1,44 @@ package dulkirmod.events import dulkirmod.DulkirMod +import dulkirmod.config.Config import dulkirmod.utils.Utils.stripColorCodes +import net.minecraft.util.ChatComponentText +import net.minecraft.util.EnumChatFormatting import net.minecraftforge.client.event.ClientChatReceivedEvent import net.minecraftforge.fml.common.eventhandler.EventPriority import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class ChatEvent { + private val guildFormat = "^(§2Guild|§3Officer) > (?:\\S+ )?([\\w§]{3,18})(?: §[a-z]\\[[A-Z]+])?§f: (\\w+) > .+".toRegex() @SubscribeEvent(receiveCanceled = true, priority = EventPriority.LOW) fun onChat(event: ClientChatReceivedEvent) { if (event.type == 2.toByte()) { return } + + // THROTTLE NOTIFIER val unformatted = stripColorCodes(event.message.unformattedText) if (unformatted == "This menu has been throttled! Please slow down..." && DulkirMod.config.throttleNotifier) { event.isCanceled = true; DulkirMod.mc.thePlayer.sendChatMessage("/pc " + DulkirMod.config.customMessage) } + + // BRIDGE BOT STUFF - CLICKABLE LINKS! + val message = event.message.unformattedText + if (guildFormat matches message && Config.bridgeBot) { + val matchResult = guildFormat.find(message) + val (prefix, name, playerName) = matchResult!!.destructured + if (stripColorCodes(name.lowercase()) == Config.botName.lowercase()) { + val newPrefix = if (prefix == "§2Guild") "§2Bridge" else "§3Bridge" + val color = if (Config.bridgeColor == 16) "§z" else EnumChatFormatting.values()[Config.bridgeColor] + event.message.siblings[0] = ChatComponentText( + "$newPrefix > $color$playerName§f: " + ) + event.message.siblings[1] = ChatComponentText( + event.message.siblings[1].unformattedText.replace("$playerName > ", "") + ).setChatStyle(event.message.siblings[1].chatStyle.createShallowCopy()) + } + } } }
\ No newline at end of file |