diff --git a/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java b/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java index f16c90f..e09671a 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java +++ b/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java @@ -27,7 +27,6 @@ import net.onelitefeather.cygnus.command.StartCommand; import net.onelitefeather.cygnus.common.ListenerHandling; import net.onelitefeather.cygnus.common.Messages; -import net.onelitefeather.cygnus.common.Tags; import net.onelitefeather.cygnus.common.config.GameConfig; import net.onelitefeather.cygnus.common.config.GameConfigReader; import net.onelitefeather.cygnus.common.event.GamePreLaunchEvent; @@ -46,7 +45,7 @@ import net.onelitefeather.cygnus.listener.game.GameFinishListener; import net.onelitefeather.cygnus.listener.game.GamePageListener; import net.onelitefeather.cygnus.listener.game.GamePreLaunchListener; -import net.onelitefeather.cygnus.listener.game.GameReviveListener; +import net.onelitefeather.cygnus.listener.game.SlenderReviveListener; import net.onelitefeather.cygnus.listener.game.PlayerPageInteractListener; import net.onelitefeather.cygnus.listener.game.PlayerStartSprintingListener; import net.onelitefeather.cygnus.listener.game.PlayerStopSprintingListener; @@ -153,7 +152,7 @@ private void registerGameListener() { manager.addListener(PlayerStartSprintingEvent.class, new PlayerStartSprintingListener(this.staminaService::getFoodBar)); manager.addListener(PlayerStopSprintingEvent.class, new PlayerStopSprintingListener(this.staminaService::getFoodBar)); manager.addListener( - SlenderReviveEvent.class, new GameReviveListener(((GameMapProvider) this.mapProvider).getGameMap(), this.staminaService)); + SlenderReviveEvent.class, new SlenderReviveListener(((GameMapProvider) this.mapProvider).getGameMap(), this.staminaService)); manager.addListener(GamePreLaunchEvent.class, new GamePreLaunchListener(this.pageProvider::setMaxPageAmount)); manager.addListener(StaminaStateChangeEvent.class, new StaminaStateChangeListener()); MinecraftServer.getPacketListenerManager().setPlayListener(ClientEntityActionPacket.class, CygnusEntityActionListener::listener); diff --git a/game/src/main/java/net/onelitefeather/cygnus/listener/game/GameReviveListener.java b/game/src/main/java/net/onelitefeather/cygnus/listener/game/SlenderReviveListener.java similarity index 64% rename from game/src/main/java/net/onelitefeather/cygnus/listener/game/GameReviveListener.java rename to game/src/main/java/net/onelitefeather/cygnus/listener/game/SlenderReviveListener.java index a576ba2..72fabb8 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/listener/game/GameReviveListener.java +++ b/game/src/main/java/net/onelitefeather/cygnus/listener/game/SlenderReviveListener.java @@ -1,5 +1,6 @@ package net.onelitefeather.cygnus.listener.game; +import net.minestom.server.entity.Player; import net.onelitefeather.cygnus.common.Tags; import net.onelitefeather.cygnus.common.map.GameMap; import net.onelitefeather.cygnus.common.util.Helper; @@ -10,24 +11,26 @@ import java.util.function.Consumer; /** + * This class is responsible for handling the {@link SlenderReviveEvent} and performing the necessary actions to revive the player in the game. + * * @author theEvilReaper * @version 1.0.0 - * @since + * @since 1.0.0 **/ -public class GameReviveListener implements Consumer { +public class SlenderReviveListener implements Consumer { private final GameMap gameMap; private final StaminaService staminaService; - public GameReviveListener(GameMap gameMap, StaminaService staminaService) { + public SlenderReviveListener(GameMap gameMap, StaminaService staminaService) { this.gameMap = gameMap; this.staminaService = staminaService; } @Override public void accept(SlenderReviveEvent event) { - var player = event.getPlayer(); - staminaService.switchToSlenderBar(player); + Player player = event.getPlayer(); + staminaService.setSlenderBar(player, true); player.setTag(Tags.GAME_TAG, Helper.SLENDER_ID); player.teleport(gameMap.getSlenderSpawn()); Items.setSlenderEye(player); diff --git a/game/src/main/java/net/onelitefeather/cygnus/stamina/StaminaService.java b/game/src/main/java/net/onelitefeather/cygnus/stamina/StaminaService.java index 5372404..b90fccc 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/stamina/StaminaService.java +++ b/game/src/main/java/net/onelitefeather/cygnus/stamina/StaminaService.java @@ -14,7 +14,7 @@ * The class has some abilities to manage all {@link StaminaBar} references which are required in the game. * * @author theEvilReaper - * @version 1.0.0 + * @version 1.1.0 * @since 1.0.0 */ public final class StaminaService { @@ -41,7 +41,7 @@ public void setSlenderBar(Player player) { /** * Creates a new instance of an {@link SlenderBar} for a given {@link Player}. * - * @param player the player that owns the {@link StaminaBar} + * @param player the player that owns the {@link StaminaBar} * @param forceStart if the bar should be started by default */ public void setSlenderBar(Player player, boolean forceStart) { @@ -71,7 +71,6 @@ public void createStaminaBars(Team team) { * Starts all {@link net.minestom.server.timer.Task} reference from each {@link StaminaBar}. */ public void start() { - //this.slenderBar.start(); for (StaminaBar value : this.staminaBars.values()) { value.start(); } @@ -94,27 +93,30 @@ public void cleanUp() { staminaBars.clear(); } - @Deprecated(since = "Please use setSlenderBar instead", forRemoval = true) - public void switchToSlenderBar(Player player) { - // If the old slender has a bar, we need to stop it. - if (this.slenderBar != null) { - this.slenderBar.stop(); - } - //TODO: Stop old at switch - this.slenderBar = StaminaFactory.createSlenderStamina((CygnusPlayer) player); - this.slenderBar.start(); - } - + /** + * Force stops the internal dispatch logic of the bar. + */ public void forceStopSlenderBar() { if (this.slenderBar == null) return; this.slenderBar.stop(); this.slenderBar = null; } + /** + * Returns an instance of a {@link FoodBar} from a given player + * + * @param player to get the bar + * @return the corresponding {@link FoodBar} instance + */ public FoodBar getFoodBar(Player player) { return (FoodBar) this.staminaBars.get(player.getUuid()); } + /** + * Returns the current reference of a {@link SlenderBar} if it exists + * + * @return current reference + */ public @Nullable StaminaBar getSlenderBar() { return slenderBar; } diff --git a/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaServiceTest.java b/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaServiceTest.java index 2a39813..eddeb38 100644 --- a/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaServiceTest.java +++ b/game/src/test/java/net/onelitefeather/cygnus/stamina/StaminaServiceTest.java @@ -70,7 +70,7 @@ void testSlenderBarSwitch(@NotNull Env env) { StaminaBar oldBar = staminaService.getSlenderBar(); - staminaService.switchToSlenderBar(anotherPlayer); + staminaService.setSlenderBar(anotherPlayer, true); StaminaBar slenderBar = staminaService.getSlenderBar();