From 6862c71e2e14ea8f8328e198188665c22326b2de Mon Sep 17 00:00:00 2001 From: nearfe Date: Fri, 14 Jun 2024 22:48:12 -0300 Subject: [PATCH] Body animated --- .../practice/listeners/PlayerListener.java | 7 ++++- .../settings/PracticeSettingsImpl.java | 26 +++++++++---------- .../practice/settings/ProfileOptions.java | 2 ++ .../settings/item/BodyOptionsItemState.java | 8 ++++++ .../land/battle/practice/util/PlayerUtil.java | 2 +- 5 files changed, 30 insertions(+), 15 deletions(-) create mode 100644 src/main/java/land/battle/practice/settings/item/BodyOptionsItemState.java diff --git a/src/main/java/land/battle/practice/listeners/PlayerListener.java b/src/main/java/land/battle/practice/listeners/PlayerListener.java index 8733cb0..b76b36b 100644 --- a/src/main/java/land/battle/practice/listeners/PlayerListener.java +++ b/src/main/java/land/battle/practice/listeners/PlayerListener.java @@ -766,7 +766,12 @@ public class PlayerListener implements Listener { switch (playerData.getPlayerState()) { case FIGHTING: if (plugin.getMatchManager().getMatch(playerData) != null) { - PlayerUtil.animateDeath(player, !plugin.getMatchManager().getMatch(playerData).isPartyMatch()); + switch (playerData.getOptions().getBodyAnimated()) { + case ANIMATED: + PlayerUtil.animateDeath(player, !plugin.getMatchManager().getMatch(playerData).isPartyMatch()); + case STATIC: + PlayerUtil.staticDeath(player, !plugin.getMatchManager().getMatch(playerData).isPartyMatch()); + } } this.plugin.getMatchManager().removeFighter(player, playerData, true); break; diff --git a/src/main/java/land/battle/practice/settings/PracticeSettingsImpl.java b/src/main/java/land/battle/practice/settings/PracticeSettingsImpl.java index 3a36c97..0bb36bf 100644 --- a/src/main/java/land/battle/practice/settings/PracticeSettingsImpl.java +++ b/src/main/java/land/battle/practice/settings/PracticeSettingsImpl.java @@ -9,6 +9,7 @@ import land.battle.practice.menu.DeathEffectMenu; import land.battle.practice.menu.KillMessageMenu; import land.battle.practice.menu.MatchmakingSettingsMenu; import land.battle.practice.player.PlayerData; +import land.battle.practice.settings.item.BodyOptionsItemState; import land.battle.practice.settings.item.ProfileOptionsItemState; import land.battle.practice.settings.item.SidebarOptionsItemState; import land.battle.practice.util.CC; @@ -163,25 +164,24 @@ public class PracticeSettingsImpl implements ISettings { }) ); - buttonList.add(new ItemBuilder(Material.ENCHANTED_BOOK) - .setDisplayName(Color.MAIN_COLOR + CC.BOLD + "Matchmaking Settings") + buttonList.add(new ItemBuilder(Material.SKULL_ITEM) + .setDisplayName(Color.MAIN_COLOR + CC.BOLD + "Body animation") .addLore( - CC.GRAY + "Configure matchmaking settings.", + "", + CC.GRAY + "Would you like a different body", + CC.GRAY + "animation on your gameplay?", " ", - CC.YELLOW + "[View matchmaking settings]" - + (data.getOptions().getBodyAnimated() == BodyOptionsItemState.ANIMATED ? CC.GREEN + CC.BOLD + "■ " : CC.DARK_GRAY + CC.BOLD + "■ ") + "&fOld", + (data.getOptions().getBodyAnimated() == BodyOptionsItemState.STATIC ? CC.GREEN + CC.BOLD + "■ " : CC.DARK_GRAY + CC.BOLD + "■ ") + "&fModern" ) - .toButton((player1, clickType) -> { - if (!player1.hasPermission("practice.matchmaking.settings")) { - player1.sendMessage(CC.RED + "You don't have permission to open Matchmaking Settings! Get more information at our store: store.minion.lol."); - player1.closeInventory(); - return; + .toUpdatingButton((player1, clickType) -> { + if (data.getOptions().getBodyAnimated() == BodyOptionsItemState.ANIMATED) { + data.getOptions().setBodyAnimated(BodyOptionsItemState.STATIC); + } else { + data.getOptions().setBodyAnimated(BodyOptionsItemState.ANIMATED); } - - new MatchmakingSettingsMenu().openMenu(player1); }) ); - return buttonList; } diff --git a/src/main/java/land/battle/practice/settings/ProfileOptions.java b/src/main/java/land/battle/practice/settings/ProfileOptions.java index 47e6044..2298c97 100644 --- a/src/main/java/land/battle/practice/settings/ProfileOptions.java +++ b/src/main/java/land/battle/practice/settings/ProfileOptions.java @@ -1,5 +1,6 @@ package land.battle.practice.settings; +import land.battle.practice.settings.item.BodyOptionsItemState; import land.battle.practice.settings.item.ProfileOptionsItemState; import land.battle.practice.settings.item.SidebarOptionsItemState; import lombok.Getter; @@ -20,6 +21,7 @@ public class ProfileOptions { private ProfileOptionsItemState scoreboardState = ProfileOptionsItemState.PING; private SidebarOptionsItemState scoreboardStyle = SidebarOptionsItemState.OLD; + private BodyOptionsItemState bodyAnimated = BodyOptionsItemState.ANIMATED; } diff --git a/src/main/java/land/battle/practice/settings/item/BodyOptionsItemState.java b/src/main/java/land/battle/practice/settings/item/BodyOptionsItemState.java new file mode 100644 index 0000000..e3c5720 --- /dev/null +++ b/src/main/java/land/battle/practice/settings/item/BodyOptionsItemState.java @@ -0,0 +1,8 @@ +package land.battle.practice.settings.item; + +public enum BodyOptionsItemState { + + ANIMATED, + STATIC, + +} diff --git a/src/main/java/land/battle/practice/util/PlayerUtil.java b/src/main/java/land/battle/practice/util/PlayerUtil.java index f0b08cd..4f6109e 100644 --- a/src/main/java/land/battle/practice/util/PlayerUtil.java +++ b/src/main/java/land/battle/practice/util/PlayerUtil.java @@ -250,7 +250,7 @@ public final class PlayerUtil { } @SneakyThrows - public static void staticDeath(Player player) { + public static void staticDeath(Player player, boolean showPlayer) { int entityId = EntityUtils.getFakeEntityId(); PacketPlayOutNamedEntitySpawn spawnPacket = new PacketPlayOutNamedEntitySpawn(((CraftPlayer) player).getHandle()); PacketPlayOutEntityStatus statusPacket = new PacketPlayOutEntityStatus();