majority of bug fixes
This commit is contained in:
@@ -4,22 +4,14 @@ import hdvtdev.blockAndSeek.BlockAndSeek;
|
||||
import hdvtdev.blockAndSeek.BlockAndSeekGame;
|
||||
import hdvtdev.blockAndSeek.BlockAndSeekMap;
|
||||
import hdvtdev.blockAndSeek.Localization;
|
||||
import hdvtdev.blockAndSeek.roulette.RouletteCreator;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.title.Title;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.WorldCreator;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.bukkit.scoreboard.Criteria;
|
||||
import org.bukkit.scoreboard.DisplaySlot;
|
||||
import org.bukkit.scoreboard.Objective;
|
||||
import org.bukkit.scoreboard.Scoreboard;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@@ -45,111 +37,16 @@ public class GamesManager {
|
||||
}
|
||||
|
||||
BlockAndSeekMap map = MapsManager.getMap(name);
|
||||
System.out.println(map);
|
||||
BlockAndSeekGame game = new BlockAndSeekGame(name, map.getMaxPlayers(), map.getLobby());
|
||||
List<Integer> spawnCords = map.getSpawn();
|
||||
List<Integer> lobbyCords = map.getLobby();
|
||||
BlockAndSeekGame game = new BlockAndSeekGame(name, map);
|
||||
|
||||
games.put(name, game);
|
||||
|
||||
new BukkitRunnable() {
|
||||
|
||||
int duration = map.getDuration() + 10;
|
||||
final int seekerSpawn = duration - 15;
|
||||
int gameEnd = duration - 10;
|
||||
int waitTime = 30;
|
||||
final Location spawn = new Location(Bukkit.getWorld(name), spawnCords.getFirst(), spawnCords.get(1), spawnCords.get(2));
|
||||
Player seeker;
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
if (!game.isStarted()) {
|
||||
int playerCount = game.playerCount();
|
||||
|
||||
for (Player player : game.getPlayers()) {
|
||||
player.sendActionBar(Component.text("Игроков " + playerCount + "/12")); //TODO!
|
||||
}
|
||||
|
||||
if (playerCount >= map.getMinPlayers()) {
|
||||
|
||||
if (waitTime == 0 || playerCount == map.getMaxPlayers()) {
|
||||
game.start();
|
||||
seeker = game.selectRandomSeeker();
|
||||
|
||||
for (Player player : game.getHiders()) {
|
||||
player.teleport(spawn);
|
||||
PlayerInventory inventory = player.getInventory();
|
||||
inventory.clear();
|
||||
inventory.addItem(ItemManager.getFreezeItem());
|
||||
RouletteCreator.createRoulette(player, null, true, map.getBlocks());
|
||||
}
|
||||
|
||||
} else {
|
||||
if (waitTime < 5 || waitTime % 5 == 0) {
|
||||
for (Player player : game.getPlayers()) {
|
||||
player.sendMessage(Localization.getLangComponentWithPrefix(player.locale().toLanguageTag(), "wait-time-left", "{time}", String.valueOf(waitTime)));
|
||||
}
|
||||
}
|
||||
waitTime--;
|
||||
}
|
||||
|
||||
} else waitTime = 10;
|
||||
|
||||
} else {
|
||||
|
||||
if (seekerSpawn == gameEnd) {
|
||||
seeker.teleport(spawn);
|
||||
PlayerInventory seekerInventory = seeker.getInventory();
|
||||
seekerInventory.setArmorContents(ItemManager.getSeekerArmor());
|
||||
}
|
||||
|
||||
if (game.hidersCount() == 0) {
|
||||
|
||||
for (Player player : game.getPlayers()) {
|
||||
player.showTitle(Title.title(Localization.getComponent("seekers-won"), Component.text("")));
|
||||
}
|
||||
|
||||
game.preEnd();
|
||||
games.remove(name);
|
||||
|
||||
}
|
||||
|
||||
for (Player player : game.getPlayers()) {
|
||||
player.sendActionBar(Localization.getComponent("game-time-left", "{time}", String.valueOf(gameEnd)));
|
||||
}
|
||||
|
||||
if (gameEnd == 0) {
|
||||
if (game.hidersCount() == 1) {
|
||||
for (Player player : game.getPlayers()) {
|
||||
player.showTitle(Title.title(Localization.getComponent("hiders-solo-win", "{player}", game.getLastHider().getName()), Component.text("")));
|
||||
}
|
||||
} else {
|
||||
for (Player player : game.getPlayers()) {
|
||||
player.showTitle(Title.title(Localization.getComponent("hiders-won"), Component.text("")));
|
||||
}
|
||||
}
|
||||
|
||||
game.preEnd();
|
||||
games.remove(name);
|
||||
|
||||
} else gameEnd--;
|
||||
|
||||
if (duration == 0) {
|
||||
this.cancel();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}.runTaskTimer(BlockAndSeek.getInstance(), 0L, 20L);
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static void remove(String name) {
|
||||
games.remove(name);
|
||||
}
|
||||
|
||||
public static BlockAndSeekGame get(String name) {
|
||||
return games.get(name);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user