From b82cdb3a4b31e8a94408836358754fb34a97c9f4 Mon Sep 17 00:00:00 2001 From: Andus Date: Mon, 12 Aug 2024 02:09:21 +0200 Subject: [PATCH] The game is starting as it should - Fully working Queue system - Fully working game (for now with one color) - TODO: Add check for yellow (Is player under a block) - TODO: Check if there are still alive players, if not, end the game early - TO FIX: Yellow - while check is used to check if players have adventure gamemode, it should be changed (server crashes after too many attempts) --- server/worlds/game.polar | Bin 0 -> 52965 bytes server/worlds/lobby.polar | Bin 0 -> 65509 bytes src/main/java/dev/cfox/gamejam/Server.java | 11 +++ .../cfox/gamejam/game/classes/GameLobby.java | 36 ++++--- .../gamejam/game/commands/QueueCommand.java | 12 +++ .../game/managers/ConversionManager.java | 33 +++++++ .../gamejam/game/managers/GameManager.java | 40 ++++++-- .../gamejam/game/managers/QueueManager.java | 15 ++- .../cfox/gamejam/game/phases/PhaseLogic.java | 92 +++++++++++++++--- .../java/dev/cfox/gamejam/utils/Misc.java | 23 +++++ .../dev/cfox/gamejam/utils/classes/NPC.java | 2 + .../cfox/gamejam/utils/conversion/Polar.java | 7 -- .../cfox/gamejam/utils/events/MiscEvents.java | 25 +++++ .../gamejam/utils/events/StartEvents.java | 25 ++--- 14 files changed, 263 insertions(+), 58 deletions(-) create mode 100644 server/worlds/game.polar create mode 100644 server/worlds/lobby.polar create mode 100644 src/main/java/dev/cfox/gamejam/game/managers/ConversionManager.java delete mode 100644 src/main/java/dev/cfox/gamejam/utils/conversion/Polar.java diff --git a/server/worlds/game.polar b/server/worlds/game.polar new file mode 100644 index 0000000000000000000000000000000000000000..309bf8aa2bf87130eab0f4542060069a05d04e3f GIT binary patch literal 52965 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 MC_T(ST(%0}0@VFD9{>OV literal 0 HcmV?d00001 diff --git a/server/worlds/lobby.polar b/server/worlds/lobby.polar new file mode 100644 index 0000000000000000000000000000000000000000..819f7a428b508a8611020affdcffe69aa74bed9d GIT binary patch literal 65509 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 literal 0 HcmV?d00001 diff --git a/src/main/java/dev/cfox/gamejam/Server.java b/src/main/java/dev/cfox/gamejam/Server.java index 12b3bc7..9502cfa 100644 --- a/src/main/java/dev/cfox/gamejam/Server.java +++ b/src/main/java/dev/cfox/gamejam/Server.java @@ -1,9 +1,12 @@ package dev.cfox.gamejam; +import dev.cfox.gamejam.game.commands.QueueCommand; import dev.cfox.gamejam.utils.config.Checks; import dev.cfox.gamejam.utils.config.Settings; +import dev.cfox.gamejam.utils.events.MiscEvents; import dev.cfox.gamejam.utils.events.StartEvents; import net.minestom.server.MinecraftServer; +import net.minestom.server.command.CommandManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,9 +28,17 @@ public class Server { logger.info("Startup Events (Chat, Spawn, etc.)"); StartEvents.registerChat(); StartEvents.handleSpawn(); + logger.info("Miscellaneous Events (Game Listeners, Commands, etc.)"); + MiscEvents.register(); + registerCommands(); // Server Start server.start(Settings.getIP(), Settings.getPort()); logger.info("Server Started at " + Settings.getIP() + ":" + Settings.getPort() + " (MC: " + MinecraftServer.VERSION_NAME + ")"); } + + public static void registerCommands() { + CommandManager commandManager = MinecraftServer.getCommandManager(); + commandManager.register(new QueueCommand()); + } } \ No newline at end of file diff --git a/src/main/java/dev/cfox/gamejam/game/classes/GameLobby.java b/src/main/java/dev/cfox/gamejam/game/classes/GameLobby.java index 3de5a18..72c8413 100644 --- a/src/main/java/dev/cfox/gamejam/game/classes/GameLobby.java +++ b/src/main/java/dev/cfox/gamejam/game/classes/GameLobby.java @@ -1,9 +1,11 @@ package dev.cfox.gamejam.game.classes; import dev.cfox.gamejam.game.managers.GameManager; +import dev.cfox.gamejam.game.managers.QueueManager; import dev.cfox.gamejam.game.phases.Phase; import dev.cfox.gamejam.utils.Misc; import dev.cfox.gamejam.utils.classes.Randomized; +import net.kyori.adventure.sound.Sound; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextDecoration; @@ -14,6 +16,9 @@ import net.minestom.server.entity.Player; import net.minestom.server.instance.Instance; import net.minestom.server.network.packet.server.play.TeamsPacket; import net.minestom.server.scoreboard.Team; +import net.minestom.server.timer.Task; +import net.minestom.server.timer.TaskSchedule; +import net.minestom.server.utils.NamespaceID; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -26,6 +31,7 @@ public class GameLobby { Team team = MinecraftServer.getTeamManager().createTeam("team_" + getName()); private final ArrayList eliminated = new ArrayList<>(); private Phase phase; + private Task latestTask; private Instance instance; private String name = ""; @@ -43,18 +49,19 @@ public class GameLobby { logger.debug("Player " + player.getUsername() + " got eliminated (GameLobby: " + name + ")"); sendMessage(Randomized.elimination(player)); player.sendMessage(Component.text("You've got eliminated!", NamedTextColor.RED, TextDecoration.BOLD)); + player.playSound(Sound.sound(NamespaceID.from("minecraft:entity.ender_dragon.growl"), Sound.Source.PLAYER, 0.5f, 1.0f)); + MinecraftServer.getSchedulerManager().buildTask(() -> { + player.playSound(Sound.sound(NamespaceID.from("minecraft:entity.wither.spawn"), Sound.Source.PLAYER, 0.5f, 1.0f)); + }).delay(TaskSchedule.millis(10)).schedule(); + MinecraftServer.getSchedulerManager().buildTask(() -> { + player.playSound(Sound.sound(NamespaceID.from("minecraft:item.totem.use"), Sound.Source.PLAYER, 0.5f, 1.0f)); + }).delay(TaskSchedule.millis(20)).schedule(); player.setGameMode(GameMode.SPECTATOR); } } - public ArrayList getAllPlayers() { - return players; - } - public ArrayList getPlayers() { - ArrayList playersInGame = new ArrayList<>(players); - playersInGame.removeIf(uuid -> getEliminated().contains(uuid)); - return playersInGame; + return players; } public ArrayList getEliminated() { @@ -64,19 +71,13 @@ public class GameLobby { public void setPhase(Phase newPhase) { phase = newPhase; } - public Phase getPhase() { return phase; } - public void setName(String name) { - this.name = name; - } - public String getName() { return name; } - public void genName() { UUID uuid = UUID.randomUUID(); if (!GameManager.gameLobbies.containsKey(uuid.toString())) { @@ -91,11 +92,9 @@ public class GameLobby { players.forEach(uuid -> Misc.getPlayer(uuid).setInstance(instance).thenRun(() -> Misc.getPlayer(uuid).teleport(pos))); } - public Instance getInstance() { return instance; } - public void teleport(Pos pos) { players.forEach(uuid -> Misc.getPlayer(uuid).teleport(pos)); } @@ -103,4 +102,11 @@ public class GameLobby { public void sendMessage(Component component) { players.forEach(uuid -> Misc.getPlayer(uuid).sendMessage(component)); } + + public void setTask(Task task) { + latestTask = task; + } + public Task getTask() { + return latestTask; + } } diff --git a/src/main/java/dev/cfox/gamejam/game/commands/QueueCommand.java b/src/main/java/dev/cfox/gamejam/game/commands/QueueCommand.java index 936207b..0555632 100644 --- a/src/main/java/dev/cfox/gamejam/game/commands/QueueCommand.java +++ b/src/main/java/dev/cfox/gamejam/game/commands/QueueCommand.java @@ -1,9 +1,19 @@ package dev.cfox.gamejam.game.commands; +import dev.cfox.gamejam.game.managers.GameManager; import dev.cfox.gamejam.game.managers.QueueManager; +import net.kyori.adventure.sound.Sound; +import net.minestom.server.MinecraftServer; import net.minestom.server.command.builder.Command; import net.minestom.server.command.builder.arguments.ArgumentType; +import net.minestom.server.entity.Entity; +import net.minestom.server.entity.EntityType; import net.minestom.server.entity.Player; +import net.minestom.server.sound.SoundEvent; +import net.minestom.server.timer.TaskSchedule; +import net.minestom.server.utils.NamespaceID; + +import java.util.concurrent.TimeUnit; public class QueueCommand extends Command { public QueueCommand() { @@ -15,6 +25,8 @@ public class QueueCommand extends Command { QueueManager.joinPlayer(player); } else if (arg1.equals("leave")) { QueueManager.removePlayer(player); + } else if (arg1.equals("force")) { + GameManager.startGame(QueueManager.getPlayerQueue(player)); } } }), ArgumentType.String("arg1")); diff --git a/src/main/java/dev/cfox/gamejam/game/managers/ConversionManager.java b/src/main/java/dev/cfox/gamejam/game/managers/ConversionManager.java new file mode 100644 index 0000000..497182e --- /dev/null +++ b/src/main/java/dev/cfox/gamejam/game/managers/ConversionManager.java @@ -0,0 +1,33 @@ +package dev.cfox.gamejam.game.managers; + +import dev.cfox.gamejam.game.classes.GameLobby; +import dev.cfox.gamejam.game.classes.GameQueue; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import net.minestom.server.coordinate.Pos; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ConversionManager { + private static final Logger logger = LoggerFactory.getLogger(ConversionManager.class); + public static GameLobby toGame(GameQueue queue) { + GameLobby game = new GameLobby(); + game.setPlayers(queue.getPlayers()); + game.genName(); + GameManager.gameLobbies.put(game.getName(), game); + logger.debug("New GameLobby created: " + game.getName()); + + return game; + } + + public static void fromGame(GameLobby game) { + if (!GameManager.gameLobbies.containsKey(game.getName())) { + return; + } + + logger.debug("GameLobby removed: " + game.getName()); + game.sendMessage(Component.text("Game ended!", NamedTextColor.RED)); + game.setInstance(QueueManager.lobbyInstance, new Pos(0, 60, 0, 180, 0)); + GameManager.gameLobbies.remove(game.getName()); + } +} diff --git a/src/main/java/dev/cfox/gamejam/game/managers/GameManager.java b/src/main/java/dev/cfox/gamejam/game/managers/GameManager.java index ee6436a..12eacba 100644 --- a/src/main/java/dev/cfox/gamejam/game/managers/GameManager.java +++ b/src/main/java/dev/cfox/gamejam/game/managers/GameManager.java @@ -2,21 +2,35 @@ package dev.cfox.gamejam.game.managers; import dev.cfox.gamejam.game.classes.GameLobby; import dev.cfox.gamejam.game.classes.GameQueue; +import dev.cfox.gamejam.game.phases.PhaseLogic; +import dev.cfox.gamejam.utils.Misc; +import dev.cfox.gamejam.utils.events.StartEvents; +import net.hollowcube.polar.PolarLoader; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextDecoration; import net.kyori.adventure.title.Title; +import net.minestom.server.MinecraftServer; +import net.minestom.server.coordinate.Pos; +import net.minestom.server.entity.GameMode; import net.minestom.server.entity.Player; import net.minestom.server.instance.Instance; +import net.minestom.server.instance.InstanceContainer; +import net.minestom.server.instance.InstanceManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.io.IOException; +import java.nio.file.Path; import java.util.*; public class GameManager { public static Map gameLobbies = new HashMap<>(); + private static final Logger logger = LoggerFactory.getLogger(GameManager.class); public static boolean isPlayerInGame(Player player) { for (GameLobby lobby : gameLobbies.values()) { - if (lobby.getAllPlayers().contains(player.getUuid())) { + if (lobby.getPlayers().contains(player.getUuid())) { return true; } } @@ -25,14 +39,15 @@ public class GameManager { public static void startGame(GameQueue queue) { queue.sendMessage(Component.text("The game is starting!", NamedTextColor.GREEN, TextDecoration.BOLD)); -// String game = LobbyConverter.toGame(queue); + GameLobby game = ConversionManager.toGame(queue); + startGame(game); QueueManager.removeQueue(queue); } public static GameLobby getPlayerGame(Player player) { if (!gameLobbies.isEmpty()) { for (GameLobby gameLobby : gameLobbies.values()) { - if (gameLobby.getAllPlayers().contains(player.getUuid())) { + if (gameLobby.getPlayers().contains(player.getUuid())) { return gameLobby; } } @@ -44,12 +59,21 @@ public class GameManager { return gameLobbies.get(lobby); } - public static int getPlayersInGame() { - int totalPlayers = 0; - for (GameLobby gameLobby : gameLobbies.values()) { - totalPlayers += gameLobby.getAllPlayers().size(); + public static void startGame(GameLobby game) { + logger.debug("Creating Lobby Instance"); + InstanceManager instanceManager = MinecraftServer.getInstanceManager(); + InstanceContainer instanceContainer = instanceManager.createInstanceContainer(); + try { + instanceContainer.setChunkLoader(new PolarLoader(Path.of("worlds/game.polar"))); + } catch (IOException e) { + logger.error(e.getMessage()); } - return totalPlayers; + + game.setInstance(instanceContainer, new Pos(0, 66, 0)); + for (UUID uuid : game.getPlayers()) { + Misc.getPlayer(uuid).setGameMode(GameMode.ADVENTURE); + } + PhaseLogic.random(game); } public static void sendEndTitles(GameLobby game) { diff --git a/src/main/java/dev/cfox/gamejam/game/managers/QueueManager.java b/src/main/java/dev/cfox/gamejam/game/managers/QueueManager.java index f026332..a25e1b6 100644 --- a/src/main/java/dev/cfox/gamejam/game/managers/QueueManager.java +++ b/src/main/java/dev/cfox/gamejam/game/managers/QueueManager.java @@ -7,6 +7,7 @@ import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.title.Title; import net.minestom.server.MinecraftServer; import net.minestom.server.entity.Player; +import net.minestom.server.instance.Instance; import net.minestom.server.timer.Task; import net.minestom.server.timer.TaskSchedule; @@ -17,16 +18,19 @@ import java.util.List; public class QueueManager { public static List queues = new ArrayList<>(); private static final HashMap countdownTasks = new HashMap<>(); + private static int minPlayers = 6; + private static int maxPlayers = 10; + public static Instance lobbyInstance; public static void joinPlayer(Player player) { boolean queueFound = false; if (!queues.isEmpty()) { for (GameQueue queue : queues) { - if (queue.getPlayers().size() < 10) { + if (queue.getPlayers().size() < maxPlayers) { queue.addPlayer(player.getUuid()); queueFound = true; - if (queue.getPlayers().size() >= 6) { + if (queue.getPlayers().size() >= minPlayers) { startCountdown(queue); } break; @@ -36,15 +40,18 @@ public class QueueManager { if (!queueFound) { createQueue(player); - player.sendMessage(Component.text("No queues were found! A new queue has been created just for you.", NamedTextColor.GREEN)); } + + player.sendMessage(Component.text("The queue starts the countdown from §e6 players.", NamedTextColor.GRAY)); + player.sendMessage(Component.text("One queue can hold up to §e10 players.", NamedTextColor.GRAY)); + player.sendMessage(Component.text("§e§lWaiting for too long? §rUse §a/queue force §rto start now.", NamedTextColor.GRAY)); } public static void removePlayer(Player player) { GameQueue queue = getPlayerQueue(player); if (queue != null) { queue.removePlayer(player.getUuid()); - if (queue.getPlayers().size() < 2) { + if (queue.getPlayers().size() < minPlayers) { stopCountdown(queue); } } diff --git a/src/main/java/dev/cfox/gamejam/game/phases/PhaseLogic.java b/src/main/java/dev/cfox/gamejam/game/phases/PhaseLogic.java index 8e79a49..ae10140 100644 --- a/src/main/java/dev/cfox/gamejam/game/phases/PhaseLogic.java +++ b/src/main/java/dev/cfox/gamejam/game/phases/PhaseLogic.java @@ -1,42 +1,108 @@ package dev.cfox.gamejam.game.phases; import dev.cfox.gamejam.game.classes.GameLobby; +import dev.cfox.gamejam.game.managers.ConversionManager; +import dev.cfox.gamejam.utils.Misc; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import net.minestom.server.MinecraftServer; +import net.minestom.server.entity.Entity; +import net.minestom.server.entity.EntityType; +import net.minestom.server.entity.GameMode; +import net.minestom.server.entity.Player; +import net.minestom.server.timer.SchedulerManager; +import net.minestom.server.timer.Task; +import net.minestom.server.timer.TaskSchedule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.time.Duration; +import java.util.List; import java.util.Random; +import java.util.UUID; public class PhaseLogic { private static final Logger logger = LoggerFactory.getLogger(PhaseLogic.class); + private static final SchedulerManager scheduler = MinecraftServer.getSchedulerManager(); + private static int phaseDuration = 30; // in seconds + private static int gameTime = 300; // 5 minutes in seconds public static void random(GameLobby game) { - Phase[] phases = Phase.values(); - int randomIndex = new Random().nextInt(phases.length); - Phase selectedPhase = phases[randomIndex]; - logger.info("Picking random color phase for GameLobby: " + game.getName()); - - switch (selectedPhase) { - case RED -> red(game); - case BLUE -> blue(game); - case GREEN -> green(game); - case YELLOW -> yellow(game); - case PURPLE -> purple(game); - } + Task task = scheduler.buildTask(() -> { + Phase[] phases = Phase.values(); + int randomIndex = new Random().nextInt(phases.length); + Phase selectedPhase = phases[randomIndex]; + if (game.getTask() != null) { + game.getTask().cancel(); + } + switch (selectedPhase) { + case RED -> red(game); + case BLUE -> blue(game); + case GREEN -> green(game); + case YELLOW -> yellow(game); + case PURPLE -> purple(game); + } + }).repeat(TaskSchedule.seconds(phaseDuration)).schedule(); + scheduler.buildTask(() -> { + ConversionManager.fromGame(game); + task.cancel(); + }).delay(TaskSchedule.seconds(gameTime)).schedule(); } public static void red(GameLobby game) { + logger.debug("Picked red phase for GameLobby: " + game.getName()); + game.setPhase(Phase.RED); + game.sendMessage(Component.text("New color picked! §cRED", NamedTextColor.GRAY)); + game.sendMessage(Component.text("BLAH BLAH BLAH BLAH", NamedTextColor.RED)); + Misc.showTitle(game.getInstance(), Component.text("■", NamedTextColor.RED), Component.text("Red", NamedTextColor.RED)); // Handle red phase logic } public static void blue(GameLobby game) { + logger.debug("Picked blue phase for GameLobby: " + game.getName()); + game.setPhase(Phase.BLUE); + game.sendMessage(Component.text("New color picked! §9BLUE", NamedTextColor.GRAY)); + game.sendMessage(Component.text("BLAH BLAH BLAH BLAH", NamedTextColor.BLUE)); + Misc.showTitle(game.getInstance(), Component.text("■", NamedTextColor.BLUE), Component.text("Blue", NamedTextColor.BLUE)); // Handle blue phase logic } public static void green(GameLobby game) { + logger.debug("Picked green phase for GameLobby: " + game.getName()); + game.setPhase(Phase.GREEN); + game.sendMessage(Component.text("New color picked! §aGREEN", NamedTextColor.GRAY)); + game.sendMessage(Component.text("BLAH BLAH BLAH BLAH", NamedTextColor.GREEN)); + Misc.showTitle(game.getInstance(), Component.text("■", NamedTextColor.GREEN), Component.text("Green", NamedTextColor.GREEN)); // Handle green phase logic } public static void yellow(GameLobby game) { - // Handle yellow phase logic + logger.debug("Picked yellow phase for GameLobby: " + game.getName()); + game.setPhase(Phase.YELLOW); + game.sendMessage(Component.text("New color picked! §eYELLOW", NamedTextColor.GRAY)); + game.sendMessage(Component.text("Thunder is coming! Find a place to hide!", NamedTextColor.YELLOW)); + Misc.showTitle(game.getInstance(), Component.text("■", NamedTextColor.YELLOW), Component.text("Yellow", NamedTextColor.YELLOW)); + scheduler.buildTask(() -> { + Task task = scheduler.buildTask(() -> { + List uuids = game.getPlayers(); + Random random = new Random(); + Player randomPlayer = null; + + while (randomPlayer == null || randomPlayer.getGameMode() != GameMode.ADVENTURE) { + randomPlayer = Misc.getPlayer(uuids.get(random.nextInt(uuids.size()))); + } + + Entity lightning = new Entity(EntityType.LIGHTNING_BOLT); + lightning.setInstance(randomPlayer.getInstance(), randomPlayer.getPosition()); + lightning.spawn(); + game.eliminate(randomPlayer); + }).repeat(Duration.ofSeconds(5)).schedule(); + game.setTask(task); + }).delay(Duration.ofSeconds(5)).schedule(); } public static void purple(GameLobby game) { + logger.debug("Picked purple phase for GameLobby: " + game.getName()); + game.setPhase(Phase.PURPLE); + game.sendMessage(Component.text("New color picked! §dPURPLE", NamedTextColor.GRAY)); + game.sendMessage(Component.text("BLAH BLAH BLAH BLAH", NamedTextColor.LIGHT_PURPLE)); + Misc.showTitle(game.getInstance(), Component.text("■", NamedTextColor.LIGHT_PURPLE), Component.text("Purple", NamedTextColor.LIGHT_PURPLE)); // Handle purple phase logic } } diff --git a/src/main/java/dev/cfox/gamejam/utils/Misc.java b/src/main/java/dev/cfox/gamejam/utils/Misc.java index d0aee0e..c471a05 100644 --- a/src/main/java/dev/cfox/gamejam/utils/Misc.java +++ b/src/main/java/dev/cfox/gamejam/utils/Misc.java @@ -3,8 +3,10 @@ package dev.cfox.gamejam.utils; import net.kyori.adventure.text.Component; import net.kyori.adventure.title.Title; import net.minestom.server.MinecraftServer; +import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Player; import net.minestom.server.instance.Instance; +import net.minestom.server.instance.block.Block; import java.util.UUID; @@ -18,4 +20,25 @@ public class Misc { player.showTitle(Title.title(title, subtitle)); // Send the title to each player } } + + public void replaceAirInRegion(Instance instance, Pos start, Pos end, Block newBlockType) { + int startX = (int) Math.min(start.x(), end.x()); + int startY = (int) Math.min(start.y(), end.y()); + int startZ = (int) Math.min(start.z(), end.z()); + + int endX = (int) Math.max(start.x(), end.x()); + int endY = (int) Math.max(start.y(), end.y()); + int endZ = (int) Math.max(start.z(), end.z()); + + for (int x = startX; x <= endX; x++) { + for (int y = startY; y <= endY; y++) { + for (int z = startZ; z <= endZ; z++) { + Pos pos = new Pos(x, y, z); + if (instance.getBlock(pos).compare(Block.AIR)) { + instance.setBlock(pos, newBlockType); + } + } + } + } + } } diff --git a/src/main/java/dev/cfox/gamejam/utils/classes/NPC.java b/src/main/java/dev/cfox/gamejam/utils/classes/NPC.java index 2549dd2..9dde142 100644 --- a/src/main/java/dev/cfox/gamejam/utils/classes/NPC.java +++ b/src/main/java/dev/cfox/gamejam/utils/classes/NPC.java @@ -1,5 +1,6 @@ package dev.cfox.gamejam.utils.classes; +import net.kyori.adventure.text.Component; import net.minestom.server.entity.*; import net.minestom.server.entity.metadata.PlayerMeta; import net.minestom.server.network.packet.server.play.EntityMetaDataPacket; @@ -21,6 +22,7 @@ public class NPC extends Entity { public NPC(@NotNull String username, @Nullable String skinTexture, @Nullable String skinSignature) { super(EntityType.PLAYER); this.username = username; + setCustomName(Component.text(username)); this.skinTexture = skinTexture; this.skinSignature = skinSignature; diff --git a/src/main/java/dev/cfox/gamejam/utils/conversion/Polar.java b/src/main/java/dev/cfox/gamejam/utils/conversion/Polar.java deleted file mode 100644 index 82f60de..0000000 --- a/src/main/java/dev/cfox/gamejam/utils/conversion/Polar.java +++ /dev/null @@ -1,7 +0,0 @@ -package dev.cfox.gamejam.utils.conversion; - -public class Polar { - public static void convertFolder(String folder) { - - } -} diff --git a/src/main/java/dev/cfox/gamejam/utils/events/MiscEvents.java b/src/main/java/dev/cfox/gamejam/utils/events/MiscEvents.java index cc21ec0..1881471 100644 --- a/src/main/java/dev/cfox/gamejam/utils/events/MiscEvents.java +++ b/src/main/java/dev/cfox/gamejam/utils/events/MiscEvents.java @@ -1,8 +1,15 @@ package dev.cfox.gamejam.utils.events; +import dev.cfox.gamejam.game.managers.GameManager; +import dev.cfox.gamejam.game.managers.QueueManager; +import dev.cfox.gamejam.game.phases.Phase; +import dev.cfox.gamejam.utils.classes.NPC; +import net.kyori.adventure.text.Component; import net.minestom.server.MinecraftServer; +import net.minestom.server.entity.Entity; import net.minestom.server.entity.Player; import net.minestom.server.event.GlobalEventHandler; +import net.minestom.server.event.entity.EntityAttackEvent; import net.minestom.server.event.player.PlayerMoveEvent; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,6 +22,24 @@ public class MiscEvents { logger.debug("Registering Misc Listeners"); globalEventHandler.addListener(PlayerMoveEvent.class, event -> { Player player = event.getPlayer(); + if (GameManager.isPlayerInGame(player)) { + Phase phase = GameManager.getPlayerGame(player).getPhase(); + + if (phase == Phase.YELLOW) { + + } + } + }); + + globalEventHandler.addListener(EntityAttackEvent.class, event -> { + Entity targeter = event.getEntity(); + Entity targeted = event.getTarget(); + + if (targeter instanceof Player player) { + if (targeted instanceof NPC npc && npc.getCustomName().equals(Component.text("Join the Queue"))) { + QueueManager.joinPlayer(player); + } + } }); } } diff --git a/src/main/java/dev/cfox/gamejam/utils/events/StartEvents.java b/src/main/java/dev/cfox/gamejam/utils/events/StartEvents.java index 5674062..0124f1a 100644 --- a/src/main/java/dev/cfox/gamejam/utils/events/StartEvents.java +++ b/src/main/java/dev/cfox/gamejam/utils/events/StartEvents.java @@ -3,11 +3,13 @@ package dev.cfox.gamejam.utils.events; import dev.cfox.gamejam.utils.Misc; import dev.cfox.gamejam.utils.classes.NPC; import dev.cfox.gamejam.utils.classes.Randomized; +import net.hollowcube.polar.PolarLoader; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.minimessage.MiniMessage; import net.minestom.server.MinecraftServer; import net.minestom.server.coordinate.Pos; +import net.minestom.server.entity.GameMode; import net.minestom.server.entity.Player; import net.minestom.server.event.GlobalEventHandler; import net.minestom.server.event.player.AsyncPlayerConfigurationEvent; @@ -18,6 +20,8 @@ import net.minestom.server.instance.block.Block; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.IOException; +import java.nio.file.Path; import java.time.Duration; public class StartEvents { @@ -44,35 +48,34 @@ public class StartEvents { InstanceContainer instanceContainer = createLobbyInstance(); globalEventHandler.addListener(AsyncPlayerConfigurationEvent.class, event -> { final Player player = event.getPlayer(); + player.setGameMode(GameMode.ADVENTURE); event.setSpawningInstance(instanceContainer); - player.setRespawnPoint(new Pos(0, 42, 0)); + player.setRespawnPoint(new Pos(0.5, 66, 0.5, 180, 0)); }); globalEventHandler.addListener(PlayerSpawnEvent.class, event -> { Player player = event.getPlayer(); if (event.isFirstSpawn()) { player.sendMessage(Component.text( - "§eClick on §ror §erun into §rthe Minestom NPC to §ajoin the queue!", NamedTextColor.GRAY)); - Misc.showTitle(player.getInstance(), Component.text("■", NamedTextColor.RED), Component.text("Red", NamedTextColor.RED)); + "§ePunch §rthe Minestom NPC to §ajoin the queue!", NamedTextColor.GRAY)); } }); } + public static InstanceContainer createLobbyInstance() { logger.debug("Creating Lobby Instance"); InstanceManager instanceManager = MinecraftServer.getInstanceManager(); InstanceContainer instanceContainer = instanceManager.createInstanceContainer(); -// try { -// instanceContainer.setChunkLoader(new PolarLoader(Path.of("worlds/lobby.polar"))); -// } catch (IOException e) { -// logger.error(e.getMessage()); -// } - instanceContainer.setGenerator(unit -> unit.modifier().fillHeight(0, 40, Block.GRASS_BLOCK)); - instanceContainer.setChunkSupplier(LightingChunk::new); + try { + instanceContainer.setChunkLoader(new PolarLoader(Path.of("worlds/lobby.polar"))); + } catch (IOException e) { + logger.error(e.getMessage()); + } NPC joinNPC = new NPC("Join the Queue", "ewogICJ0aW1lc3RhbXAiIDogMTY3MjE3MTU1MjU1OCwKICAicHJvZmlsZUlkIiA6ICJiNTAwOGEyMGJkY2U0YjJlOTU5NWZlNzY2MDlmYjUzNiIsCiAgInByb2ZpbGVOYW1lIiA6ICJNT1JJU3hTVE9QQkFOIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2RmZDIwOWU5ZTk2MGY4MDQ5ZDdlYWY0NTJmYzg1YmYwYmVjZjliMTUwYjQ2MzIwMTY2Mjg1YzdhYjEzMjMxN2UiCiAgICB9CiAgfQp9", "yWIH6gVDRhgd/HwVYpRT87NBHf+q9EgYs/CYqIwnz5xXR22k29c7MTnaYFvWukbwF1FhWNilAyYzagSn/7ScvOpYn0RtyTWk656cwjzFSbTsSFzRwUl5f4mu1EeunYh8v5cZH27KTfAI7a9Q7ylXz7NoAbvaw056thXa7jHhLhFdPECnziRTnv9jDRwpoN/4jblmdOz5NCLtynubf8hwIwm9od18tXy4+gsV3aXS5+1MirpWDizqdozb9mtwzML9NYwVNpO2bRB9KYJ91VUWqxjfTy/q0xFQ1paolq4pp3tgvLXw0y+rdwCsCgh39JA4MKvIIJShww5xbqo4oFBRDj+/BI3+Y154Ess1004vE+iTRdt+az0v4y+evnOQLgryEr/36QzZOndpSFqYfKPl1MeUeZe1u4VDQJcgyJImg2TZJbG2WOmmTySWSEPrHcYC6c3Y9rVnQ6Zi4NxTe4e6/ZuDQVm14fuSUPd4Ll7/aIDyumHupBMMbBEa9qCmuZJPT5iWVlIGfzA2Dg/kea4Jw9WudUmiCYngB56HZEivDPniIxeGSTRFHMR2FfTKnLkxb2LDOvD+CgDWyr8cGy4xnB2hwdY2n28cCAYI5axj0qzCpHMl8Y90e2rKfX7NsUvyivbAVRwAsd/bWkkJoZ4/QStFEjV//81iNbuUz/4lFQA="); - joinNPC.setInstance(instanceContainer, new Pos(0, 40, 0)); + joinNPC.setInstance(instanceContainer, new Pos(0.5, 66.5, -16.5)); return instanceContainer; }