The name of this game-mode
*/ - @NotNull String name(); + @NotNull + String name(); /** * Gets a set of all available arena game-modes in the type definition of this game-mode * * @returnAll game-modes in this game-mode's class
*/ - @NotNull ArenaGameMode[] getValues(); + @NotNull + ArenaGameMode[] getValues(); } diff --git a/src/main/java/net/knarcraft/minigames/arena/ArenaSession.java b/src/main/java/net/knarcraft/minigames/arena/ArenaSession.java index eb1564e..4b52118 100644 --- a/src/main/java/net/knarcraft/minigames/arena/ArenaSession.java +++ b/src/main/java/net/knarcraft/minigames/arena/ArenaSession.java @@ -13,7 +13,8 @@ public interface ArenaSession { * * @returnThe player's entry state
*/ - @NotNull PlayerEntryState getEntryState(); + @NotNull + PlayerEntryState getEntryState(); /** * Triggers a win for the player playing in this session @@ -38,14 +39,16 @@ public interface ArenaSession { * * @returnThe session's arena
*/ - @NotNull Arena getArena(); + @NotNull + Arena getArena(); /** * Gets the GUI with this arena's options * * @returnThis arena's GUI
*/ - @NotNull ArenaGUI getGUI(); + @NotNull + ArenaGUI getGUI(); /** * Resets the session to allow a player to try again @@ -57,6 +60,7 @@ public interface ArenaSession { * * @returnThe game-mode the player is playing
*/ - @NotNull ArenaGameMode getGameMode(); + @NotNull + ArenaGameMode getGameMode(); } diff --git a/src/main/java/net/knarcraft/minigames/arena/StorageKey.java b/src/main/java/net/knarcraft/minigames/arena/StorageKey.java index 2bbae2c..d48d0e2 100644 --- a/src/main/java/net/knarcraft/minigames/arena/StorageKey.java +++ b/src/main/java/net/knarcraft/minigames/arena/StorageKey.java @@ -12,6 +12,7 @@ public interface StorageKey { * * @returnThe string key representation.
*/ - @NotNull String getKey(); + @NotNull + String getKey(); } diff --git a/src/main/java/net/knarcraft/minigames/arena/reward/ItemReward.java b/src/main/java/net/knarcraft/minigames/arena/reward/ItemReward.java index fde135b..6694d47 100644 --- a/src/main/java/net/knarcraft/minigames/arena/reward/ItemReward.java +++ b/src/main/java/net/knarcraft/minigames/arena/reward/ItemReward.java @@ -2,6 +2,7 @@ package net.knarcraft.minigames.arena.reward; import net.knarcraft.minigames.MiniGames; import net.knarcraft.minigames.config.MiniGameMessage; +import org.bukkit.NamespacedKey; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; @@ -43,9 +44,10 @@ public class ItemReward implements Reward { @Override public @NotNull String getGrantMessage() { + NamespacedKey key = item.getType().getKeyOrNull(); + String name = key == null ? "Unnamed item" : key.getKey().replace("_", " "); return MiniGames.getInstance().getStringFormatter().replacePlaceholders(MiniGameMessage.SUCCESS_ITEM_REWARDED, - new String[]{"{amount}", "{item}"}, new String[]{String.valueOf(item.getAmount()), - item.getType().getKey().getKey().replace("_", " ")}); + new String[]{"{amount}", "{item}"}, new String[]{String.valueOf(item.getAmount()), name}); } @NotNull diff --git a/src/main/java/net/knarcraft/minigames/arena/reward/Reward.java b/src/main/java/net/knarcraft/minigames/arena/reward/Reward.java index 2c09234..66d25b4 100644 --- a/src/main/java/net/knarcraft/minigames/arena/reward/Reward.java +++ b/src/main/java/net/knarcraft/minigames/arena/reward/Reward.java @@ -22,6 +22,7 @@ public interface Reward extends ConfigurationSerializable { * * @returnThe message to display when this reward is granted
*/ - @NotNull String getGrantMessage(); + @NotNull + String getGrantMessage(); } diff --git a/src/main/java/net/knarcraft/minigames/listener/DamageListener.java b/src/main/java/net/knarcraft/minigames/listener/DamageListener.java index d41da09..2f147a1 100644 --- a/src/main/java/net/knarcraft/minigames/listener/DamageListener.java +++ b/src/main/java/net/knarcraft/minigames/listener/DamageListener.java @@ -62,10 +62,13 @@ public class DamageListener implements Listener { * @param arenaSessionThe arena session to trigger a loss for, if the player reaches 0 damage
*/ private void applyFakeDamage(@NotNull Player player, double damage, @NotNull ArenaSession arenaSession) { + if (player.getNoDamageTicks() > 0) { + return; + } double newHealth = player.getHealth() - damage; player.sendHurtAnimation(180); if (newHealth <= 0) { - AttributeInstance health = player.getAttribute(Attribute.GENERIC_MAX_HEALTH); + AttributeInstance health = player.getAttribute(Attribute.MAX_HEALTH); if (health != null) { player.setHealth(health.getValue()); } diff --git a/src/main/java/net/knarcraft/minigames/util/TabCompleteHelper.java b/src/main/java/net/knarcraft/minigames/util/TabCompleteHelper.java index e2f3690..4c53872 100644 --- a/src/main/java/net/knarcraft/minigames/util/TabCompleteHelper.java +++ b/src/main/java/net/knarcraft/minigames/util/TabCompleteHelper.java @@ -9,6 +9,7 @@ import net.knarcraft.minigames.arena.dropper.DropperArenaEditableProperty; import net.knarcraft.minigames.arena.parkour.ParkourArenaEditableProperty; import org.bukkit.Bukkit; import org.bukkit.Material; +import org.bukkit.NamespacedKey; import org.bukkit.Tag; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.permissions.Permission; @@ -204,7 +205,10 @@ public final class TabCompleteHelper { List