Skip to content

Commit 99a93c1

Browse files
committed
chore(game): register new listener and update constructor usage
1 parent 3f7da31 commit 99a93c1

2 files changed

Lines changed: 10 additions & 34 deletions

File tree

game/src/main/java/net/onelitefeather/cygnus/Cygnus.java

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package net.onelitefeather.cygnus;
22

3-
import net.minestom.server.utils.PacketSendingUtils;
3+
import net.onelitefeather.cygnus.event.GameStartEvent;
4+
import net.onelitefeather.cygnus.listener.game.GameStartListener;
45
import net.onelitefeather.cygnus.map.GameMapProvider;
56
import net.onelitefeather.cygnus.map.event.GameMapLoadedEvent;
6-
import net.onelitefeather.cygnus.utils.Items;
77
import net.theevilreaper.aves.map.provider.AbstractMapProvider;
88
import net.theevilreaper.aves.util.Strings;
99
import net.theevilreaper.aves.util.TimeFormat;
@@ -122,9 +122,9 @@ private void handleAllPageFound() {
122122
private void initListener() {
123123
Supplier<Phase> phaseSupplier = this.linearPhaseSeries::getCurrentPhase;
124124
var manager = MinecraftServer.getGlobalEventHandler();
125-
manager.addListener(GameMapLoadedEvent.class, event -> {
126-
this.pageProvider.loadPageData(event.gameMap().getPageFaces());
127-
});
125+
manager.addListener(GameMapLoadedEvent.class, event ->
126+
this.pageProvider.loadPageData(event.gameMap().getPageFaces())
127+
);
128128
manager.addListener(PlayerSpawnEvent.class, new PlayerSpawnListener(player -> this.mapProvider.teleportToSpawn(player, false), phaseSupplier));
129129
PlayerQuitListener quitListener = new PlayerQuitListener(phaseSupplier, teamService, this.staminaService::forceStopSlenderBar, this.gameConfig.minPlayers());
130130
manager.addListener(PlayerDisconnectEvent.class, quitListener);
@@ -146,6 +146,7 @@ private void registerGameListener() {
146146
SlenderBarTrigger trigger = new SlenderBarTrigger(this.staminaService::getSlenderBar, this::triggerViewRuleUpdate);
147147
new SlenderItemListener(trigger, manager);
148148
manager.addListener(GameFinishEvent.class, new GameFinishListener());
149+
manager.addListener(GameStartEvent.class, new GameStartListener(this.teamService, this.ambientProvider, this.staminaService, this.pageProvider));
149150
manager.addListener(PlayerDeathEvent.class, new PlayerDeathListener(phaseSupplier, this.teamService));
150151
manager.addListener(PlayerEntityInteractEvent.class, new PlayerPageInteractListener(this.pageProvider));
151152
manager.addListener(PageEvent.class, new GamePageListener(this.pageProvider));
@@ -171,7 +172,7 @@ private void initPhases() {
171172
LobbyPhase lobbyPhase = new LobbyPhase(gameMapLoader, staminaInitializer, this.gameConfig.lobbyTime(), this.gameConfig.minPlayers());
172173
this.linearPhaseSeries.add(lobbyPhase);
173174
this.linearPhaseSeries.add(new WaitingPhase(this.view, instanceSwitch, teamInitializer));
174-
this.linearPhaseSeries.add(new GamePhase(this.view, this::triggerGameStart, this::finishGame, this.gameConfig.gameTime()));
175+
this.linearPhaseSeries.add(new GamePhase(this.view, this::finishGame, this.gameConfig.gameTime()));
175176
this.linearPhaseSeries.add(new RestartPhase());
176177
}
177178

@@ -191,29 +192,6 @@ private void finishGame() {
191192
);
192193
}
193194

194-
private void triggerGameStart() {
195-
var slenderPlayer = this.teamService.getTeams().get(Helper.SLENDER_ID).getPlayers().stream().findFirst().get();
196-
slenderPlayer.setTag(Tags.HIDDEN, (byte) 1);
197-
slenderPlayer.sendMessage(Messages.SLENDER_JOIN_PART);
198-
Items.setSlenderEye(slenderPlayer);
199-
this.staminaService.start();
200-
this.pageProvider.spawn();
201-
this.ambientProvider.startTask();
202-
var message = Messages.getSurvivorJoinMessage(String.valueOf(this.pageProvider.getMaxPageAmount()));
203-
this.teamService.getTeams().get(Helper.SURVIVOR_ID).getPlayers().forEach(player -> {
204-
player.sendMessage(message);
205-
player.setTag(Tags.HIDDEN, (byte) 0);
206-
});
207-
TeamHelper.updateTabList(this.teamService);
208-
PacketSendingUtils.broadcastPlayPacket(slenderPlayer.getMetadataPacket());
209-
MinecraftServer.getConnectionManager().getOnlinePlayers().stream().filter(p -> !p.getUuid().equals(slenderPlayer.getUuid())).forEach(p -> {
210-
slenderPlayer.updateOldViewer(p);
211-
});
212-
GameMapProvider gameMapProvider = (GameMapProvider) this.mapProvider;
213-
MinecraftServer.getConnectionManager().getOnlinePlayers().forEach(player -> player.setRespawnPoint(gameMapProvider.getActiveMap().getSpawn()));
214-
PacketSendingUtils.broadcastPlayPacket(slenderPlayer.getMetadataPacket());
215-
}
216-
217195
private void triggerViewRuleUpdate(@NotNull Player player) {
218196
ViewRuleUpdater.updateViewer(player, this.teamService.getTeams().get(Helper.SURVIVOR_ID));
219197
}

game/src/main/java/net/onelitefeather/cygnus/phase/GamePhase.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package net.onelitefeather.cygnus.phase;
22

3+
import net.minestom.server.event.EventDispatcher;
4+
import net.onelitefeather.cygnus.event.GameStartEvent;
35
import net.theevilreaper.xerus.api.phase.TickDirection;
46
import net.theevilreaper.xerus.api.phase.TimedPhase;
57
import net.minestom.server.MinecraftServer;
@@ -20,19 +22,16 @@
2022
public final class GamePhase extends TimedPhase {
2123

2224
private final GameView gameView;
23-
private final Runnable startRunnable;
2425
private @Nullable GameFinishEvent finishEvent;
2526

2627
/**
2728
* Creates a new instance from the {@link GamePhase}.
2829
*
2930
* @param gameView the view to update
30-
* @param startRunnable the runnable to execute on start
3131
* @param endRunnable the runnable to execute on end
3232
*/
3333
public GamePhase(
3434
GameView gameView,
35-
Runnable startRunnable,
3635
Runnable endRunnable,
3736
int gameTime
3837
) {
@@ -41,7 +40,6 @@ public GamePhase(
4140
this.setTickDirection(TickDirection.DOWN);
4241
this.setEndTicks(0);
4342
this.gameView = gameView;
44-
this.startRunnable = startRunnable;
4543
this.setFinishedCallback(endRunnable);
4644
}
4745

@@ -59,7 +57,7 @@ public void setFinishEvent(GameFinishEvent finishEvent) {
5957
public void onStart() {
6058
super.onStart();
6159
addListener(PlayerTickEvent.class, new CygnusPlayerTickListener());
62-
this.startRunnable.run();
60+
EventDispatcher.call(new GameStartEvent());
6361
}
6462

6563
@Override

0 commit comments

Comments
 (0)