Files
Splegg-OG/src/main/java/managers/GameManager.java
T

139 lines
4.7 KiB
Java

package managers;
import java.util.HashMap;
import java.util.Iterator;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Material;
import config.Map;
import events.Listeners;
import main.SpleggOG;
import utils.SpleggPlayer;
import utils.Utils;
public class GameManager {
SpleggOG splegg;
public GameManager(SpleggOG splegg) {
this.splegg = splegg;
}
public void startGame(Game game) {
this.splegg.chat.log("New game commencing..");
game.startGameTimer();
Bukkit.getScheduler().cancelTask(game.counter);
game.status = Status.INGAME;
game.time = 901;
game.setLobbyCount(31);
int c = 1;
game.loadFloors();
Map map = game.getMap();
Iterator var5 = game.players.values().iterator();
SpleggPlayer sp;
while(var5.hasNext()) {
sp = (SpleggPlayer)var5.next();
sp.getPlayer().setLevel(0);
sp.getUtilPlayer().setAlive(true);
if (c > map.getSpawnCount()) {
c = 1;
}
sp.getPlayer().teleport(map.getSpawn(c));
++c;
sp.getPlayer().setLevel(0);
sp.getPlayer().setExp(0.0F);
sp.getPlayer().setGameMode(GameMode.ADVENTURE);
if (!Listeners.manager.contains(sp.getPlayer().getName())) {
if (Listeners.goldspade.contains(sp.getPlayer().getName())) {
sp.getPlayer().getInventory().clear();
sp.getPlayer().getInventory().setItem(0, Utils.getItem(Material.GOLDEN_SHOVEL, 0, splegg.getConfig().getString("Shovels.Gold.Name").replaceAll("&", "�"), splegg.getConfig().getString("Shovels.Gold.Lore").replaceAll("&", "�")));
sp.getPlayer().updateInventory();
Listeners.manager.remove(sp.getPlayer().getName());
Listeners.goldspade.remove(sp.getPlayer().getName());
Listeners.diamondspade.remove(sp.getPlayer().getName());
Listeners.shopmanager.remove(sp.getPlayer().getName());
Listeners.moneymanager.add(sp.getPlayer().getName());
}
if (Listeners.diamondspade.contains(sp.getPlayer().getName())) {
sp.getPlayer().getInventory().clear();
sp.getPlayer().getInventory().setItem(0, Utils.getItem(Material.DIAMOND_SHOVEL, 0, splegg.getConfig().getString("Shovels.Diamond.Name").replaceAll("&", "�"), splegg.getConfig().getString("Shovels.Diamond.Lore").replaceAll("&", "�")));
sp.getPlayer().updateInventory();
Listeners.manager.remove(sp.getPlayer().getName());
Listeners.goldspade.remove(sp.getPlayer().getName());
Listeners.diamondspade.remove(sp.getPlayer().getName());
Listeners.shopmanager.remove(sp.getPlayer().getName());
Listeners.moneymanager.add(sp.getPlayer().getName());
}
} else {
sp.getPlayer().getInventory().clear();
sp.getPlayer().getInventory().setItem(0, Utils.getItem(Material.IRON_SHOVEL, 0, splegg.getConfig().getString("Shovels.Iron.Name").replaceAll("&", "�"), splegg.getConfig().getString("Shovels.Iron.Lore").replaceAll("&", "�")));
sp.getPlayer().updateInventory();
Listeners.manager.remove(sp.getPlayer().getName());
Listeners.goldspade.remove(sp.getPlayer().getName());
Listeners.diamondspade.remove(sp.getPlayer().getName());
Listeners.shopmanager.remove(sp.getPlayer().getName());
Listeners.moneymanager.add(sp.getPlayer().getName());
}
}
game.getSign().update(map, false);
this.splegg.chat.bc(this.splegg.getConfig().getString("Messages.InstructionsGame").replaceAll("&", "�"), game);
}
public void stopGame(Game game, int r) {
this.splegg.chat.log("Commencing shutdown of " + game.getMap().getName() + ".");
Iterator var4 = game.players.values().iterator();
while(var4.hasNext()) {
SpleggPlayer sp = (SpleggPlayer)var4.next();
Listeners.launchEggs.remove(sp.getPlayer().getName());
}
game.status = Status.ENDING;
game.stopGameTimer();
game.setLobbyCount(31);
game.time = 601;
game.setStatus(Status.LOBBY);
game.resetArena();
game.data.clear();
game.floor.clear();
game.setStarting(false);
HashMap h = new HashMap(game.players);
game.players.clear();
Iterator var5 = h.values().iterator();
while(var5.hasNext()) {
SpleggPlayer sp = (SpleggPlayer)var5.next();
game.leaveGame(sp.getUtilPlayer());
}
if (!this.splegg.disabling) {
game.getSign().update(game.map, true);
}
this.splegg.chat.log("Map " + game.map.getName() + " was reset.");
}
public String getDigitTime(int count) {
int minutes = count / 60;
int seconds = count % 60;
String disMinu = (minutes < 10 ? "0" : "") + minutes;
String disSec = (seconds < 10 ? "0" : "") + seconds;
String formattedTime = disMinu + ":" + disSec;
return formattedTime;
}
public void ingameTimer(int count, HashMap players) {
Iterator var4 = players.values().iterator();
while(var4.hasNext()) {
SpleggPlayer sp = (SpleggPlayer)var4.next();
this.splegg.chat.sendMessage(sp.getPlayer(), "Splegg is ending in �5�l" + this.splegg.game.getDigitTime(count));
}
}
}