Refactor TechareaCommand to support per-player REntityServer instances and add periodic tick updates
All checks were successful
SteamWarCI Build successful

This commit is contained in:
2025-06-12 19:45:45 +02:00
parent eb8562b3a9
commit c9821053ce

View File

@@ -23,27 +23,38 @@ import de.steamwar.command.SWCommand;
import de.steamwar.entity.CWireframe; import de.steamwar.entity.CWireframe;
import de.steamwar.entity.REntityServer; import de.steamwar.entity.REntityServer;
import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.Config;
import de.steamwar.fightsystem.FightSystem;
import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class TechareaCommand extends SWCommand { public class TechareaCommand extends SWCommand {
private final REntityServer server = new REntityServer(); private final Map<UUID, REntityServer> servers = new HashMap<>();
private final CWireframe wireframe = new CWireframe(server);
public TechareaCommand() { public TechareaCommand() {
super("techarea"); super("techarea");
wireframe.setPos1(Config.BlueInsetRegion.getMinLocation(Config.world)); Bukkit.getScheduler().runTaskTimer(FightSystem.getPlugin(), () -> servers.forEach((uuid, rEntityServer) -> rEntityServer.tick()), 2, 2);
wireframe.setPos2(Config.BlueInsetRegion.getMaxLocation(Config.world));
wireframe.setBlock(Material.RED_CONCRETE.createBlockData());
} }
@Register @Register
public void genericCommand(Player player) { public void genericCommand(Player player) {
if (server.getPlayers().contains(player)) { if (servers.containsKey(player.getUniqueId())) {
server.removePlayer(player); servers.get(player.getUniqueId()).close();
} else { } else {
REntityServer server = new REntityServer();
CWireframe wireframe = new CWireframe(server);
wireframe.setPos1(Config.BlueInsetRegion.getMinLocation(Config.world));
wireframe.setPos2(Config.BlueInsetRegion.getMaxLocation(Config.world));
wireframe.setBlock(Material.RED_CONCRETE.createBlockData());
server.addPlayer(player); server.addPlayer(player);
servers.put(player.getUniqueId(), server);
} }
} }
} }