diff --git a/src/main/kotlin/club/mcscrims/speedhg/game/GameManager.kt b/src/main/kotlin/club/mcscrims/speedhg/game/GameManager.kt index aaf59e2..a5a4a59 100644 --- a/src/main/kotlin/club/mcscrims/speedhg/game/GameManager.kt +++ b/src/main/kotlin/club/mcscrims/speedhg/game/GameManager.kt @@ -263,9 +263,11 @@ class GameManager( plugin.rankingManager.registerRoundKill( killer.uniqueId ) } - player.inventory.contents.filterNotNull().forEach { - player.world.dropItemNaturally( player.location, it ) - } + player.inventory.contents.filterNotNull() + .filter { !plugin.kitManager.isKitItem( player, it ) } + .forEach { item -> + player.world.dropItemNaturally( player.location, item ) + } val msgKey = if ( killer != null ) "game.death-killed" else "game.death-pve" val killerName = killer?.name ?: "Environment" diff --git a/src/main/kotlin/club/mcscrims/speedhg/kit/KitManager.kt b/src/main/kotlin/club/mcscrims/speedhg/kit/KitManager.kt index 69a9649..0e98172 100644 --- a/src/main/kotlin/club/mcscrims/speedhg/kit/KitManager.kt +++ b/src/main/kotlin/club/mcscrims/speedhg/kit/KitManager.kt @@ -3,6 +3,7 @@ package club.mcscrims.speedhg.kit import club.mcscrims.speedhg.SpeedHG import club.mcscrims.speedhg.kit.charge.PlayerChargeData import org.bukkit.entity.Player +import org.bukkit.inventory.ItemStack import java.util.* import java.util.concurrent.ConcurrentHashMap @@ -149,6 +150,18 @@ class KitManager( chargeData.clear() } + /** + * Checks if an item is a kit item from a player + */ + fun isKitItem( + player: Player, + item: ItemStack + ): Boolean + { + val kit = getSelectedKit( player ) ?: return false + return kit.cachedItems[ player.uniqueId ]?.any { it.isSimilar( item ) } == true + } + // ------------------------------------------------------------------------- // Charge access (used by KitEventDispatcher) // -------------------------------------------------------------------------