From 9d696771b9c608c3afee2811dbebb1a3869b9f8f Mon Sep 17 00:00:00 2001 From: Thunderblade73 <85900443+Thunderblade73@users.noreply.github.com> Date: Sun, 25 Feb 2024 08:29:12 +0100 Subject: Fixed /gfs not working with spaces in item name. #1045 --- .../tabcomplete/GetFromSacksTabComplete.kt | 29 +++++++++++----------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/features') diff --git a/src/main/java/at/hannibal2/skyhanni/features/commands/tabcomplete/GetFromSacksTabComplete.kt b/src/main/java/at/hannibal2/skyhanni/features/commands/tabcomplete/GetFromSacksTabComplete.kt index a777c76b4..424d72198 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/commands/tabcomplete/GetFromSacksTabComplete.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/commands/tabcomplete/GetFromSacksTabComplete.kt @@ -4,11 +4,9 @@ import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.api.GetFromSackAPI import at.hannibal2.skyhanni.api.GetFromSackAPI.commands import at.hannibal2.skyhanni.events.MessageSendToServerEvent -import at.hannibal2.skyhanni.utils.ChatUtils -import at.hannibal2.skyhanni.utils.ChatUtils.isCommand +import at.hannibal2.skyhanni.utils.ChatUtils.eventWithNewMessage +import at.hannibal2.skyhanni.utils.ChatUtils.senderIsSkyhanni import at.hannibal2.skyhanni.utils.LorenzUtils -import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName -import net.minecraftforge.fml.common.eventhandler.SubscribeEvent object GetFromSacksTabComplete { @@ -18,21 +16,22 @@ object GetFromSacksTabComplete { if (!isEnabled()) return null if (command !in commands) return null - return GetFromSackAPI.sackList.map { it.asString() } + return GetFromSackAPI.sackListNames.map { it.replace(" ", "_") } } - @SubscribeEvent - fun onMessageSendToServer(event: MessageSendToServerEvent) { - if (!isEnabled()) return + //No subscribe since it needs to be called from the GetFromSackAPI + fun handleUnderlineReplace(event: MessageSendToServerEvent): MessageSendToServerEvent { + if (!isEnabled()) return event - if (!event.isCommand(GetFromSackAPI.commandsWithSlash)) return + if (event.senderIsSkyhanni()) return event - val rawName = event.splitMessage[1] - val realName = rawName.asInternalName() - if (realName.asString() == rawName) return - if (realName !in GetFromSackAPI.sackList) return - event.isCanceled = true - ChatUtils.sendMessageToServer(event.message.replace(rawName, realName.asString())) + if (event.splitMessage.isEmpty()) return event + + val rawName = event.splitMessage[1].uppercase() + val realName = rawName.replace("_", " ") + if (realName == rawName) return event + if (realName !in GetFromSackAPI.sackListNames) return event + return event.eventWithNewMessage(event.message.replace(rawName, realName)) } fun isEnabled() = LorenzUtils.inSkyBlock && config.gfsSack -- cgit