Skip to content

Commit 3f7da31

Browse files
committed
feat(game): add start event and listener implementation
1 parent 4283507 commit 3f7da31

2 files changed

Lines changed: 60 additions & 0 deletions

File tree

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package net.onelitefeather.cygnus.event;
2+
3+
import net.minestom.server.event.Event;
4+
5+
public class GameStartEvent implements Event {
6+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package net.onelitefeather.cygnus.listener.game;
2+
3+
import net.minestom.server.MinecraftServer;
4+
import net.minestom.server.utils.PacketSendingUtils;
5+
import net.onelitefeather.cygnus.ambient.AmbientProvider;
6+
import net.onelitefeather.cygnus.common.Messages;
7+
import net.onelitefeather.cygnus.common.Tags;
8+
import net.onelitefeather.cygnus.common.page.PageProvider;
9+
import net.onelitefeather.cygnus.common.util.Helper;
10+
import net.onelitefeather.cygnus.event.GameStartEvent;
11+
import net.onelitefeather.cygnus.stamina.StaminaService;
12+
import net.onelitefeather.cygnus.utils.Items;
13+
import net.onelitefeather.cygnus.utils.TeamHelper;
14+
import net.theevilreaper.xerus.api.team.TeamService;
15+
16+
import java.util.function.Consumer;
17+
18+
public final class GameStartListener implements Consumer<GameStartEvent> {
19+
20+
private final TeamService teamService;
21+
private final AmbientProvider ambientProvider;
22+
private final StaminaService staminaService;
23+
private final PageProvider pageProvider;
24+
25+
public GameStartListener(TeamService teamService, AmbientProvider ambientProvider, StaminaService staminaService, PageProvider pageProvider) {
26+
this.teamService = teamService;
27+
this.ambientProvider = ambientProvider;
28+
this.staminaService = staminaService;
29+
this.pageProvider = pageProvider;
30+
}
31+
32+
@Override
33+
public void accept(GameStartEvent event) {
34+
var slenderPlayer = this.teamService.getTeams().get(Helper.SLENDER_ID).getPlayers().stream().findFirst().get();
35+
slenderPlayer.setTag(Tags.HIDDEN, (byte) 1);
36+
slenderPlayer.sendMessage(Messages.SLENDER_JOIN_PART);
37+
Items.setSlenderEye(slenderPlayer);
38+
this.staminaService.start();
39+
this.pageProvider.spawn();
40+
this.ambientProvider.startTask();
41+
var message = Messages.getSurvivorJoinMessage(String.valueOf(this.pageProvider.getMaxPageAmount()));
42+
this.teamService.getTeams().get(Helper.SURVIVOR_ID).getPlayers().forEach(player -> {
43+
player.sendMessage(message);
44+
player.setTag(Tags.HIDDEN, (byte) 0);
45+
});
46+
TeamHelper.updateTabList(this.teamService);
47+
PacketSendingUtils.broadcastPlayPacket(slenderPlayer.getMetadataPacket());
48+
MinecraftServer.getConnectionManager().getOnlinePlayers()
49+
.stream()
50+
.filter(p -> !p.equals(slenderPlayer))
51+
.forEach(slenderPlayer::updateOldViewer);
52+
PacketSendingUtils.broadcastPlayPacket(slenderPlayer.getMetadataPacket());
53+
}
54+
}

0 commit comments

Comments
 (0)