From 9416250e139c67b618879400bc8a052bd5da6aa6 Mon Sep 17 00:00:00 2001 From: TONY_All Date: Fri, 16 Jun 2023 01:41:22 +0800 Subject: [PATCH] fix MAXMC-T-6 --- .../blastingcrisis/listener/GameListener.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/kotlin/cc/maxmc/blastingcrisis/listener/GameListener.kt b/src/main/kotlin/cc/maxmc/blastingcrisis/listener/GameListener.kt index 3cab71a..f072829 100644 --- a/src/main/kotlin/cc/maxmc/blastingcrisis/listener/GameListener.kt +++ b/src/main/kotlin/cc/maxmc/blastingcrisis/listener/GameListener.kt @@ -7,13 +7,18 @@ import cc.maxmc.blastingcrisis.misc.GameManager import cc.maxmc.blastingcrisis.misc.debug import cc.maxmc.blastingcrisis.misc.toPlayerLocation import org.bukkit.Location +import org.bukkit.entity.Player import org.bukkit.event.block.BlockBreakEvent import org.bukkit.event.block.BlockPlaceEvent +import org.bukkit.event.entity.EntityDamageEvent import org.bukkit.event.entity.EntityExplodeEvent +import org.bukkit.event.entity.FoodLevelChangeEvent import org.bukkit.event.player.PlayerInteractEvent import org.bukkit.event.player.PlayerMoveEvent import org.bukkit.event.player.PlayerRespawnEvent import taboolib.common.platform.event.SubscribeEvent +import taboolib.platform.util.feed +import taboolib.platform.util.saturate import taboolib.platform.util.sendLang object GameListener { @@ -70,4 +75,20 @@ object GameListener { val team = respawnEvent.player.team ?: return // ignore none game player respawnEvent.respawnLocation = team.teamInfo.spawn.toPlayerLocation() } + + @SubscribeEvent + fun protectDamageBeforeGame(damageEvent: EntityDamageEvent) { + if (damageEvent.entity !is Player) return // ignore none player entity + if (GameManager.currentGame.state.isStarted()) return + damageEvent.isCancelled = true + } + + @SubscribeEvent + fun protectHunger(hungerEvent: FoodLevelChangeEvent) { + hungerEvent.isCancelled = true + hungerEvent.entity.run { + feed() + saturate() + } + } } \ No newline at end of file