testing if work
This commit is contained in:
parent
bce5b5a462
commit
eb8ac97572
|
@ -9,6 +9,7 @@ import org.bukkit.NamespacedKey;
|
|||
import org.bukkit.World;
|
||||
import org.bukkit.WorldCreator;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Listener;
|
||||
import xyz.twovb.sgm.SGM;
|
||||
|
@ -62,19 +63,13 @@ public interface Minigame extends Listener {
|
|||
if (world == null) return null;
|
||||
world.setAutoSave(false);
|
||||
return world;
|
||||
// FileUtils.copyFile(new File(levelDir + "/sgm.yml"), tempDir);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
// FileUtils.copyDirectory(levelDir, tempDir);
|
||||
// WorldCreator wc = new WorldCreator(LevelManager.gamePath + tempName, new NamespacedKey(SGM.getInstance(), tempName));
|
||||
// World world = wc.createWorld();
|
||||
// if (world == null) return null;
|
||||
// world.setAutoSave(false);
|
||||
// return world;
|
||||
}
|
||||
|
||||
|
||||
|
||||
enum GameState {
|
||||
PRESTART, READY, STARTED, ENDING
|
||||
}
|
||||
|
|
142
src/main/java/xyz/twovb/sgm/games/impl/capturethebrick/CTB.java
Normal file
142
src/main/java/xyz/twovb/sgm/games/impl/capturethebrick/CTB.java
Normal file
|
@ -0,0 +1,142 @@
|
|||
package xyz.twovb.sgm.games.impl.capturethebrick;
|
||||
|
||||
|
||||
/*
|
||||
* Created by 2vb - 3/7/2024
|
||||
*/
|
||||
|
||||
/*
|
||||
* Created by 2vb - 3/7/2024
|
||||
*/
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import xyz.twovb.sgm.SGM;
|
||||
import xyz.twovb.sgm.games.GameManager;
|
||||
import xyz.twovb.sgm.games.Minigame;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class CTB implements Minigame {
|
||||
|
||||
final static String name = "CaptureTheBrick";
|
||||
private final UUID uuid;
|
||||
private final List<Player> players;
|
||||
private World gameWorld;
|
||||
private CommandSender owner;
|
||||
private GameState state;
|
||||
|
||||
public CTB() {
|
||||
this.uuid = UUID.randomUUID();
|
||||
this.state = GameState.PRESTART;
|
||||
this.players = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void init(CommandSender owner, String world) throws IOException {
|
||||
// Perform initialization logic here
|
||||
Bukkit.getPluginManager().registerEvents(this, SGM.getInstance());
|
||||
this.owner = owner;
|
||||
gameWorld = createGameWorld(world, uuid);
|
||||
state = GameState.READY;
|
||||
owner.sendMessage("A new " + name + " instance with ID " + uuid + " has been created and is now ready!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
if (state == GameState.READY) {
|
||||
state = GameState.STARTED;
|
||||
sendMessageToAllPlayers("The game has started!");
|
||||
for (Player player : players) {
|
||||
player.teleport(player.getWorld().getSpawnLocation());
|
||||
}
|
||||
Bukkit.getScheduler().runTaskTimer(SGM.getInstance(), this::onTick, 0L, 1L);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
// Stop game logic
|
||||
state = GameState.ENDING;
|
||||
Player winner;
|
||||
if (players.size() <= 1) {
|
||||
winner = players.get(0);
|
||||
winner.sendMessage("Congratulations on winning the game!");
|
||||
}
|
||||
players.clear(); // Clear player list
|
||||
GameManager.getActiveGames().remove(uuid);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addPlayer(Player player) {
|
||||
players.add(player);
|
||||
player.teleport(gameWorld.getSpawnLocation());
|
||||
player.teleport(new Location(gameWorld, 0, 0, 0));
|
||||
sendMessageToAllPlayers(player.getName() + " has joined the game!");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removePlayer(Player player) {
|
||||
players.remove(player);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
void onPlayerQuit(PlayerQuitEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
if (players.contains(player)) {
|
||||
removePlayer(event.getPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
void onPlayerDeath(PlayerDeathEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
if (players.contains(player) && state == GameState.STARTED) {
|
||||
sendMessageToAllPlayers(player.getName() + " was eliminated!");
|
||||
event.setDeathMessage("");
|
||||
removePlayer(player);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Player> getPlayers() {
|
||||
return players;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID getGameId() {
|
||||
return uuid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameState getState() {
|
||||
return state;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommandSender getOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTick() {
|
||||
if (state == GameState.STARTED && players.size() <= 1) {
|
||||
this.stop();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package xyz.twovb.sgm.games.impl.capturethebrick;
|
||||
|
||||
/*
|
||||
* Created by 2vb - 3/7/2024
|
||||
*/
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public interface CTBOptions {
|
||||
|
||||
int maxTeams = 2;
|
||||
int brickCount = 2;
|
||||
ArrayList<Location> redBrickSpawns = new ArrayList<>();
|
||||
ArrayList<Location> blueBrickSpawns = new ArrayList<>();
|
||||
int territoryLevel = 1;
|
||||
int spawnLevel = 3;
|
||||
int boundaryLevel = 5;
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user