From 7f012547faa3dd8d8ac26b79dcf724a9a057675e Mon Sep 17 00:00:00 2001 From: Auxilor Date: Fri, 18 Mar 2022 12:23:37 +0000 Subject: [PATCH] Fixed open messages/broadcasts/etc being sent on rerolls --- .../com/willfp/ecocrates/crate/Crate.kt | 31 ++++++++++++------- .../willfp/ecocrates/event/CrateOpenEvent.kt | 3 +- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecocrates/crate/Crate.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecocrates/crate/Crate.kt index aed3aa3..b0de4c8 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecocrates/crate/Crate.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecocrates/crate/Crate.kt @@ -321,7 +321,12 @@ class Crate( } } - fun open(player: Player, location: Location? = null, physicalKey: Boolean = false, isReroll: Boolean = false): Boolean { + fun open( + player: Player, + location: Location? = null, + physicalKey: Boolean = false, + isReroll: Boolean = false + ): Boolean { /* Prevent server crashes */ if (hasRanOutOfRewardsAndNotify(player)) { return false @@ -333,22 +338,24 @@ class Crate( val loc = location ?: player.eyeLocation - val event = CrateOpenEvent(player, this, physicalKey, getRandomReward(player)) + val event = CrateOpenEvent(player, this, physicalKey, getRandomReward(player), isReroll) Bukkit.getPluginManager().callEvent(event) - openSound.play(loc) + if (!isReroll) { + openSound.play(loc) - openCommands.map { it.replace("%player%", player.name) } - .forEach { Bukkit.dispatchCommand(Bukkit.getConsoleSender(), it) } + openCommands.map { it.replace("%player%", player.name) } + .forEach { Bukkit.dispatchCommand(Bukkit.getConsoleSender(), it) } - openMessages.map { it.replace("%reward%", event.reward.displayName) } - .map { plugin.langYml.prefix + StringUtils.format(it, player) } - .forEach { player.sendMessage(it) } + openMessages.map { it.replace("%reward%", event.reward.displayName) } + .map { plugin.langYml.prefix + StringUtils.format(it, player) } + .forEach { player.sendMessage(it) } - openBroadcasts.map { it.replace("%reward%", event.reward.displayName) } - .map { it.replace("%player%", player.savedDisplayName) } - .map { plugin.langYml.prefix + StringUtils.format(it, player) } - .forEach { Bukkit.broadcastMessage(it) } + openBroadcasts.map { it.replace("%reward%", event.reward.displayName) } + .map { it.replace("%player%", player.savedDisplayName) } + .map { plugin.langYml.prefix + StringUtils.format(it, player) } + .forEach { Bukkit.broadcastMessage(it) } + } val roll = makeRoll(player, loc, event.reward, isReroll = isReroll) var tick = 0 diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecocrates/event/CrateOpenEvent.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecocrates/event/CrateOpenEvent.kt index 690c8cf..92dd374 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecocrates/event/CrateOpenEvent.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecocrates/event/CrateOpenEvent.kt @@ -10,7 +10,8 @@ class CrateOpenEvent( player: Player, val crate: Crate, val isPhysicalKey: Boolean, - var reward: Reward + var reward: Reward, + val isReroll: Boolean ) : PlayerEvent(player) { override fun getHandlers(): HandlerList { return Companion.handlers