dang things r rlly starting to get blurry i think its wraps for 2 day
This commit is contained in:
parent
24e267b31b
commit
049b5da27c
|
@ -5,9 +5,13 @@ package xyz.twovb.sgm.games;
|
|||
*/
|
||||
|
||||
import lombok.Getter;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.WorldCreator;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import xyz.twovb.sgm.SGM;
|
||||
import xyz.twovb.sgm.levels.LevelManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
@ -43,11 +47,20 @@ public class GameManager {
|
|||
return false;
|
||||
}
|
||||
|
||||
public void createGame(Minigame game, CommandSender owner) {
|
||||
game.init(owner);
|
||||
public void createGame(Minigame game, CommandSender owner, String level) {
|
||||
// World world = createGameWorld(level);
|
||||
game.init(owner, level);
|
||||
activeGames.put(game.getGameId(), game);
|
||||
}
|
||||
|
||||
// private World createGameWorld(String name) {
|
||||
// WorldCreator wc = new WorldCreator(LevelManager.path + name, new NamespacedKey(SGM.getInstance(), name + "-" + UUID.randomUUID()));
|
||||
// World world = wc.createWorld();
|
||||
// if (world == null) return null;
|
||||
// world.setAutoSave(false);
|
||||
// return world;
|
||||
// }
|
||||
|
||||
public void addPlayerToGame(Player player, UUID gameId) {
|
||||
Minigame game = findGame(gameId);
|
||||
if (game.getState() == Minigame.GameState.READY && !game.getPlayers().contains(player) && !isInGame(player)) {
|
||||
|
@ -64,7 +77,7 @@ public class GameManager {
|
|||
registeredGames.add(game.getName().toLowerCase());
|
||||
SGM.getInstance().getCLogger().log("Registered game " + game.getName());
|
||||
SGM.getInstance().getCLogger().log(registeredGames);
|
||||
registeredGames.add("ctb");
|
||||
// registeredGames.add("ctb");
|
||||
}
|
||||
|
||||
}
|
|
@ -4,9 +4,14 @@ package xyz.twovb.sgm.games;
|
|||
* Created by 2vb - 4/6/2024
|
||||
*/
|
||||
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.WorldCreator;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Listener;
|
||||
import xyz.twovb.sgm.SGM;
|
||||
import xyz.twovb.sgm.levels.LevelManager;
|
||||
import xyz.twovb.toolbox.api.CustomPlayer;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -14,7 +19,7 @@ import java.util.UUID;
|
|||
|
||||
public interface Minigame extends Listener {
|
||||
|
||||
void init(CommandSender owner);
|
||||
void init(CommandSender owner, String world);
|
||||
|
||||
void start();
|
||||
|
||||
|
@ -43,6 +48,14 @@ public interface Minigame extends Listener {
|
|||
}
|
||||
}
|
||||
|
||||
default World createGameWorld(String name) {
|
||||
WorldCreator wc = new WorldCreator(LevelManager.path + name, new NamespacedKey(SGM.getInstance(), name + "-" + UUID.randomUUID()));
|
||||
World world = wc.createWorld();
|
||||
if (world == null) return null;
|
||||
world.setAutoSave(false);
|
||||
return world;
|
||||
}
|
||||
|
||||
enum GameState {
|
||||
PRESTART, READY, STARTED, ENDING
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ package xyz.twovb.sgm.games.impl;
|
|||
*/
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
|
@ -22,9 +23,10 @@ public class TestGame implements Minigame {
|
|||
|
||||
final static String name = "TestGame";
|
||||
private final UUID uuid;
|
||||
private final List<Player> players;
|
||||
private World gameWorld;
|
||||
private CommandSender owner;
|
||||
private GameState state;
|
||||
private final List<Player> players;
|
||||
|
||||
public TestGame() {
|
||||
this.uuid = UUID.randomUUID();
|
||||
|
@ -32,10 +34,11 @@ public class TestGame implements Minigame {
|
|||
this.players = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void init(CommandSender owner) {
|
||||
public void init(CommandSender owner, String world) {
|
||||
// Perform initialization logic here
|
||||
Bukkit.getPluginManager().registerEvents(this, SGM.getInstance());
|
||||
this.owner = owner;
|
||||
gameWorld = createGameWorld(world);
|
||||
state = GameState.READY;
|
||||
owner.sendMessage("A new " + name + " instance with ID " + uuid + " has been created and is now ready!");
|
||||
}
|
||||
|
@ -68,6 +71,7 @@ public class TestGame implements Minigame {
|
|||
@Override
|
||||
public void addPlayer(Player player) {
|
||||
players.add(player);
|
||||
player.teleport(gameWorld.getSpawnLocation());
|
||||
sendMessageToAllPlayers(player.getName() + " has joined the game!");
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ public class LevelManager {
|
|||
|
||||
private static void loadWorld(String worldName) {
|
||||
// Check if the world is already loaded
|
||||
if (Bukkit.getWorld(worldName) != null) {
|
||||
if (Bukkit.getWorld(new NamespacedKey(SGM.getInstance(), "level_" + worldName)) != null) {
|
||||
SGM.getInstance().getCLogger().log("World " + worldName + " is already loaded.");
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user