From 4bebbe60ffa01e8c0941c2ada4f7279e315a13a5 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 5 May 2024 11:59:26 +0100 Subject: [PATCH 1/8] Add Royal Pigeon Ability Cooldown --- .../features/itemabilities/abilitycooldown/ItemAbility.kt | 1 + .../itemabilities/abilitycooldown/ItemAbilityCooldown.kt | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt index 256beb0de4fd..9c612695dce1 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbility.kt @@ -48,6 +48,7 @@ enum class ItemAbility( VOODOO_DOLL_WILTED(3), FIRE_FURY_STAFF(20), SHADOW_FURY(15, "STARRED_SHADOW_FURY"), + ROYAL_PIGEON(5), // doesn't have a sound ENDER_BOW("Ender Warp", 5, "Ender Bow"), diff --git a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt index c48a28effc0d..9108962711f6 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/itemabilities/abilitycooldown/ItemAbilityCooldown.kt @@ -169,6 +169,10 @@ class ItemAbilityCooldown { event.soundName == "random.drink" && event.pitch.round(1) == 1.8f && event.volume == 1.0f -> { ItemAbility.HOLY_ICE.sound() } + // Royal Pigeon + event.soundName == "mob.bat.idle" && event.pitch == 0.4920635f && event.volume == 1.0f -> { + ItemAbility.ROYAL_PIGEON.sound() + } } } From 170a4f1b7a3f22398a0ad39cd6019b5c1623e646 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 5 May 2024 23:05:15 +0100 Subject: [PATCH 2/8] Add the ability to transfer party back to previous leader via command or clickable message. --- .../skyhanni/config/commands/Commands.kt | 1 + .../features/commands/CommandsConfig.java | 12 ++++++ .../at/hannibal2/skyhanni/data/PartyAPI.kt | 16 +++++++- .../features/commands/PartyCommands.kt | 40 +++++++++++++++++++ 4 files changed, 67 insertions(+), 2 deletions(-) diff --git a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt index faca8636b930..55afa8968549 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt +++ b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt @@ -534,6 +534,7 @@ object Commands { registerCommand("pt", "Transfer the party to another party member") { PartyCommands.transfer(it) } registerCommand("pp", "Promote a specific party member") { PartyCommands.promote(it) } registerCommand("pd", "Disbands the party") { PartyCommands.disband() } + registerCommand("rpt", "Transfer party to the previous leader") { PartyCommands.reverseTransfer() } } private fun commandHelp(args: Array) { diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/commands/CommandsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/commands/CommandsConfig.java index 45f41fdcf08e..45b759914195 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/commands/CommandsConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/commands/CommandsConfig.java @@ -42,4 +42,16 @@ public class CommandsConfig { @ConfigEditorBoolean @FeatureToggle public boolean viewRecipeLowerCase = true; + + @Expose + @ConfigOption(name = "Reverse Party Transfer", desc = "Adds §e/rpt §7to transfer a party back to its previous leader.") + @ConfigEditorBoolean + @FeatureToggle + public boolean reversePartyTransfer = true; + + @Expose + @ConfigOption(name = "Reverse Party Transfer Message", desc = "Allows transfer message to be clicked to transfer a party back to its previous leader if it has been transferred to you.") + @ConfigEditorBoolean + @FeatureToggle + public boolean reversePartyTransferMessage = false; } diff --git a/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt index 10739720a2e4..d068eba7589a 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt @@ -49,9 +49,9 @@ object PartyAPI { "others.transfer.leave", "The party was transferred to (?.*) because (?.*) left" ) - private val transferVoluntaryPattern by patternGroup.pattern( + val transferVoluntaryPattern by patternGroup.pattern( "others.transfer.voluntary", - "The party was transferred to (?.*) by .*" + "The party was transferred to (?.*) by (?.*)" ) private val disbandedPattern by patternGroup.pattern( "others.disband", @@ -81,6 +81,7 @@ object PartyAPI { val partyMembers = mutableListOf() var partyLeader: String? = null + var prevPartyLeader: String? = null fun listMembers() { val size = partyMembers.size @@ -144,14 +145,23 @@ object PartyAPI { otherLeftPattern.matchMatcher(message) { val name = group("name").cleanPlayerName() partyMembers.remove(name) + if (name == prevPartyLeader) { + prevPartyLeader = null + } } otherKickedPattern.matchMatcher(message) { val name = group("name").cleanPlayerName() partyMembers.remove(name) + if (name == prevPartyLeader) { + prevPartyLeader = null + } } otherOfflineKickedPattern.matchMatcher(message) { val name = group("name").cleanPlayerName() partyMembers.remove(name) + if (name == prevPartyLeader) { + prevPartyLeader = null + } } otherDisconnectedPattern.matchMatcher(message) { val name = group("name").cleanPlayerName() @@ -164,6 +174,7 @@ object PartyAPI { } transferVoluntaryPattern.matchMatcher(message.removeColor()) { partyLeader = group("newowner").cleanPlayerName() + prevPartyLeader = group("name").cleanPlayerName() } // party disbanded @@ -207,5 +218,6 @@ object PartyAPI { private fun partyLeft() { partyMembers.clear() partyLeader = null + prevPartyLeader = null } } diff --git a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt index b323bb73d48c..8c05b2747d3f 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt @@ -4,10 +4,20 @@ import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.data.FriendAPI import at.hannibal2.skyhanni.data.PartyAPI +import at.hannibal2.skyhanni.data.PartyAPI.transferVoluntaryPattern +import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.MessageSendToServerEvent import at.hannibal2.skyhanni.features.misc.limbo.LimboTimeTracker import at.hannibal2.skyhanni.utils.ChatUtils import at.hannibal2.skyhanni.utils.EntityUtils +import at.hannibal2.skyhanni.utils.HypixelCommands +import at.hannibal2.skyhanni.utils.LorenzUtils +import at.hannibal2.skyhanni.utils.StringUtils.cleanPlayerName +import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.StringUtils.removeColor +import at.hannibal2.skyhanni.utils.StringUtils.removeResets +import at.hannibal2.skyhanni.utils.StringUtils.trimWhiteSpace +import net.minecraftforge.fml.common.eventhandler.EventPriority import net.minecraftforge.fml.common.eventhandler.SubscribeEvent object PartyCommands { @@ -63,6 +73,14 @@ object PartyCommands { ChatUtils.sendCommandToServer("party promote ${args[0]}") } + fun reverseTransfer() { + if (!config.reversePartyTransfer) return + if (PartyAPI.partyMembers.isEmpty()) return + PartyAPI.prevPartyLeader?.let { + HypixelCommands.partyTransfer(it) + } + } + @SubscribeEvent fun onMessageSendToServer(event: MessageSendToServerEvent) { if (!config.partyKickReason) { @@ -112,6 +130,28 @@ object PartyCommands { event.move(31, "commands", "misc.commands") } + + @SubscribeEvent(priority = EventPriority.LOW) + fun onChat(event: LorenzChatEvent) { + if (!config.reversePartyTransferMessage) return + val message = event.message.trimWhiteSpace().removeResets() + transferVoluntaryPattern.matchMatcher(message.removeColor()) { + val newLeader = group("newowner").cleanPlayerName().removeColor() + if (newLeader != LorenzUtils.getPlayerName()) return + + PartyAPI.prevPartyLeader?.let { + event.blockedReason = "replacing" + + ChatUtils.clickableChat( + event.message, + onClick = { + HypixelCommands.partyTransfer(it) + }, + prefix = false + ) + } + } + } } private val otherPartyCommands = listOf( From 4aae29cb39fa39670b73e6f08487e581165adeb8 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 6 May 2024 09:32:32 +0100 Subject: [PATCH 3/8] Cleanup message parsing for clickable message. --- .../skyhanni/features/commands/PartyCommands.kt | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt index 8c05b2747d3f..9b57c8694ddc 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt @@ -4,6 +4,7 @@ import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator import at.hannibal2.skyhanni.data.FriendAPI import at.hannibal2.skyhanni.data.PartyAPI +import at.hannibal2.skyhanni.data.PartyAPI.partyLeader import at.hannibal2.skyhanni.data.PartyAPI.transferVoluntaryPattern import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.MessageSendToServerEvent @@ -12,10 +13,8 @@ import at.hannibal2.skyhanni.utils.ChatUtils import at.hannibal2.skyhanni.utils.EntityUtils import at.hannibal2.skyhanni.utils.HypixelCommands import at.hannibal2.skyhanni.utils.LorenzUtils -import at.hannibal2.skyhanni.utils.StringUtils.cleanPlayerName -import at.hannibal2.skyhanni.utils.StringUtils.matchMatcher +import at.hannibal2.skyhanni.utils.StringUtils.matches import at.hannibal2.skyhanni.utils.StringUtils.removeColor -import at.hannibal2.skyhanni.utils.StringUtils.removeResets import at.hannibal2.skyhanni.utils.StringUtils.trimWhiteSpace import net.minecraftforge.fml.common.eventhandler.EventPriority import net.minecraftforge.fml.common.eventhandler.SubscribeEvent @@ -134,10 +133,8 @@ object PartyCommands { @SubscribeEvent(priority = EventPriority.LOW) fun onChat(event: LorenzChatEvent) { if (!config.reversePartyTransferMessage) return - val message = event.message.trimWhiteSpace().removeResets() - transferVoluntaryPattern.matchMatcher(message.removeColor()) { - val newLeader = group("newowner").cleanPlayerName().removeColor() - if (newLeader != LorenzUtils.getPlayerName()) return + if (transferVoluntaryPattern.matches(event.message.trimWhiteSpace().removeColor())) { + if (partyLeader != LorenzUtils.getPlayerName()) return PartyAPI.prevPartyLeader?.let { event.blockedReason = "replacing" From 6b15545ac3e90948e2eb5eaf955efc850ab5e485 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 6 May 2024 10:39:00 +0100 Subject: [PATCH 4/8] Adds the option for a configurable party message after reverse party transferring. --- .../features/commands/CommandsConfig.java | 17 ++++-------- .../commands/ReversePartyTransferConfig.java | 27 +++++++++++++++++++ .../features/commands/PartyCommands.kt | 10 +++++-- .../skyhanni/utils/HypixelCommands.kt | 4 +++ 4 files changed, 44 insertions(+), 14 deletions(-) create mode 100644 src/main/java/at/hannibal2/skyhanni/config/features/commands/ReversePartyTransferConfig.java diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/commands/CommandsConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/commands/CommandsConfig.java index 45b759914195..75ae06640e63 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/features/commands/CommandsConfig.java +++ b/src/main/java/at/hannibal2/skyhanni/config/features/commands/CommandsConfig.java @@ -18,6 +18,11 @@ public class CommandsConfig { @Expose public BetterWikiCommandConfig betterWiki = new BetterWikiCommandConfig(); + @ConfigOption(name = "Reverse Party Transfer", desc = "") + @Accordion + @Expose + public ReversePartyTransferConfig reversePT = new ReversePartyTransferConfig(); + @ConfigOption(name = "Party Commands", desc = "Shortens party commands and allows tab-completing for them. " + "\n§eCommands: /pt /pp /pko /pk /pd §7SkyBlock command §e/pt §7to check the play time still works.") @Expose @@ -42,16 +47,4 @@ public class CommandsConfig { @ConfigEditorBoolean @FeatureToggle public boolean viewRecipeLowerCase = true; - - @Expose - @ConfigOption(name = "Reverse Party Transfer", desc = "Adds §e/rpt §7to transfer a party back to its previous leader.") - @ConfigEditorBoolean - @FeatureToggle - public boolean reversePartyTransfer = true; - - @Expose - @ConfigOption(name = "Reverse Party Transfer Message", desc = "Allows transfer message to be clicked to transfer a party back to its previous leader if it has been transferred to you.") - @ConfigEditorBoolean - @FeatureToggle - public boolean reversePartyTransferMessage = false; } diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/commands/ReversePartyTransferConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/commands/ReversePartyTransferConfig.java new file mode 100644 index 000000000000..555733667bd9 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/config/features/commands/ReversePartyTransferConfig.java @@ -0,0 +1,27 @@ +package at.hannibal2.skyhanni.config.features.commands; + +import at.hannibal2.skyhanni.config.FeatureToggle; +import com.google.gson.annotations.Expose; +import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorBoolean; +import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorText; +import io.github.notenoughupdates.moulconfig.annotations.ConfigOption; + +public class ReversePartyTransferConfig { + + @Expose + @ConfigOption(name = "Command", desc = "Adds §e/rpt §7to transfer a party back to its previous leader.") + @ConfigEditorBoolean + @FeatureToggle + public boolean command = true; + + @Expose + @ConfigOption(name = "Clickable Message", desc = "Allows transfer message to be clicked to transfer a party back to its previous leader if it has been transferred to you.") + @ConfigEditorBoolean + @FeatureToggle + public boolean clickable = false; + + @Expose + @ConfigOption(name = "Response Message", desc = "Sends a custom message to party chat when the party is reverse transferred.") + @ConfigEditorText + public String message = "Nuh Uh"; +} diff --git a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt index 9b57c8694ddc..a6d55fd18790 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt @@ -73,10 +73,13 @@ object PartyCommands { } fun reverseTransfer() { - if (!config.reversePartyTransfer) return + if (!config.reversePT.command) return if (PartyAPI.partyMembers.isEmpty()) return PartyAPI.prevPartyLeader?.let { HypixelCommands.partyTransfer(it) + if (config.reversePT.message.isNotBlank()) { + HypixelCommands.partyChat(config.reversePT.message) + } } } @@ -132,7 +135,7 @@ object PartyCommands { @SubscribeEvent(priority = EventPriority.LOW) fun onChat(event: LorenzChatEvent) { - if (!config.reversePartyTransferMessage) return + if (!config.reversePT.clickable) return if (transferVoluntaryPattern.matches(event.message.trimWhiteSpace().removeColor())) { if (partyLeader != LorenzUtils.getPlayerName()) return @@ -143,6 +146,9 @@ object PartyCommands { event.message, onClick = { HypixelCommands.partyTransfer(it) + if (config.reversePT.message.isNotBlank()) { + HypixelCommands.partyChat(config.reversePT.message) + } }, prefix = false ) diff --git a/src/main/java/at/hannibal2/skyhanni/utils/HypixelCommands.kt b/src/main/java/at/hannibal2/skyhanni/utils/HypixelCommands.kt index c09c773954de..e765f4198093 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/HypixelCommands.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/HypixelCommands.kt @@ -62,6 +62,10 @@ object HypixelCommands { send("ac $message") } + fun partyChat(message: String) { + send("pc $message") + } + private fun send(command: String) { @Suppress("DEPRECATION") // TODO rename function From 6048e4c9acd72a2a97e068cccc12582ddb10d095 Mon Sep 17 00:00:00 2001 From: Jordyrat Date: Sun, 26 May 2024 14:40:55 +0100 Subject: [PATCH 5/8] Update from deprecated .matches --- .../at/hannibal2/skyhanni/features/commands/PartyCommands.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt index e8f267c3f492..1bae22ccbb33 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt @@ -9,10 +9,11 @@ import at.hannibal2.skyhanni.data.PartyAPI.transferVoluntaryPattern import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.MessageSendToServerEvent import at.hannibal2.skyhanni.features.misc.limbo.LimboTimeTracker +import at.hannibal2.skyhanni.utils.ChatUtils import at.hannibal2.skyhanni.utils.EntityUtils import at.hannibal2.skyhanni.utils.HypixelCommands import at.hannibal2.skyhanni.utils.LorenzUtils -import at.hannibal2.skyhanni.utils.StringUtils.matches +import at.hannibal2.skyhanni.utils.RegexUtils.matches import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.StringUtils.trimWhiteSpace import net.minecraftforge.fml.common.eventhandler.EventPriority From 96064b91c928f6383a5cff934980fff36981555a Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Sat, 31 Aug 2024 22:40:39 +0200 Subject: [PATCH 6/8] code cleanup --- .../skyhanni/config/commands/Commands.kt | 2 +- .../at/hannibal2/skyhanni/data/PartyAPI.kt | 22 +++++---- .../features/commands/PartyCommands.kt | 45 +++++++++---------- 3 files changed, 33 insertions(+), 36 deletions(-) diff --git a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt index bba0c823175b..f7101cd4b141 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt +++ b/src/main/java/at/hannibal2/skyhanni/config/commands/Commands.kt @@ -612,7 +612,7 @@ object Commands { registerCommand("pt", "Transfer the party to another party member") { PartyCommands.transfer(it) } registerCommand("pp", "Promote a specific party member") { PartyCommands.promote(it) } registerCommand("pd", "Disbands the party") { PartyCommands.disband() } - registerCommand("rpt", "Transfer party to the previous leader") { PartyCommands.reverseTransfer() } + registerCommand("rpt", "Reverse transfer party to the previous leader") { PartyCommands.reverseTransfer() } } @JvmStatic diff --git a/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt index 43187a0c16a0..3e284b66d56e 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt @@ -146,24 +146,15 @@ object PartyAPI { // one member got removed otherLeftPattern.matchMatcher(message) { val name = group("name").cleanPlayerName() - partyMembers.remove(name) - if (name == prevPartyLeader) { - prevPartyLeader = null - } + removeWithLeader(name) } otherKickedPattern.matchMatcher(message) { val name = group("name").cleanPlayerName() - partyMembers.remove(name) - if (name == prevPartyLeader) { - prevPartyLeader = null - } + removeWithLeader(name) } otherOfflineKickedPattern.matchMatcher(message) { val name = group("name").cleanPlayerName() - partyMembers.remove(name) - if (name == prevPartyLeader) { - prevPartyLeader = null - } + removeWithLeader(name) } otherDisconnectedPattern.matchMatcher(message) { val name = group("name").cleanPlayerName() @@ -212,6 +203,13 @@ object PartyAPI { } } + private fun removeWithLeader(name: String) { + partyMembers.remove(name) + if (name == prevPartyLeader) { + prevPartyLeader = null + } + } + private fun addPlayer(playerName: String) { if (partyMembers.contains(playerName)) return if (playerName == LorenzUtils.getPlayerName()) return diff --git a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt index 43046bed0e1e..ac21fb5e8a58 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt @@ -79,10 +79,11 @@ object PartyCommands { fun reverseTransfer() { if (!config.reversePT.command) return if (PartyAPI.partyMembers.isEmpty()) return - PartyAPI.prevPartyLeader?.let { - HypixelCommands.partyTransfer(it) - if (config.reversePT.message.isNotBlank()) { - HypixelCommands.partyChat(config.reversePT.message) + val prevPartyLeader = PartyAPI.prevPartyLeader ?: return + HypixelCommands.partyTransfer(prevPartyLeader) + config.reversePT.message?.let { + if (it.isNotBlank()) { + HypixelCommands.partyChat(it) } } } @@ -140,24 +141,22 @@ object PartyCommands { @SubscribeEvent(priority = EventPriority.LOW) fun onChat(event: LorenzChatEvent) { if (!config.reversePT.clickable) return - if (transferVoluntaryPattern.matches(event.message.trimWhiteSpace().removeColor())) { - if (partyLeader != LorenzUtils.getPlayerName()) return - - PartyAPI.prevPartyLeader?.let { - event.blockedReason = "replacing" - - ChatUtils.clickableChat( - event.message, - onClick = { - HypixelCommands.partyTransfer(it) - if (config.reversePT.message.isNotBlank()) { - HypixelCommands.partyChat(config.reversePT.message) - } - }, - prefix = false - ) - } - } + if (!transferVoluntaryPattern.matches(event.message.trimWhiteSpace().removeColor())) return + if (partyLeader != LorenzUtils.getPlayerName()) return + + val prevPartyLeader = PartyAPI.prevPartyLeader ?: return + event.blockedReason = "replacing" + + ChatUtils.clickableChat( + event.message, + onClick = { + HypixelCommands.partyTransfer(prevPartyLeader) + if (config.reversePT.message.isNotBlank()) { + HypixelCommands.partyChat(config.reversePT.message) + } + }, + prefix = false, + ) } } @@ -169,5 +168,5 @@ private val otherPartyCommands = listOf( "Mute", "Private", "Warp", - "Settings" + "Settings", ) From 03506f3063e27949297d039eced30f5108d8ce09 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Sat, 31 Aug 2024 22:44:04 +0200 Subject: [PATCH 7/8] code cleanup --- .../skyhanni/features/commands/PartyCommands.kt | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt index ac21fb5e8a58..e7b3333dd7eb 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/commands/PartyCommands.kt @@ -80,6 +80,11 @@ object PartyCommands { if (!config.reversePT.command) return if (PartyAPI.partyMembers.isEmpty()) return val prevPartyLeader = PartyAPI.prevPartyLeader ?: return + + autoPartyTransfer(prevPartyLeader) + } + + private fun autoPartyTransfer(prevPartyLeader: String) { HypixelCommands.partyTransfer(prevPartyLeader) config.reversePT.message?.let { if (it.isNotBlank()) { @@ -93,9 +98,7 @@ object PartyCommands { if (!config.partyKickReason) { return } - if (!event.message.startsWith("/party kick ", ignoreCase = true) - && !event.message.startsWith("/p kick ", ignoreCase = true) - ) { + if (!event.message.startsWith("/party kick ", ignoreCase = true) && !event.message.startsWith("/p kick ", ignoreCase = true)) { return } val args = event.message.substringAfter("kick").trim().split(" ") @@ -149,12 +152,7 @@ object PartyCommands { ChatUtils.clickableChat( event.message, - onClick = { - HypixelCommands.partyTransfer(prevPartyLeader) - if (config.reversePT.message.isNotBlank()) { - HypixelCommands.partyChat(config.reversePT.message) - } - }, + onClick = { autoPartyTransfer(prevPartyLeader) }, prefix = false, ) } From f5adfd33141c60c91435e537b3bf5d17ffe5a78c Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Sat, 31 Aug 2024 22:49:31 +0200 Subject: [PATCH 8/8] formatting --- .../at/hannibal2/skyhanni/data/PartyAPI.kt | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt index 3e284b66d56e..2ee30c27e55a 100644 --- a/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt +++ b/src/main/java/at/hannibal2/skyhanni/data/PartyAPI.kt @@ -21,63 +21,63 @@ object PartyAPI { private val patternGroup = RepoPattern.group("data.party") private val youJoinedPartyPattern by patternGroup.pattern( "you.joined", - "§eYou have joined (?.*)'s? §eparty!" + "§eYou have joined (?.*)'s? §eparty!", ) private val othersJoinedPartyPattern by patternGroup.pattern( "others.joined", - "(?.*) §ejoined the party\\." + "(?.*) §ejoined the party\\.", ) private val othersInThePartyPattern by patternGroup.pattern( "others.inparty", - "§eYou'll be partying with: (?.*)" + "§eYou'll be partying with: (?.*)", ) private val otherLeftPattern by patternGroup.pattern( "others.left", - "(?.*) §ehas left the party\\." + "(?.*) §ehas left the party\\.", ) private val otherKickedPattern by patternGroup.pattern( "others.kicked", - "(?.*) §ehas been removed from the party\\." + "(?.*) §ehas been removed from the party\\.", ) private val otherOfflineKickedPattern by patternGroup.pattern( "others.offline", - "§eKicked (?.*) because they were offline\\." + "§eKicked (?.*) because they were offline\\.", ) private val otherDisconnectedPattern by patternGroup.pattern( "others.disconnect", - "(?.*) §ewas removed from your party because they disconnected\\." + "(?.*) §ewas removed from your party because they disconnected\\.", ) private val transferOnLeavePattern by patternGroup.pattern( "others.transfer.leave", - "The party was transferred to (?.*) because (?.*) left" + "The party was transferred to (?.*) because (?.*) left", ) val transferVoluntaryPattern by patternGroup.pattern( "others.transfer.voluntary", - "The party was transferred to (?.*) by (?.*)" + "The party was transferred to (?.*) by (?.*)", ) private val disbandedPattern by patternGroup.pattern( "others.disband", - ".* §ehas disbanded the party!" + ".* §ehas disbanded the party!", ) private val kickedPattern by patternGroup.pattern( "you.kicked", - "§eYou have been kicked from the party by .* §e" + "§eYou have been kicked from the party by .* §e", ) private val partyMembersStartPattern by patternGroup.pattern( "members.start", - "§6Party Members \\(\\d+\\)" + "§6Party Members \\(\\d+\\)", ) private val partyMemberListPattern by patternGroup.pattern( "members.list.withkind", - "Party (?Leader|Moderators|Members): (?.*)" + "Party (?Leader|Moderators|Members): (?.*)", ) private val kuudraFinderJoinPattern by patternGroup.pattern( "kuudrafinder.join", - "§dParty Finder §f> (?.*?) §ejoined the group! \\(§[a-fA-F0-9]+Combat Level \\d+§e\\)" + "§dParty Finder §f> (?.*?) §ejoined the group! \\(§[a-fA-F0-9]+Combat Level \\d+§e\\)", ) private val dungeonFinderJoinPattern by patternGroup.pattern( "dungeonfinder.join", - "§dParty Finder §f> (?.*?) §ejoined the dungeon group! \\(§[a-fA-F0-9].* Level \\d+§[a-fA-F0-9]\\)" + "§dParty Finder §f> (?.*?) §ejoined the dungeon group! \\(§[a-fA-F0-9].* Level \\d+§[a-fA-F0-9]\\)", ) val partyMembers = mutableListOf()