11package 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 ;
45import net .onelitefeather .cygnus .map .GameMapProvider ;
56import net .onelitefeather .cygnus .map .event .GameMapLoadedEvent ;
6- import net .onelitefeather .cygnus .utils .Items ;
77import net .theevilreaper .aves .map .provider .AbstractMapProvider ;
88import net .theevilreaper .aves .util .Strings ;
99import 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 }
0 commit comments