diff --git a/src/main/kotlin/de/moritzruth/spigot_ttt/game/players/TTTPlayer.kt b/src/main/kotlin/de/moritzruth/spigot_ttt/game/players/TTTPlayer.kt index e1815ed..ef6312e 100644 --- a/src/main/kotlin/de/moritzruth/spigot_ttt/game/players/TTTPlayer.kt +++ b/src/main/kotlin/de/moritzruth/spigot_ttt/game/players/TTTPlayer.kt @@ -28,7 +28,9 @@ class TTTPlayer(player: Player, role: Role) { var role by Delegates.observable(role) { _, _, _ -> scoreboard.updateRole() } val roleHistory = mutableListOf() - var itemInHand by Delegates.observable(null) { _, oldItem, newItem -> onItemInHandChanged(oldItem, newItem) } + var itemInHand by Delegates.observable(null) { _, oldItem, newItem -> + if (oldItem !== newItem) onItemInHandChanged(oldItem, newItem) + } var credits by Delegates.observable(10) { _, _, _ -> scoreboard.updateCredits() } var invisible by Delegates.observable(false) { _, _, value -> if (value) { @@ -65,6 +67,9 @@ class TTTPlayer(player: Player, role: Role) { } private fun onItemInHandChanged(oldItem: TTTItem?, newItem: TTTItem?) { + println(oldItem) + println(newItem) + if (oldItem !== null && oldItem is Selectable) { oldItem.onDeselect(this) } diff --git a/src/main/kotlin/de/moritzruth/spigot_ttt/items/impl/CloakingDevice.kt b/src/main/kotlin/de/moritzruth/spigot_ttt/items/impl/CloakingDevice.kt index 99d6fec..982a74d 100644 --- a/src/main/kotlin/de/moritzruth/spigot_ttt/items/impl/CloakingDevice.kt +++ b/src/main/kotlin/de/moritzruth/spigot_ttt/items/impl/CloakingDevice.kt @@ -37,8 +37,7 @@ object CloakingDevice: TTTItem, val isc = InversedStateContainer(State::class) override fun onSelect(tttPlayer: TTTPlayer) {} - override fun onDeselect(tttPlayer: TTTPlayer) = - setEnabled(tttPlayer, false) + override fun onDeselect(tttPlayer: TTTPlayer) = setEnabled(tttPlayer, false) fun setEnabled(tttPlayer: TTTPlayer, value: Boolean?) { val state = isc.getOrCreate(tttPlayer)