From 57f28984516659d3837fd00ab0a4645e93e377d6 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Sun, 16 Feb 2025 00:13:05 +0100 Subject: [PATCH] Update OnPlayerOnlineStatus to assign a class to a joining player The constructor of OnPlayerOnlineStatus was updated to include WorldBorderApi, and its functionality now integrates FighterCreator for enhanced player handling. This change ensures proper application of a class and world border logic during player teleport and initialization. --- src/main/java/com/alttd/ctf/Main.java | 2 +- .../java/com/alttd/ctf/events/OnPlayerOnlineStatus.java | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/alttd/ctf/Main.java b/src/main/java/com/alttd/ctf/Main.java index 987422e..2662d83 100644 --- a/src/main/java/com/alttd/ctf/Main.java +++ b/src/main/java/com/alttd/ctf/Main.java @@ -89,7 +89,7 @@ public class Main extends JavaPlugin { pluginManager.registerEvents(new FlagTryCaptureEvent(flag), this); pluginManager.registerEvents(new OnPlayerDeath(gameManager, worldBorderApi, this, flag), this); pluginManager.registerEvents(new InventoryItemInteractionEvent(), this); - pluginManager.registerEvents(new OnPlayerOnlineStatus(gameManager, flag), this); + pluginManager.registerEvents(new OnPlayerOnlineStatus(gameManager, flag, worldBorderApi), this); pluginManager.registerEvents(new GUIListener(), this); } diff --git a/src/main/java/com/alttd/ctf/events/OnPlayerOnlineStatus.java b/src/main/java/com/alttd/ctf/events/OnPlayerOnlineStatus.java index ae7bccf..58521a1 100644 --- a/src/main/java/com/alttd/ctf/events/OnPlayerOnlineStatus.java +++ b/src/main/java/com/alttd/ctf/events/OnPlayerOnlineStatus.java @@ -5,8 +5,10 @@ import com.alttd.ctf.database.DiscordUserMapper; import com.alttd.ctf.flag.Flag; import com.alttd.ctf.game.GameManager; import com.alttd.ctf.game.GamePhase; +import com.alttd.ctf.game_class.creation.FighterCreator; import com.alttd.ctf.team.Team; import com.alttd.ctf.team.TeamPlayer; +import com.github.yannicklamprecht.worldborder.api.WorldBorderApi; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.exceptions.PersistenceException; import org.bukkit.attribute.Attribute; @@ -26,10 +28,12 @@ public class OnPlayerOnlineStatus implements Listener { private final GameManager gameManager; private final Flag flag; + private final WorldBorderApi worldBorderApi; - public OnPlayerOnlineStatus(GameManager gameManager, Flag flag) { + public OnPlayerOnlineStatus(GameManager gameManager, Flag flag, WorldBorderApi worldBorderApi) { this.gameManager = gameManager; this.flag = flag; + this.worldBorderApi = worldBorderApi; } @EventHandler @@ -61,7 +65,8 @@ public class OnPlayerOnlineStatus implements Listener { } else { teamPlayer = optionalTeamPlayer.get(); } - player.teleportAsync(teamPlayer.getTeam().getSpawnLocation()); + FighterCreator.createFighter(teamPlayer.getTeam().getColor()) + .apply(teamPlayer, worldBorderApi, gamePhase, true); } private void resetPlayer(Player player) {