Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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).
*/
Expand Down
4 changes: 2 additions & 2 deletions game/src/main/java/net/onelitefeather/cygnus/Cygnus.java
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -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));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -25,8 +25,8 @@ public final class PlayerDeathListener implements Consumer<PlayerDeathEvent> {

public PlayerDeathListener(Supplier<Phase> 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand All @@ -126,19 +126,19 @@ 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;
}

// 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();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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);
Expand All @@ -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();
Expand All @@ -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);
Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
}
23 changes: 16 additions & 7 deletions game/src/main/java/net/onelitefeather/cygnus/team/TeamHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*
Expand All @@ -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.
*
Expand Down Expand Up @@ -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);
}
Expand Down Expand Up @@ -103,7 +110,7 @@ private static Set<Player> collectSurvivors(Player slenderPlayer) {
* @param survivorTeam the team to add them to
*/
private static void assignSurvivors(Set<Player> 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);
}

Expand Down Expand Up @@ -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;
}

/**
Expand All @@ -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;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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));
}
Expand Down
Loading