diff --git a/common/src/main/java/net/onelitefeather/cygnus/common/util/Helper.java b/common/src/main/java/net/onelitefeather/cygnus/common/util/Helper.java index 761a2ea..d45d0ee 100644 --- a/common/src/main/java/net/onelitefeather/cygnus/common/util/Helper.java +++ b/common/src/main/java/net/onelitefeather/cygnus/common/util/Helper.java @@ -16,30 +16,6 @@ **/ public final class Helper { - /** - * Constant byte representing the value zero. - */ - public static final byte ZERO_ID = 0; - - /** - * Constant byte representing the value one. - */ - public static final byte ONE_ID = 1; - - /** - * The ID representing the Slender team. - * @deprecated Use {@link #ZERO_ID} or team configurations instead. - */ - @Deprecated - public static final byte SLENDER_ID = 0; - - /** - * The ID representing the Survivor team. - * @deprecated Use {@link #ONE_ID} or team configurations instead. - */ - @Deprecated - public static final byte SURVIVOR_ID = 1; - /** * Minecraft time value representing midnight (18000 ticks). */ diff --git a/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java b/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java index 2fac475..15c08c5 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java +++ b/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java @@ -102,7 +102,7 @@ public Cygnus() { this.mapProvider = new GameMapProvider(path); this.view = new GameViewImpl(); this.createTeams(this.gameConfig, this.teamService); - this.ambientProvider = new AmbientProvider(this.teamService.getTeams().get(Helper.SURVIVOR_ID)); + this.ambientProvider = new AmbientProvider(this.teamService.getTeams().get(TeamHelper.SURVIVOR_TEAM_ID)); this.initPhases(); this.initCommands(); this.initListener(); @@ -184,6 +184,6 @@ private void finishGame() { } private void triggerViewRuleUpdate(@NotNull Player player) { - ViewRuleUpdater.updateViewer(player, this.teamService.getTeams().get(Helper.SURVIVOR_ID)); + ViewRuleUpdater.updateViewer(player, this.teamService.getTeams().get(TeamHelper.SURVIVOR_TEAM_ID)); } } diff --git a/game/src/main/java/net/onelitefeather/cygnus/listener/PlayerDeathListener.java b/game/src/main/java/net/onelitefeather/cygnus/listener/PlayerDeathListener.java index 43a3a61..a0fb1e1 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/listener/PlayerDeathListener.java +++ b/game/src/main/java/net/onelitefeather/cygnus/listener/PlayerDeathListener.java @@ -9,9 +9,9 @@ import net.minestom.server.event.player.PlayerDeathEvent; import net.onelitefeather.cygnus.common.Messages; import net.onelitefeather.cygnus.common.Tags; -import net.onelitefeather.cygnus.common.util.Helper; import net.onelitefeather.cygnus.event.GameFinishEvent; import net.onelitefeather.cygnus.phase.GamePhase; +import net.onelitefeather.cygnus.team.TeamHelper; import java.util.function.Consumer; import java.util.function.Supplier; @@ -25,8 +25,8 @@ public final class PlayerDeathListener implements Consumer { public PlayerDeathListener(Supplier phaseSupplier, TeamService teamService) { this.phaseSupplier = phaseSupplier; - this.survivorTeam = teamService.getTeams().get(Helper.SURVIVOR_ID); - this.slenderTeam = teamService.getTeams().get(Helper.SLENDER_ID); + this.survivorTeam = teamService.getTeams().get(TeamHelper.SURVIVOR_TEAM_ID); + this.slenderTeam = teamService.getTeams().get(TeamHelper.SLENDER_TEAM_ID); } @Override diff --git a/game/src/main/java/net/onelitefeather/cygnus/listener/PlayerQuitListener.java b/game/src/main/java/net/onelitefeather/cygnus/listener/PlayerQuitListener.java index 463bce4..8d6cff0 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/listener/PlayerQuitListener.java +++ b/game/src/main/java/net/onelitefeather/cygnus/listener/PlayerQuitListener.java @@ -11,12 +11,12 @@ import net.minestom.server.event.player.PlayerDisconnectEvent; import net.onelitefeather.cygnus.common.Messages; import net.onelitefeather.cygnus.common.Tags; -import net.onelitefeather.cygnus.common.util.Helper; import net.onelitefeather.cygnus.event.GameFinishEvent; import net.onelitefeather.cygnus.event.SlenderReviveEvent; import net.onelitefeather.cygnus.phase.GamePhase; import net.onelitefeather.cygnus.phase.LobbyPhase; import net.onelitefeather.cygnus.stamina.StaminaService; +import net.onelitefeather.cygnus.team.TeamHelper; import java.util.ArrayList; import java.util.function.Consumer; @@ -112,7 +112,7 @@ private void handleInGameQuit(Player player, GamePhase gamePhase) { // If the Slender player disconnected, check if we can revive a replacement if (SLENDER_TEAM_NAME.equals(teamName)) { - var survivorSize = teamService.getTeams().get(Helper.SURVIVOR_ID).getCurrentSize(); + var survivorSize = teamService.getTeams().get(TeamHelper.SURVIVOR_TEAM_ID).getCurrentSize(); boolean canRevive = currentReviveCount < this.maxReviveCount && gamePhase.getCurrentTicks() >= MINIMUM_SLENDER_RE_CHECK && survivorSize > this.minPlayers; @@ -126,11 +126,11 @@ private void handleInGameQuit(Player player, GamePhase gamePhase) { // Perform Slender revival logic ++currentReviveCount; - var survivorTeam = teamService.getTeams().get(Helper.SURVIVOR_ID); + var survivorTeam = teamService.getTeams().get(TeamHelper.SURVIVOR_TEAM_ID); var randomPlayer = Players.getRandomPlayer(new ArrayList<>(survivorTeam.getPlayers())).get(); survivorTeam.removePlayer(randomPlayer); - teamService.getTeams().get(Helper.SLENDER_ID).addPlayer(randomPlayer); + teamService.getTeams().get(TeamHelper.SLENDER_TEAM_ID).addPlayer(randomPlayer); EventDispatcher.call(new SlenderReviveEvent(randomPlayer)); return; @@ -138,7 +138,7 @@ private void handleInGameQuit(Player player, GamePhase gamePhase) { // If a survivor disconnected, check if there are any survivors left if (!team.getPlayers().isEmpty()) return; - Team slenderTeam = teamService.getTeams().get(Helper.SLENDER_ID); + Team slenderTeam = teamService.getTeams().get(TeamHelper.SLENDER_TEAM_ID); if (slenderTeam.isEmpty()) return; Player slenderPlayer = slenderTeam.getPlayers().iterator().next(); diff --git a/game/src/main/java/net/onelitefeather/cygnus/listener/game/GameStartListener.java b/game/src/main/java/net/onelitefeather/cygnus/listener/game/GameStartListener.java index 4eb8b0f..5030301 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/listener/game/GameStartListener.java +++ b/game/src/main/java/net/onelitefeather/cygnus/listener/game/GameStartListener.java @@ -6,8 +6,8 @@ import net.onelitefeather.cygnus.common.Messages; import net.onelitefeather.cygnus.common.Tags; import net.onelitefeather.cygnus.common.page.PageProvider; -import net.onelitefeather.cygnus.common.util.Helper; import net.onelitefeather.cygnus.event.GameStartEvent; +import net.onelitefeather.cygnus.stamina.SlenderBarHelper; import net.onelitefeather.cygnus.stamina.StaminaService; import net.onelitefeather.cygnus.team.TeamHelper; import net.onelitefeather.cygnus.utils.Items; @@ -31,17 +31,17 @@ public GameStartListener(TeamService teamService, AmbientProvider ambientProvide @Override public void accept(GameStartEvent event) { - var slenderPlayer = this.teamService.getTeams().get(Helper.SLENDER_ID).getPlayers().stream().findFirst().get(); - slenderPlayer.setTag(Tags.HIDDEN, (byte) 1); + var slenderPlayer = this.teamService.getTeams().get(TeamHelper.SLENDER_TEAM_ID).getPlayers().stream().findFirst().get(); + slenderPlayer.setTag(Tags.HIDDEN, SlenderBarHelper.HIDDEN); slenderPlayer.sendMessage(Messages.SLENDER_JOIN_PART); Items.setSlenderEye(slenderPlayer); this.staminaService.start(); this.pageProvider.spawn(); this.ambientProvider.startTask(); var message = Messages.getSurvivorJoinMessage(String.valueOf(this.pageProvider.getMaxPageAmount())); - this.teamService.getTeams().get(Helper.SURVIVOR_ID).getPlayers().forEach(player -> { + this.teamService.getTeams().get(TeamHelper.SURVIVOR_TEAM_ID).getPlayers().forEach(player -> { player.sendMessage(message); - player.setTag(Tags.HIDDEN, (byte) 0); + player.setTag(Tags.HIDDEN, SlenderBarHelper.VISIBLE); }); TeamHelper.updateTabList(this.teamService); PacketSendingUtils.broadcastPlayPacket(slenderPlayer.getMetadataPacket()); diff --git a/game/src/main/java/net/onelitefeather/cygnus/listener/game/SlenderReviveListener.java b/game/src/main/java/net/onelitefeather/cygnus/listener/game/SlenderReviveListener.java index 1c3dd22..670349a 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/listener/game/SlenderReviveListener.java +++ b/game/src/main/java/net/onelitefeather/cygnus/listener/game/SlenderReviveListener.java @@ -3,9 +3,9 @@ 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; import net.onelitefeather.cygnus.event.SlenderReviveEvent; import net.onelitefeather.cygnus.stamina.StaminaService; +import net.onelitefeather.cygnus.team.TeamHelper; import net.onelitefeather.cygnus.utils.Items; import java.util.function.Consumer; @@ -31,7 +31,7 @@ public SlenderReviveListener(GameMap gameMap, StaminaService staminaService) { public void accept(SlenderReviveEvent event) { Player player = event.getPlayer(); staminaService.setSlenderBar(player, true); - player.setTag(Tags.TEAM_ID, Helper.SLENDER_ID); + player.setTag(Tags.TEAM_ID, TeamHelper.SLENDER_TEAM_ID); player.teleport(gameMap.getSlenderSpawn()); Items.setSlenderEye(player); } diff --git a/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBar.java b/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBar.java index 42c4b3a..e21eb4a 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBar.java +++ b/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBar.java @@ -6,7 +6,6 @@ import net.minestom.server.instance.Instance; import net.minestom.server.sound.SoundEvent; import net.onelitefeather.cygnus.common.Tags; -import net.onelitefeather.cygnus.common.util.Helper; import net.onelitefeather.cygnus.event.StaminaStateChangeEvent; import net.onelitefeather.cygnus.player.CygnusPlayer; @@ -64,7 +63,7 @@ private void handleDraining() { } state = State.REGENERATING; colorState = StaminaColors.REGENERATING; - player.setTag(Tags.HIDDEN, Helper.ONE_ID); + player.setTag(Tags.HIDDEN, HIDDEN); EventDispatcher.call(new StaminaStateChangeEvent(player, state)); this.applyNightVision(player); player.getAttribute(Attribute.MOVEMENT_SPEED).setBaseValue(0.1f); @@ -91,7 +90,7 @@ public boolean changeStatus() { case READY -> { state = State.DRAINING; colorState = StaminaColors.DRAINING; - player.setTag(Tags.HIDDEN, Helper.ONE_ID); + player.setTag(Tags.HIDDEN, HIDDEN); this.applyBlindness(player); player.getAttribute(Attribute.MOVEMENT_SPEED).setBaseValue(0.0669); player.sendSpringPackets(); @@ -102,7 +101,7 @@ public boolean changeStatus() { case REGENERATING -> { state = State.DRAINING; colorState = StaminaColors.DRAINING; - player.setTag(Tags.HIDDEN, Helper.ONE_ID); + player.setTag(Tags.HIDDEN, HIDDEN); this.playSpawnSound(player.getInstance(), player.getPosition(), player.getUuid()); this.applyBlindness(player); player.getAttribute(Attribute.MOVEMENT_SPEED).setBaseValue(0.0669); @@ -114,7 +113,7 @@ public boolean changeStatus() { case DRAINING -> { state = State.REGENERATING; colorState = StaminaColors.REGENERATING; - player.setTag(Tags.HIDDEN, Helper.ZERO_ID); + player.setTag(Tags.HIDDEN, VISIBLE); this.playTeleportSound(player.getInstance(), player.getPosition(), player.getUuid()); this.applyNightVision(player); player.getAttribute(Attribute.MOVEMENT_SPEED).setBaseValue(0.1f); diff --git a/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBarHelper.java b/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBarHelper.java index eff83d5..ad14808 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBarHelper.java +++ b/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBarHelper.java @@ -23,7 +23,10 @@ * @since 1.0.0 */ @SuppressWarnings({"java:S3252"}) -interface SlenderBarHelper { +public interface SlenderBarHelper { + + byte VISIBLE = 0; + byte HIDDEN = 1; Sound TELEPORT = Sound.sound(SoundEvent.ENTITY_ENDERMAN_TELEPORT, Sound.Source.MASTER, 1F, 0.2F); Sound SPAWN = Sound.sound(SoundEvent.ENTITY_WITHER_SPAWN, Sound.Source.MASTER, 0.4F, 0F); diff --git a/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBarTrigger.java b/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBarTrigger.java index daa3b7c..a64e9e4 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBarTrigger.java +++ b/game/src/main/java/net/onelitefeather/cygnus/stamina/SlenderBarTrigger.java @@ -6,7 +6,6 @@ import net.minestom.server.entity.Player; import net.minestom.server.sound.SoundEvent; import net.onelitefeather.cygnus.common.Tags; -import net.onelitefeather.cygnus.common.util.Helper; import org.jetbrains.annotations.Nullable; import java.util.function.Supplier; @@ -68,7 +67,8 @@ public void trigger(Player player) { * @param player the player to change the visibility status */ private void changeVisibilityStatus(Player player) { - byte currentValue = player.getTag(Tags.HIDDEN); - player.setTag(Tags.HIDDEN, currentValue == Helper.ZERO_ID ? Helper.ONE_ID : Helper.ZERO_ID); + Byte value = player.getTag(Tags.HIDDEN); + byte currentValue = value != null ? value : SlenderBarHelper.VISIBLE; + player.setTag(Tags.HIDDEN, currentValue == SlenderBarHelper.VISIBLE ? SlenderBarHelper.HIDDEN : SlenderBarHelper.VISIBLE); } } diff --git a/game/src/main/java/net/onelitefeather/cygnus/team/TeamHelper.java b/game/src/main/java/net/onelitefeather/cygnus/team/TeamHelper.java index a483d7d..0be75c2 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/team/TeamHelper.java +++ b/game/src/main/java/net/onelitefeather/cygnus/team/TeamHelper.java @@ -18,9 +18,6 @@ import java.util.HashSet; import java.util.Set; -import static net.onelitefeather.cygnus.common.util.Helper.SLENDER_ID; -import static net.onelitefeather.cygnus.common.util.Helper.SURVIVOR_ID; - /** * This class provides utility methods for the team handling in the game. * @@ -30,6 +27,16 @@ */ public final class TeamHelper { + /** + * The ID representing the Slender team. + */ + public static final byte SLENDER_TEAM_ID = 0; + + /** + * The ID representing the Survivor team. + */ + public static final byte SURVIVOR_TEAM_ID = 1; + /** * Result of a team allocation, containing the chosen slender player and the resulting survivors. * @@ -75,7 +82,7 @@ private static Player selectSlenderPlayer() { * @param slenderTeam the team to add the player to */ private static void assignSlender(Player player, Team slenderTeam) { - player.setTag(Tags.TEAM_ID, SLENDER_ID); + player.setTag(Tags.TEAM_ID, SLENDER_TEAM_ID); player.updateViewableRule(ViewRuleUpdater::viewableRuleForSlender); slenderTeam.addPlayer(player); } @@ -103,7 +110,7 @@ private static Set collectSurvivors(Player slenderPlayer) { * @param survivorTeam the team to add them to */ private static void assignSurvivors(Set survivors, Team survivorTeam) { - survivors.forEach(player -> player.setTag(Tags.TEAM_ID, SURVIVOR_ID)); + survivors.forEach(player -> player.setTag(Tags.TEAM_ID, SURVIVOR_TEAM_ID)); survivorTeam.addPlayers(survivors); } @@ -171,7 +178,8 @@ public static void updateTabList(TeamService teamService) { * @return true if the player is in the slender team */ public static boolean isSlenderTeam(Player player) { - return player.getTag(Tags.TEAM_ID) == SLENDER_ID; + Byte teamId = player.getTag(Tags.TEAM_ID); + return teamId != null && teamId == SLENDER_TEAM_ID; } /** @@ -181,7 +189,8 @@ public static boolean isSlenderTeam(Player player) { * @return true if the player is in the survivor team */ public static boolean isSurvivorTeam(Player player) { - return player.getTag(Tags.TEAM_ID) == SURVIVOR_ID; + Byte teamId = player.getTag(Tags.TEAM_ID); + return teamId != null && teamId == SURVIVOR_TEAM_ID; } /** diff --git a/game/src/main/java/net/onelitefeather/cygnus/utils/ScoreboardDisplay.java b/game/src/main/java/net/onelitefeather/cygnus/utils/ScoreboardDisplay.java index 2dc27c6..a4bbb4d 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/utils/ScoreboardDisplay.java +++ b/game/src/main/java/net/onelitefeather/cygnus/utils/ScoreboardDisplay.java @@ -10,7 +10,7 @@ import net.minestom.server.scoreboard.TeamBuilder; import net.minestom.server.scoreboard.TeamManager; import net.onelitefeather.cygnus.common.config.GameConfig; -import net.onelitefeather.cygnus.common.util.Helper; +import net.onelitefeather.cygnus.team.TeamHelper; import java.util.List; @@ -77,6 +77,6 @@ public void removePlayer(Player player, byte teamId) { * @return the team name */ private String getTeamName(byte teamId) { - return teamId == Helper.SLENDER_ID ? GameConfig.SLENDER_TEAM_NAME : GameConfig.SURVIVOR_TEAM_NAME; + return teamId == TeamHelper.SLENDER_TEAM_ID ? GameConfig.SLENDER_TEAM_NAME : GameConfig.SURVIVOR_TEAM_NAME; } } diff --git a/game/src/main/java/net/onelitefeather/cygnus/utils/ViewRuleUpdater.java b/game/src/main/java/net/onelitefeather/cygnus/utils/ViewRuleUpdater.java index 4d8c3b1..cee972a 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/utils/ViewRuleUpdater.java +++ b/game/src/main/java/net/onelitefeather/cygnus/utils/ViewRuleUpdater.java @@ -4,11 +4,12 @@ import net.minestom.server.MinecraftServer; import net.minestom.server.entity.Player; import net.onelitefeather.cygnus.common.Tags; +import net.onelitefeather.cygnus.stamina.SlenderBarHelper; public final class ViewRuleUpdater { public static boolean isViewAble(Player player) { - return player.hasTag(Tags.HIDDEN) && player.getTag(Tags.HIDDEN) == (byte) 1; + return player.hasTag(Tags.HIDDEN) && player.getTag(Tags.HIDDEN) == SlenderBarHelper.HIDDEN; } public static void updateViewer(Player target, Team survivor) { @@ -24,22 +25,22 @@ public static void updateViewer(Player target, Team survivor) { public static void showSurvivor(Player player) { if (isViewAble(player)) { - player.setTag(Tags.HIDDEN, (byte) 0); + player.setTag(Tags.HIDDEN, SlenderBarHelper.VISIBLE); } else { - player.setTag(Tags.HIDDEN, (byte) 1); + player.setTag(Tags.HIDDEN, SlenderBarHelper.HIDDEN); } } public static void showSlender(Player player) { if (!isViewAble(player)) { - player.setTag(Tags.HIDDEN, (byte) 1); + player.setTag(Tags.HIDDEN, SlenderBarHelper.HIDDEN); } else { - player.setTag(Tags.HIDDEN, (byte) 0); + player.setTag(Tags.HIDDEN, SlenderBarHelper.VISIBLE); } } public static boolean viewableRuleForSlender(Player player) { - return player.hasTag(Tags.HIDDEN) && player.getTag(Tags.HIDDEN) == (byte) 1; + return player.hasTag(Tags.HIDDEN) && player.getTag(Tags.HIDDEN) == SlenderBarHelper.HIDDEN; } private ViewRuleUpdater() { diff --git a/game/src/test/java/net/onelitefeather/cygnus/utils/TeamHelperTest.java b/game/src/test/java/net/onelitefeather/cygnus/utils/TeamHelperTest.java index e861af0..e09ef49 100644 --- a/game/src/test/java/net/onelitefeather/cygnus/utils/TeamHelperTest.java +++ b/game/src/test/java/net/onelitefeather/cygnus/utils/TeamHelperTest.java @@ -18,7 +18,6 @@ import net.onelitefeather.cygnus.common.config.GameConfig; import net.onelitefeather.cygnus.common.config.GameConfigReader; import net.onelitefeather.cygnus.common.map.GameMap; -import net.onelitefeather.cygnus.common.util.Helper; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; @@ -188,14 +187,14 @@ void testUpdateTabList(@NotNull Env env) { @Test void testIsInSlenderTeam() { - player.setTag(Tags.TEAM_ID, Helper.SLENDER_ID); + player.setTag(Tags.TEAM_ID, TeamHelper.SLENDER_TEAM_ID); assertTrue(TeamHelper.isSlenderTeam(player)); assertFalse(TeamHelper.isSurvivorTeam(player)); } @Test void testIsInSurvivorTeam() { - player.setTag(Tags.TEAM_ID, Helper.SURVIVOR_ID); + player.setTag(Tags.TEAM_ID, TeamHelper.SURVIVOR_TEAM_ID); assertFalse(TeamHelper.isSlenderTeam(player)); assertTrue(TeamHelper.isSurvivorTeam(player)); }