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 lombok.Getter;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.WorldCreator;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import xyz.twovb.sgm.SGM;
|
import xyz.twovb.sgm.SGM;
|
||||||
|
import xyz.twovb.sgm.levels.LevelManager;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -43,11 +47,20 @@ public class GameManager {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createGame(Minigame game, CommandSender owner) {
|
public void createGame(Minigame game, CommandSender owner, String level) {
|
||||||
game.init(owner);
|
// World world = createGameWorld(level);
|
||||||
|
game.init(owner, level);
|
||||||
activeGames.put(game.getGameId(), game);
|
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) {
|
public void addPlayerToGame(Player player, UUID gameId) {
|
||||||
Minigame game = findGame(gameId);
|
Minigame game = findGame(gameId);
|
||||||
if (game.getState() == Minigame.GameState.READY && !game.getPlayers().contains(player) && !isInGame(player)) {
|
if (game.getState() == Minigame.GameState.READY && !game.getPlayers().contains(player) && !isInGame(player)) {
|
||||||
|
@ -64,7 +77,7 @@ public class GameManager {
|
||||||
registeredGames.add(game.getName().toLowerCase());
|
registeredGames.add(game.getName().toLowerCase());
|
||||||
SGM.getInstance().getCLogger().log("Registered game " + game.getName());
|
SGM.getInstance().getCLogger().log("Registered game " + game.getName());
|
||||||
SGM.getInstance().getCLogger().log(registeredGames);
|
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
|
* 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.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
import xyz.twovb.sgm.SGM;
|
||||||
|
import xyz.twovb.sgm.levels.LevelManager;
|
||||||
import xyz.twovb.toolbox.api.CustomPlayer;
|
import xyz.twovb.toolbox.api.CustomPlayer;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -14,7 +19,7 @@ import java.util.UUID;
|
||||||
|
|
||||||
public interface Minigame extends Listener {
|
public interface Minigame extends Listener {
|
||||||
|
|
||||||
void init(CommandSender owner);
|
void init(CommandSender owner, String world);
|
||||||
|
|
||||||
void start();
|
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 {
|
enum GameState {
|
||||||
PRESTART, READY, STARTED, ENDING
|
PRESTART, READY, STARTED, ENDING
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ package xyz.twovb.sgm.games.impl;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
@ -22,9 +23,10 @@ public class TestGame implements Minigame {
|
||||||
|
|
||||||
final static String name = "TestGame";
|
final static String name = "TestGame";
|
||||||
private final UUID uuid;
|
private final UUID uuid;
|
||||||
|
private final List<Player> players;
|
||||||
|
private World gameWorld;
|
||||||
private CommandSender owner;
|
private CommandSender owner;
|
||||||
private GameState state;
|
private GameState state;
|
||||||
private final List<Player> players;
|
|
||||||
|
|
||||||
public TestGame() {
|
public TestGame() {
|
||||||
this.uuid = UUID.randomUUID();
|
this.uuid = UUID.randomUUID();
|
||||||
|
@ -32,10 +34,11 @@ public class TestGame implements Minigame {
|
||||||
this.players = new ArrayList<>();
|
this.players = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init(CommandSender owner) {
|
public void init(CommandSender owner, String world) {
|
||||||
// Perform initialization logic here
|
// Perform initialization logic here
|
||||||
Bukkit.getPluginManager().registerEvents(this, SGM.getInstance());
|
Bukkit.getPluginManager().registerEvents(this, SGM.getInstance());
|
||||||
this.owner = owner;
|
this.owner = owner;
|
||||||
|
gameWorld = createGameWorld(world);
|
||||||
state = GameState.READY;
|
state = GameState.READY;
|
||||||
owner.sendMessage("A new " + name + " instance with ID " + uuid + " has been created and is now 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
|
@Override
|
||||||
public void addPlayer(Player player) {
|
public void addPlayer(Player player) {
|
||||||
players.add(player);
|
players.add(player);
|
||||||
|
player.teleport(gameWorld.getSpawnLocation());
|
||||||
sendMessageToAllPlayers(player.getName() + " has joined the game!");
|
sendMessageToAllPlayers(player.getName() + " has joined the game!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ public class LevelManager {
|
||||||
|
|
||||||
private static void loadWorld(String worldName) {
|
private static void loadWorld(String worldName) {
|
||||||
// Check if the world is already loaded
|
// 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.");
|
SGM.getInstance().getCLogger().log("World " + worldName + " is already loaded.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user