diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/WitchPlayer.java b/WitchRush/src/main/java/net/berrygames/witchrush/WitchPlayer.java index 069a8c1..b5e57ec 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/WitchPlayer.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/WitchPlayer.java @@ -1,11 +1,8 @@ package net.berrygames.witchrush; import net.berrygames.witchrush.game.GameState; -import net.berrygames.witchrush.team.TeamInfos; import net.berrygames.witchrush.team.TeamManager; import net.berrygames.witchrush.tools.ItemFactory; -import net.berrygames.witchrush.tools.Locations; -import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.DyeColor; import org.bukkit.Material; @@ -13,10 +10,6 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.LeatherArmorMeta; -import org.bukkit.scoreboard.DisplaySlot; -import org.bukkit.scoreboard.Objective; -import org.bukkit.scoreboard.Scoreboard; -import org.bukkit.scoreboard.ScoreboardManager; import java.util.HashMap; import java.util.Map; @@ -32,39 +25,24 @@ public class WitchPlayer { public WitchPlayer(Player player) { this.player = player; - this.spectator = - !WitchRush.get().getState().equals(GameState.WAITING) && - !WitchRush.get().getState().equals(GameState.WAITING); + this.spectator = GameState.getStatus().equals(GameState.GAME) ? true: false; this.kills = 0; this.death = 0; this.manager = WitchRush.get().getTeamManager(); } public void teleportToBase(){ - TeamManager teamManager = WitchRush.get().getTeamManager(); - switch (teamManager.getPlayerTeam(player)){ - case ROUGE: - player.teleport(Locations.PLAYER_SPAWN_ROUGE.getLocation()); - break; - case VERT: - player.teleport(Locations.PLAYER_SPAWN_VERT.getLocation()); - break; - case JAUNE: - player.teleport(Locations.PLAYER_SPAWN_JAUNE.getLocation()); - break; - case BLEU: - player.teleport(Locations.PLAYER_SPAWN_BLEU.getLocation()); - break; - } + player.teleport(manager.getTeamLocation(manager.getPlayerTeam(player))); } public void giveStuff(){ player.getInventory().clear(); - ItemStack sword = new ItemStack(Material.DIAMOND_SWORD); - player.getInventory().setHelmet(getHelmetColor(Material.LEATHER_HELMET, manager.getPlayerTeam(player).getColor())); - player.getInventory().setChestplate(getHelmetColor(Material.LEATHER_CHESTPLATE, manager.getPlayerTeam(player).getColor())); - player.getInventory().setLeggings(getHelmetColor(Material.LEATHER_LEGGINGS, manager.getPlayerTeam(player).getColor())); - player.getInventory().setBoots(getHelmetColor(Material.LEATHER_BOOTS, manager.getPlayerTeam(player).getColor())); + final ItemStack sword = new ItemStack(Material.DIAMOND_SWORD); + final Color color = manager.getPlayerTeam(player).getColor(); + player.getInventory().setHelmet(getHelmetColor(Material.LEATHER_HELMET, color)); + player.getInventory().setChestplate(getHelmetColor(Material.LEATHER_CHESTPLATE, color)); + player.getInventory().setLeggings(getHelmetColor(Material.LEATHER_LEGGINGS, color)); + player.getInventory().setBoots(getHelmetColor(Material.LEATHER_BOOTS, color)); player.getInventory().setItem(0, sword); } @@ -133,4 +111,4 @@ public class WitchPlayer { static { WitchPlayer.witchMap = new HashMap<>(); } -} +} \ No newline at end of file diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/WitchRush.java b/WitchRush/src/main/java/net/berrygames/witchrush/WitchRush.java index bcb302b..551a93e 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/WitchRush.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/WitchRush.java @@ -2,44 +2,67 @@ package net.berrygames.witchrush; import net.berrygames.witchrush.commands.CommandsManager; import net.berrygames.witchrush.game.GameState; -import net.berrygames.witchrush.game.task.DeathMatchTask; -import net.berrygames.witchrush.game.task.NoPVPTask; -import net.berrygames.witchrush.game.task.PVPTask; -import net.berrygames.witchrush.game.task.StartTask; import net.berrygames.witchrush.listeners.ListenersManager; import net.berrygames.witchrush.team.TeamManager; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; +import java.io.File; +import java.io.IOException; + public class WitchRush extends JavaPlugin { private static WitchRush instance; - private GameState gameState; private TeamManager teamManager; private boolean forcedStart; + private File file; + private FileConfiguration conf; @Override public void onEnable() { instance = this; - this.gameState = GameState.WAITING; + GameState.setStatus(GameState.LOBBY); this.teamManager = new TeamManager(); this.forcedStart = false; new CommandsManager().register(this); new ListenersManager().register(this); + saveDefaultConfig(); + + this.createYML(getConfig().getString("game.mode")); + System.out.println("*-*-*-*-*-*-*-*"); System.out.println("WitchRush"); System.out.println("by BunS"); System.out.println("Active"); System.out.println("*-*-*-*-*-*-*-*"); + super.onEnable(); } + private void createYML(String name) { + this.file = new File(getDataFolder(), name+".yml"); + if (!file.exists()) { + file.getParentFile().mkdirs(); + saveResource(name+".yml", false); + } + + this.conf = new YamlConfiguration(); + try { + conf.load(file); + } catch (IOException | InvalidConfigurationException e) { + e.printStackTrace(); + } + } + @Override public void onDisable() { System.out.println("*-*-*-*-*-*-*-*"); @@ -54,12 +77,14 @@ public class WitchRush extends JavaPlugin { } } - public void setState(GameState state){ - this.gameState = state; + @Override + public File getFile() { + return file; } - public GameState getState(){ - return this.gameState; + public FileConfiguration getMode() { + return conf; } + public TeamManager getTeamManager() { return teamManager; } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/commands/CommandsManager.java b/WitchRush/src/main/java/net/berrygames/witchrush/commands/CommandsManager.java index 148778f..b33df55 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/commands/CommandsManager.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/commands/CommandsManager.java @@ -2,12 +2,12 @@ package net.berrygames.witchrush.commands; import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.commands.admins.GameCMD; -import net.berrygames.witchrush.commands.admins.TestCMD; +import net.berrygames.witchrush.commands.admins.LocationsCMD; public class CommandsManager { public void register(WitchRush main){ - main.getCommand("game").setExecutor(new GameCMD()); - main.getCommand("test").setExecutor(new TestCMD()); + main.getCommand("gamestart").setExecutor(new GameCMD()); + main.getCommand("setlocation").setExecutor(new LocationsCMD()); } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/commands/admins/GameCMD.java b/WitchRush/src/main/java/net/berrygames/witchrush/commands/admins/GameCMD.java index b11750e..1b30d60 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/commands/admins/GameCMD.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/commands/admins/GameCMD.java @@ -16,17 +16,13 @@ public class GameCMD implements CommandExecutor { if(!(sender instanceof Player)) return false; Player player = (Player) sender; + if(!player.isOp())return false; - if(args.length == 1 && args[0].equals("start")){ - if(!player.isOp())return false; + if(!GameState.getStatus().equals(GameState.LOBBY)) return false; - if(!WitchRush.get().getState().equals(GameState.WAITING)) return false; - - WitchRush.get().setForcedStart(true); - new StartTask().runTaskTimer(WitchRush.get(), 0, 20); - WitchRush.get().setState(GameState.STARTING); - Bukkit.broadcastMessage(WitchRush.prefix()+"§c"+player.getName()+" a forcé le démarrage de la partie !"); - } + WitchRush.get().setForcedStart(true); + new StartTask().runTaskTimer(WitchRush.get(), 0, 20); + Bukkit.broadcastMessage(WitchRush.prefix()+"§c"+player.getName()+" a forcé le démarrage de la partie !"); return false; } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/commands/admins/LocationsCMD.java b/WitchRush/src/main/java/net/berrygames/witchrush/commands/admins/LocationsCMD.java new file mode 100644 index 0000000..d5186d0 --- /dev/null +++ b/WitchRush/src/main/java/net/berrygames/witchrush/commands/admins/LocationsCMD.java @@ -0,0 +1,187 @@ +package net.berrygames.witchrush.commands.admins; + +import net.berrygames.witchrush.WitchRush; +import net.berrygames.witchrush.game.GameState; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class LocationsCMD implements CommandExecutor { + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if(!(sender instanceof Player)) return false; + + Player player = (Player) sender; + if(!player.isOp())return false; + + if(!GameState.getStatus().equals(GameState.LOBBY)) return false; + + if(args.length == 2){ + switch (args[0].toLowerCase()){ + case "bleu": + switch (args[1].toLowerCase()){ + case "shop": + WitchRush.get().getMode().set("teams.bleu.shop.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.bleu.shop.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.bleu.shop.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.bleu.shop.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.bleu.shop.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "spawn": + WitchRush.get().getMode().set("teams.bleu.spawn.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.bleu.spawn.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.bleu.spawn.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.bleu.spawn.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.bleu.spawn.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "upgrade": + WitchRush.get().getMode().set("teams.bleu.upgrade.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.bleu.upgrade.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.bleu.upgrade.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.bleu.upgrade.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.bleu.upgrade.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "boss": + WitchRush.get().getMode().set("teams.bleu.boss.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.bleu.boss.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.bleu.boss.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.bleu.boss.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.bleu.boss.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + default: + player.sendMessage("§cUsage: /setLocation [team] [shop|spawn|upgrade|boss]"); + break; + } + break; + case "vert": + switch (args[1].toLowerCase()){ + case "shop": + WitchRush.get().getMode().set("teams.vert.shop.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.vert.shop.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.vert.shop.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.vert.shop.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.vert.shop.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "spawn": + WitchRush.get().getMode().set("teams.vert.spawn.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.vert.spawn.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.vert.spawn.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.vert.spawn.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.vert.spawn.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "upgrade": + WitchRush.get().getMode().set("teams.vert.upgrade.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.vert.upgrade.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.vert.upgrade.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.vert.upgrade.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.vert.upgrade.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "boss": + WitchRush.get().getMode().set("teams.vert.boss.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.vert.boss.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.vert.boss.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.vert.boss.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.vert.boss.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + default: + player.sendMessage("§cUsage: /setLocation [team] [shop|spawn|upgrade|boss]"); + break; + } + break; + case "jaune": + switch (args[1].toLowerCase()){ + case "shop": + WitchRush.get().getMode().set("teams.jaune.shop.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.jaune.shop.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.jaune.shop.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.jaune.shop.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.jaune.shop.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "spawn": + WitchRush.get().getMode().set("teams.jaune.spawn.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.jaune.spawn.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.jaune.spawn.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.jaune.spawn.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.jaune.spawn.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "upgrade": + WitchRush.get().getMode().set("teams.jaune.upgrade.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.jaune.upgrade.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.jaune.upgrade.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.jaune.upgrade.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.jaune.upgrade.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "boss": + WitchRush.get().getMode().set("teams.jaune.boss.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.jaune.boss.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.jaune.boss.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.jaune.boss.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.jaune.boss.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + default: + player.sendMessage("§cUsage: /setLocation [team] [shop|spawn|upgrade|boss]"); + break; + } + break; + case "rouge": + switch (args[1].toLowerCase()){ + case "shop": + WitchRush.get().getMode().set("teams.rouge.shop.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.rouge.shop.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.rouge.shop.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.rouge.shop.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.rouge.shop.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "spawn": + WitchRush.get().getMode().set("teams.rouge.spawn.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.rouge.spawn.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.rouge.spawn.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.rouge.spawn.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.rouge.spawn.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "upgrade": + WitchRush.get().getMode().set("teams.rouge.upgrade.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.rouge.upgrade.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.rouge.upgrade.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.rouge.upgrade.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.rouge.upgrade.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + case "boss": + WitchRush.get().getMode().set("teams.rouge.boss.x", player.getLocation().getX()); + WitchRush.get().getMode().set("teams.rouge.boss.y", player.getLocation().getY()); + WitchRush.get().getMode().set("teams.rouge.boss.z", player.getLocation().getZ()); + WitchRush.get().getMode().set("teams.rouge.boss.yaw", player.getLocation().getYaw()); + WitchRush.get().getMode().set("teams.rouge.boss.pitch", player.getLocation().getPitch()); + player.sendMessage("Location ajoutée !"); + break; + default: + player.sendMessage("§cUsage: /setLocation [team] [shop|spawn|upgrade|boss]"); + break; + } + break; + default: + player.sendMessage("§cUsage: /setLocation [team] [shop|spawn|upgrade|boss]"); + break; + } + } + return false; + } + +} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/commands/admins/TestCMD.java b/WitchRush/src/main/java/net/berrygames/witchrush/commands/admins/TestCMD.java deleted file mode 100644 index 6468abb..0000000 --- a/WitchRush/src/main/java/net/berrygames/witchrush/commands/admins/TestCMD.java +++ /dev/null @@ -1,47 +0,0 @@ -package net.berrygames.witchrush.commands.admins; - -import net.berrygames.witchrush.WitchRush; -import net.berrygames.witchrush.team.TeamInfos; -import net.berrygames.witchrush.tools.PNJSpawner; -import net.berrygames.witchrush.tools.Locations; -import net.berrygames.witchrush.tools.WitchBoss; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; - -public class TestCMD implements CommandExecutor { - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if(args[0].equals("shop")){ - //Spawn SHOP - //Spawn SHOP - new PNJSpawner("§6§lSHOP", TeamInfos.BLEU, Locations.SHOP_BLEU.getLocation()); - new PNJSpawner("§6§lSHOP", TeamInfos.ROUGE, Locations.SHOP_ROUGE.getLocation()); - new PNJSpawner("§6§lSHOP", TeamInfos.VERT, Locations.SHOP_VERT.getLocation()); - new PNJSpawner("§6§lSHOP", TeamInfos.JAUNE, Locations.SHOP_JAUNE.getLocation()); - - - } - if(args[0].equals("up")){ - //Spawn UPGRADE - new PNJSpawner("§b§LUPGRADE", TeamInfos.JAUNE, Locations.UPGRADE_BLEU.getLocation()); - new PNJSpawner("§b§LUPGRADE", TeamInfos.ROUGE, Locations.UPGRADE_ROUGE.getLocation()); - new PNJSpawner("§b§LUPGRADE", TeamInfos.VERT, Locations.UPGRADE_VERT.getLocation()); - new PNJSpawner("§b§LUPGRADE", TeamInfos.JAUNE, Locations.UPGRADE_JAUNE.getLocation()); - } - - if(args[0].equals("state")){ - //Spawn UPGRADE - sender.sendMessage(WitchRush.get().getState().toString()); - } - - if(args[0].equals("w")){ - new WitchBoss(TeamInfos.ROUGE, Locations.WITCH_ROUGE.getLocation()); - new WitchBoss(TeamInfos.BLEU, Locations.WITCH_BLEU.getLocation()); - new WitchBoss(TeamInfos.VERT, Locations.WITCH_VERT.getLocation()); - new WitchBoss(TeamInfos.JAUNE, Locations.WITCH_JAUNE.getLocation()); - } - - return false; - } -} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/GameManager.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/GameManager.java index ece18f6..7e59277 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/GameManager.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/game/GameManager.java @@ -2,11 +2,12 @@ package net.berrygames.witchrush.game; import net.berrygames.witchrush.WitchPlayer; import net.berrygames.witchrush.WitchRush; -import net.berrygames.witchrush.game.task.NoPVPTask; -import net.berrygames.witchrush.team.TeamInfos; +import net.berrygames.witchrush.game.task.HealthRunnable; +import net.berrygames.witchrush.game.task.PVPTask; +import net.berrygames.witchrush.team.TeamsInfos; import net.berrygames.witchrush.team.TeamManager; -import net.berrygames.witchrush.tools.Locations; import net.berrygames.witchrush.tools.PNJSpawner; +import net.berrygames.witchrush.tools.WitchBoss; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Sound; @@ -21,7 +22,9 @@ public class GameManager { this.teamManager = WitchRush.get().getTeamManager(); if (!(this.isStart = false)) { this.isStart = true; - WitchRush.get().setState(GameState.NOWITCH); + GameState.setStatus(GameState.GAME); + + new PVPTask().runTaskTimer(WitchRush.get(), 0, 20); for(Player pls: Bukkit.getOnlinePlayers()){ pls.setGameMode(GameMode.SURVIVAL); @@ -31,27 +34,27 @@ public class GameManager { Bukkit.broadcastMessage(WitchRush.prefix()+"§dVous avez §63minutes §dpour vous préparez."); this.loadPlayer(); - //Spawn SHOP - new PNJSpawner("§6§lSHOP", TeamInfos.BLEU, Locations.SHOP_BLEU.getLocation()); - new PNJSpawner("§6§lSHOP", TeamInfos.ROUGE, Locations.SHOP_ROUGE.getLocation()); - new PNJSpawner("§6§lSHOP", TeamInfos.VERT, Locations.SHOP_VERT.getLocation()); - new PNJSpawner("§6§lSHOP", TeamInfos.JAUNE, Locations.SHOP_JAUNE.getLocation()); + for(TeamsInfos infos : TeamsInfos.values()){ + new PNJSpawner("§6§lSHOP", infos, new TeamManager().getShopLocation(infos)); + new PNJSpawner("§b§LUPGRADE", infos, new TeamManager().getUpgradeLocation(infos)); + } + new PVPTask().runTaskTimer(WitchRush.get(), 0, 20); + Bukkit.getScheduler().runTaskLater(WitchRush.get(), ()->{ + Bukkit.broadcastMessage(WitchRush.prefix()+"Les §6Witchs §dsont apparues, §d§nBonne chance à vous !"); - //Spawn UPGRADE - new PNJSpawner("§b§LUPGRADE", TeamInfos.JAUNE, Locations.UPGRADE_BLEU.getLocation()); - new PNJSpawner("§b§LUPGRADE", TeamInfos.ROUGE, Locations.UPGRADE_ROUGE.getLocation()); - new PNJSpawner("§b§LUPGRADE", TeamInfos.VERT, Locations.UPGRADE_VERT.getLocation()); - new PNJSpawner("§b§LUPGRADE", TeamInfos.JAUNE, Locations.UPGRADE_JAUNE.getLocation()); + for(TeamsInfos infos : TeamsInfos.values()){ + new WitchBoss(infos, new TeamManager().getBossLocation(infos)); + } + new HealthRunnable().runTaskTimer(WitchRush.get(), 0L, 20L); + }, 10 * 20); } - new NoPVPTask().runTaskTimer(WitchRush.get(), 0, 20); } private void loadPlayer() { Bukkit.getOnlinePlayers().forEach(playerOnline -> { WitchPlayer witchPlayer = WitchPlayer.get(playerOnline); this.teamManager.addPlayerInRandomTeam(playerOnline); - TeamInfos teamInfos = this.teamManager.getPlayerTeam(playerOnline); witchPlayer.teleportToBase(); playerOnline.getInventory().clear(); playerOnline.setMaxHealth(20.0); diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/GameState.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/GameState.java index 64ac566..6d1ae7a 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/GameState.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/game/GameState.java @@ -2,11 +2,22 @@ package net.berrygames.witchrush.game; public enum GameState { - WAITING, - STARTING, - NOWITCH, - PVP, - DEATH_MATCH, - FINISHING, + LOBBY, + GAME, + END, ; + + private static GameState state; + + public static void setStatus(final GameState status) { + GameState.state = status; + } + + public static boolean isStatus(final GameState status) { + return GameState.state == status; + } + + public static GameState getStatus() { + return GameState.state; + } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/WinManager.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/WinManager.java index fc38432..5f41f30 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/WinManager.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/game/WinManager.java @@ -1,7 +1,7 @@ package net.berrygames.witchrush.game; import net.berrygames.witchrush.WitchRush; -import net.berrygames.witchrush.team.TeamInfos; +import net.berrygames.witchrush.team.TeamsInfos; import net.berrygames.witchrush.team.TeamManager; import org.bukkit.Bukkit; @@ -9,22 +9,17 @@ public class WinManager { public WinManager() { final TeamManager teamManager = WitchRush.get().getTeamManager(); - if (WitchRush.get().getState().equals(GameState.NOWITCH) - || WitchRush.get().getState().equals(GameState.PVP) - || WitchRush.get().getState().equals(GameState.DEATH_MATCH)) { + if (GameState.getStatus().equals(GameState.GAME)) { int teamLeft = 0; - for (final TeamInfos teamInfos : TeamInfos.values()) { + for (final TeamsInfos teamInfos : TeamsInfos.values()) { if (teamManager.getTeamPlayerCount(teamInfos) >= 1) { ++teamLeft; } - if(teamManager.getPlayerTeamList(teamInfos).size() == 0){ - teamManager.killTeamBoss(teamInfos); - } } if (teamLeft == 1) { - for (final TeamInfos teamInfos : TeamInfos.values()) { + for (final TeamsInfos teamInfos : TeamsInfos.values()) { if (!teamManager.getPlayerTeamList(teamInfos).isEmpty()) { - WitchRush.get().setState(GameState.FINISHING); + GameState.setStatus(GameState.END); Bukkit.broadcastMessage(WitchRush.prefix()+"Victoire de l'équipe "+teamInfos.getChatColor()+teamInfos.getTeamName()); this.endGame(); } @@ -34,7 +29,6 @@ public class WinManager { } private void endGame() { - Bukkit.getScheduler().runTaskLater(WitchRush.get(), ()->{ Bukkit.getOnlinePlayers().forEach(players -> players.kickPlayer("§CPartie terminée")); Bukkit.getServer().reload(); diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/task/DeathMatchTask.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/task/DeathMatchTask.java deleted file mode 100644 index d6e3969..0000000 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/task/DeathMatchTask.java +++ /dev/null @@ -1,29 +0,0 @@ -package net.berrygames.witchrush.game.task; - -import net.berrygames.witchrush.WitchRush; -import net.berrygames.witchrush.game.WinManager; -import net.berrygames.witchrush.team.TeamInfos; -import org.bukkit.scheduler.BukkitRunnable; - -public class DeathMatchTask extends BukkitRunnable { - - private int timer = 0; - - @Override - public void run() { - - for(TeamInfos infos : TeamInfos.values()){ - if(WitchRush.get().getTeamManager().isInLife(infos)){ - if(WitchRush.get().getTeamManager().getBossEntityMap().get(infos).getLife() > 0){ - int life = (WitchRush.get().getTeamManager().getBossEntityMap().get(infos).getLife() - 10); - WitchRush.get().getTeamManager().getBossEntityMap().get(infos).getWitch().setHealth(life); - } - return; - } - } - - new WinManager(); - this.timer++; - } - -} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/task/HealthRunnable.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/task/HealthRunnable.java index 77d97d7..0c6ddd2 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/task/HealthRunnable.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/game/task/HealthRunnable.java @@ -1,10 +1,9 @@ package net.berrygames.witchrush.game.task; import net.berrygames.witchrush.WitchRush; -import net.berrygames.witchrush.team.TeamInfos; +import net.berrygames.witchrush.team.TeamsInfos; import net.berrygames.witchrush.team.TeamManager; import org.bukkit.Bukkit; -import org.bukkit.Location; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.EntityType; import org.bukkit.scheduler.BukkitRunnable; @@ -14,7 +13,7 @@ import java.util.Map; public class HealthRunnable extends BukkitRunnable { - public Map arMap; + public Map arMap; private TeamManager teamManager; public HealthRunnable() { @@ -23,7 +22,7 @@ public class HealthRunnable extends BukkitRunnable { } public void run() { - for(TeamInfos teamInfos : TeamInfos.values()){ + for(TeamsInfos teamInfos : TeamsInfos.values()){ if(arMap.get(teamInfos) == null){ final ArmorStand armorStand = (ArmorStand) Bukkit.getWorld("world").spawnEntity(teamManager.getBossLocation(teamInfos), EntityType.ARMOR_STAND); armorStand.setAI(false); @@ -34,6 +33,13 @@ public class HealthRunnable extends BukkitRunnable { this.arMap.put(teamInfos, armorStand); return; } + if(teamManager.getTeamPlayerCount(teamInfos) == 0){ + if(arMap.get(teamInfos) != null){ + this.arMap.get(teamInfos).remove(); + this.arMap.remove(teamInfos); + } + return; + } if(teamManager.isInLife(teamInfos)){ arMap.get(teamInfos).setCustomName( teamInfos.getChatColor()+teamInfos.getTeamName() diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/task/NoPVPTask.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/task/NoPVPTask.java deleted file mode 100644 index f3d6868..0000000 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/task/NoPVPTask.java +++ /dev/null @@ -1,35 +0,0 @@ -package net.berrygames.witchrush.game.task; - -import net.berrygames.witchrush.WitchPlayer; -import net.berrygames.witchrush.WitchRush; -import net.berrygames.witchrush.game.GameState; -import net.berrygames.witchrush.team.TeamInfos; -import net.berrygames.witchrush.tools.Locations; -import net.berrygames.witchrush.tools.WitchBoss; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; - -public class NoPVPTask extends BukkitRunnable { - - private int timer = 3 * 20; - - @Override - public void run() { - - if(timer == 0){ - new PVPTask().runTaskTimer(WitchRush.get(), 0, 20); - WitchRush.get().setState(GameState.PVP); - - Bukkit.broadcastMessage(WitchRush.prefix()+"Les §6Witchs §dsont apparues, §d§nBonne chance à vous !"); - - new WitchBoss(TeamInfos.ROUGE, Locations.WITCH_ROUGE.getLocation()); - new WitchBoss(TeamInfos.BLEU, Locations.WITCH_BLEU.getLocation()); - new WitchBoss(TeamInfos.VERT, Locations.WITCH_VERT.getLocation()); - new WitchBoss(TeamInfos.JAUNE, Locations.WITCH_JAUNE.getLocation()); - new HealthRunnable().runTaskTimer(WitchRush.get(), 0L, 20L); - cancel(); - } - this.timer--; - } -} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/task/PVPTask.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/task/PVPTask.java index 7fe6af8..db7bb23 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/task/PVPTask.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/game/task/PVPTask.java @@ -1,11 +1,9 @@ package net.berrygames.witchrush.game.task; -import net.berrygames.witchrush.WitchPlayer; import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.game.GameState; import net.berrygames.witchrush.game.WinManager; import org.bukkit.Bukkit; -import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; public class PVPTask extends BukkitRunnable { @@ -16,8 +14,9 @@ public class PVPTask extends BukkitRunnable { public void run() { if(this.timer == 0){ - new DeathMatchTask().runTaskTimer(WitchRush.get(), 0, 20 * 5); - WitchRush.get().setState(GameState.DEATH_MATCH); + + //DeathMatch + Bukkit.broadcastMessage(WitchRush.prefix()+"Le DeathMatch commence."); Bukkit.broadcastMessage(WitchRush.prefix()+"Les §5§lWitchs §dcommencent à perdre de la vie !"); cancel(); diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/task/StartTask.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/task/StartTask.java index 8fe35e3..05a13c4 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/task/StartTask.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/game/task/StartTask.java @@ -17,24 +17,28 @@ public class StartTask extends BukkitRunnable { if (Bukkit.getOnlinePlayers().size() < 4 && !WitchRush.get().isForcedStart()) { Bukkit.broadcastMessage(WitchRush.prefix()+"Il n'y a pas assez de joueurs pour lancer la partie !"); - WitchRush.get().setState(GameState.WAITING); + GameState.setStatus(GameState.LOBBY); this.cancel(); return; } + if(this.timer > 10 && Bukkit.getOnlinePlayers().size() > 4 && !WitchRush.get().isForcedStart()){ + this.timer = 10; + } + if(this.timer == 0){ new GameManager(); cancel(); } - if(this.timer == 120 || this.timer == 60 ||this.timer == 30 || this.timer == 15 || this.timer == 10 || this.timer == 5 || this.timer == 4 - || this.timer == 3 || this.timer == 2 ){ - Bukkit.broadcastMessage(WitchRush.prefix()+"Lancement de la partie dans §5"+this.timer+" §dsecondes"); + if(this.timer == 1){ + Bukkit.broadcastMessage(WitchRush.prefix()+"Lancement de la partie dans §5"+this.timer+" §dseconde"); for(Player pls : Bukkit.getOnlinePlayers()){ pls.playSound(pls.getLocation(), Sound.BLOCK_NOTE_PLING, 1, 1); } } - if(this.timer == 1){ - Bukkit.broadcastMessage(WitchRush.prefix()+"Lancement de la partie dans §5"+this.timer+" §dseconde"); + if(this.timer == 120 || this.timer == 60 ||this.timer == 30 || this.timer == 15 || this.timer == 10 || this.timer == 5 || this.timer == 4 + || this.timer == 3 || this.timer == 2 ){ + Bukkit.broadcastMessage(WitchRush.prefix()+"Lancement de la partie dans §5"+this.timer+" §dsecondes"); for(Player pls : Bukkit.getOnlinePlayers()){ pls.playSound(pls.getLocation(), Sound.BLOCK_NOTE_PLING, 1, 1); } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/custom/BossDeathEvent.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/custom/BossDeathEvent.java deleted file mode 100644 index b6bb139..0000000 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/custom/BossDeathEvent.java +++ /dev/null @@ -1,34 +0,0 @@ -package net.berrygames.witchrush.listeners.custom; - -import net.berrygames.witchrush.team.TeamInfos; -import org.bukkit.entity.Player; -import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; - -public class BossDeathEvent extends Event { - - public static final HandlerList handlers; - private TeamInfos teamInfos; - private Player player; - - public BossDeathEvent(final TeamInfos teamInfos, final Player player) { - this.teamInfos = teamInfos; - this.player = player; - } - - public HandlerList getHandlers() { - return BossDeathEvent.handlers; - } - - public TeamInfos getTeamKiller() { - return this.teamInfos; - } - - public Player getPlayerKiller() { - return this.player; - } - - static { - handlers = new HandlerList(); - } -} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/entities/DamageEvent.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/entities/DamageEvent.java index 3c41c01..b5c8d0d 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/entities/DamageEvent.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/entities/DamageEvent.java @@ -1,14 +1,10 @@ package net.berrygames.witchrush.listeners.entities; -import net.berrygames.witchrush.WitchPlayer; import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.game.GameState; -import net.berrygames.witchrush.team.TeamInfos; +import net.berrygames.witchrush.team.TeamsInfos; import net.berrygames.witchrush.team.TeamManager; -import org.bukkit.Bukkit; -import org.bukkit.Sound; import org.bukkit.entity.Player; -import org.bukkit.entity.Villager; import org.bukkit.entity.Witch; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -20,34 +16,38 @@ public class DamageEvent implements Listener { @EventHandler public void onEntityDamageByEntity(final EntityDamageByEntityEvent e) { - if(!WitchRush.get().getState().equals(GameState.PVP) && !WitchRush.get().getState().equals(GameState.DEATH_MATCH) && !WitchRush.get().getState().equals(GameState.NOWITCH) )return; - switch (e.getEntity().getType()){ - case WITCH: - if(!(e.getDamager() instanceof Player)) return; - final Player player = (Player) e.getDamager(); - final Witch witch = (Witch) e.getEntity(); - final TeamInfos infos = teamManager.getPlayerTeam(player); - if(teamManager.getTeamBoss(infos).getWitch().equals(witch)){ - e.setCancelled(true); - player.sendMessage("§cVous ne pouvez pas tuer votre boss !"); - return; - } - for(TeamInfos teamInfos : TeamInfos.values()){ - if(!teamManager.isInLife(teamInfos)) return; - if(teamManager.getTeamBoss(teamInfos).getWitch().equals(witch)){ - teamManager.getTeamBoss(teamInfos).getWitch().teleport(teamManager.getBossLocation(teamInfos)); - Bukkit.getOnlinePlayers().forEach(playerOnline -> { - WitchPlayer witchPlayer = WitchPlayer.get(playerOnline); - if(teamManager.isPlayerInTeam(playerOnline, teamInfos) && !witchPlayer.isSpectator()){ - playerOnline.sendTitle("§cWitch attaquée !", " "); - playerOnline.playSound(playerOnline.getLocation(), Sound.BLOCK_ANVIL_PLACE, 1, 1); + switch (GameState.getStatus()){ + case LOBBY: + break; + case GAME: + switch (e.getEntity().getType()){ + case WITCH: + if(!(e.getDamager() instanceof Player)) return; + final Player player = (Player) e.getDamager(); + final Witch witch = (Witch) e.getEntity(); + final TeamsInfos playerTeam = teamManager.getPlayerTeam(player); + if(teamManager.getTeamBoss(playerTeam).getWitch().equals(witch)){ + e.setCancelled(true); + player.sendMessage("§cVous ne pouvez pas tuer votre boss !"); + return; + } + /*for(TeamsInfos infos : TeamsInfos.values()){ + if(teamManager.getTeamBoss(infos).getWitch().equals(witch)){ + Bukkit.getOnlinePlayers().forEach(pls -> { + if(teamManager.getPlayerTeam(pls).equals(infos)){ + pls.sendTitle("§cWitch attaquée !", " "); + pls.playSound(pls.getLocation(), Sound.BLOCK_ANVIL_PLACE, 1, 1); } }); } + }*/ + break; + case VILLAGER: + if(e.getDamager() instanceof Player) e.setCancelled(true); + break; } break; - case VILLAGER: - if(e.getDamager() instanceof Player) e.setCancelled(true); + case END: break; } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/entities/EntityDeath.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/entities/EntityDeath.java index bcfa898..1e68448 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/entities/EntityDeath.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/entities/EntityDeath.java @@ -2,12 +2,11 @@ package net.berrygames.witchrush.listeners.entities; import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.game.GameState; -import net.berrygames.witchrush.team.TeamInfos; +import net.berrygames.witchrush.team.TeamsInfos; import net.berrygames.witchrush.team.TeamManager; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.Sound; -import org.bukkit.entity.Player; import org.bukkit.entity.Witch; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -21,23 +20,39 @@ public class EntityDeath implements Listener { @EventHandler public void onEntityDeath(final EntityDeathEvent e) { if(e.getEntity() instanceof Witch){ - if(!WitchRush.get().getState().equals(GameState.PVP) || !WitchRush.get().getState().equals(GameState.DEATH_MATCH)) return; - final Witch witch = (Witch) e.getEntity(); - for (final ItemStack itemStack : e.getDrops()) { - itemStack.setType(Material.AIR); - } - for(TeamInfos infos : TeamInfos.values()){ - if(teamManager.getTeamBoss(infos).getWitch().equals(witch)){ - Bukkit.broadcastMessage(WitchRush.prefix()+"L'équipe "+infos.getChatColor()+infos.getTeamName()+" §dest morte !"); - for (final Player playerOnline : Bukkit.getOnlinePlayers()) { - playerOnline.playSound(playerOnline.getLocation(), Sound.ENTITY_WITHER_DEATH, 1.0f, 1.0f); - if (teamManager.isPlayerInTeam(playerOnline, infos)) { - playerOnline.sendMessage(WitchRush.prefix()+"Votre Boss est mort! Ne mourrez pas !"); - playerOnline.sendTitle("§cAttention","Votre boss est mort !"); - teamManager.killTeamBoss(infos); - } + switch (GameState.getStatus()){ + case LOBBY: + break; + case GAME: + final Witch witch = (Witch) e.getEntity(); + TeamsInfos teamInfos = TeamsInfos.JAUNE; + for (final ItemStack itemStack : e.getDrops()) { + itemStack.setType(Material.AIR); } - } + for (final TeamsInfos teamInfosList : TeamsInfos.values()) { + if (teamManager.getTeamBoss(teamInfosList).getWitch().equals(witch)) { + teamInfos = teamInfosList; + } + } + System.out.println(witch.getCustomName()); + System.out.println(witch.getName()); + System.out.println(teamManager.getTeamBoss(teamInfos).getWitch().getCustomName()); + System.out.println(teamManager.getTeamBoss(teamInfos).getWitch().getName()); + if(teamManager.getTeamBoss(teamInfos).getWitch().equals(witch)){ + Bukkit.broadcastMessage(WitchRush.prefix()+" Le boss des"+teamInfos.getChatColor()+teamInfos.getTeamName()+"s §dest mort"); + TeamsInfos finalTeamInfos = teamInfos; + Bukkit.getOnlinePlayers().forEach(pls -> { + pls.playSound(pls.getLocation(), Sound.ENTITY_WITHER_DEATH, 1.0f, 1.0f); + if(teamManager.isPlayerInTeam(pls, finalTeamInfos)){ + pls.sendMessage("Votre boss est mort !"); + pls.sendMessage("Ne mourrez pas"); + pls.sendTitle("§cAttention","Votre boss est mort !"); + } + }); + } + break; + case END: + break; } } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/InventoryClick.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/InventoryClick.java index f15b039..1fb5a2d 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/InventoryClick.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/InventoryClick.java @@ -2,7 +2,7 @@ package net.berrygames.witchrush.listeners.players; import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.game.GameState; -import net.berrygames.witchrush.team.TeamInfos; +import net.berrygames.witchrush.team.TeamsInfos; import net.berrygames.witchrush.team.TeamManager; import org.bukkit.Sound; import org.bukkit.entity.Player; @@ -24,7 +24,7 @@ public class InventoryClick implements Listener { e.setCancelled(true); switch (item.getType()){ case WOOL: - final TeamInfos teamInfos = TeamInfos.getTeamInfosByShortData(e.getCurrentItem().getDurability()); + final TeamsInfos teamInfos = TeamsInfos.getTeamInfosByShortData(e.getCurrentItem().getDurability()); if (teamManager.isPlayerInTeam(player, teamInfos)) { player.sendMessage("§dVous êtes déjà dans cette team !"); player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1.0f, 1.0f); @@ -40,7 +40,7 @@ public class InventoryClick implements Listener { teamManager.removePlayerAllTeam(player); player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_YES, 1.0f, 1.0f); teamManager.addPlayerTeam(player, teamInfos); - TeamInfos infos1 = teamManager.getPlayerTeam(player); + TeamsInfos infos1 = teamManager.getPlayerTeam(player); player.sendMessage("§dVous avez rejoint la team "+infos1.getChatColor()+infos1.getTeamName()); player.closeInventory(); break; @@ -59,9 +59,16 @@ public class InventoryClick implements Listener { @EventHandler public void onInventoryClick(final InventoryClickEvent e) { - if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){ - e.setCancelled(true); + switch (GameState.getStatus()){ + case LOBBY: + e.setCancelled(true); + break; + case GAME: + e.setCancelled(false); + break; + case END: + e.setCancelled(true); + break; } } - } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerChat.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerChat.java index f05b5b9..4c7d7c5 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerChat.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerChat.java @@ -3,7 +3,7 @@ package net.berrygames.witchrush.listeners.players; import net.berrygames.witchrush.WitchPlayer; import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.game.GameState; -import net.berrygames.witchrush.team.TeamInfos; +import net.berrygames.witchrush.team.TeamsInfos; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -17,32 +17,47 @@ public class PlayerChat implements Listener { Player player = e.getPlayer(); WitchPlayer witchPlayer = WitchPlayer.get(player); - if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){ - e.setFormat("§7%1$s §7» §f%2$s"); - } else if(witchPlayer.isSpectator()){ - e.setCancelled(true); - for(WitchPlayer pls : WitchPlayer.getwitchMap().values()){ - for(Player players : Bukkit.getOnlinePlayers()){ - if(pls.isSpectator()){ - players.sendMessage("§7[Spectateur] §8"+player.getName()+" §7» "+e.getMessage()); + switch (GameState.getStatus()){ + case LOBBY: + e.setFormat("§7%1$s §7» §f%2$s"); + if(witchPlayer.isSpectator()){ + e.setCancelled(true); + for(Player players : Bukkit.getOnlinePlayers()){ + WitchPlayer pls = WitchPlayer.get(players); + if(pls.isSpectator()){ + players.sendMessage("§7[Spectateur] §8"+player.getName()+" §7» "+e.getMessage()); + } } } - } - } else { - String message = e.getMessage(); - if(message.toLowerCase().startsWith("!")){ - e.setFormat("§7[§6Global§7] "+WitchRush.get().getTeamManager().getPlayerTeam(player).getChatColor()+"%1$s §7» §f%2$s"); - } else { - e.setCancelled(true); - Bukkit.getOnlinePlayers().forEach(playerOnline -> { - final TeamInfos teamInfos = WitchRush.get().getTeamManager().getPlayerTeam(player); - if(WitchRush.get().getTeamManager().getPlayerTeam(playerOnline).equals(teamInfos)){ - playerOnline.sendMessage("§7["+teamInfos.getChatColor()+teamInfos.getTeamName()+"§7] " - +WitchRush.get().getTeamManager().getPlayerTeam(playerOnline).getChatColor() - +player.getDisplayName()+" §7» §f"+message.replace("!","")); + break; + case GAME: + String message = e.getMessage(); + if(message.startsWith("@") || message.startsWith("!")){ + e.setFormat("§7[§6Global§7] "+WitchRush.get().getTeamManager().getPlayerTeam(player).getChatColor()+"%1$s §7» §f%2$s"); + } else { + e.setCancelled(true); + Bukkit.getOnlinePlayers().forEach(playerOnline -> { + final TeamsInfos teamInfos = WitchRush.get().getTeamManager().getPlayerTeam(player); + if(WitchRush.get().getTeamManager().getPlayerTeam(playerOnline).equals(teamInfos)){ + playerOnline.sendMessage("§7["+teamInfos.getChatColor()+teamInfos.getTeamName()+"§7] " + +WitchRush.get().getTeamManager().getPlayerTeam(playerOnline).getChatColor() + +player.getDisplayName()+" §7» §f"+message.replace("!","§r")); + } + }); + } + break; + case END: + e.setFormat("§7%1$s §7» §f%2$s"); + if(witchPlayer.isSpectator()){ + e.setCancelled(true); + for(Player players : Bukkit.getOnlinePlayers()){ + WitchPlayer pls = WitchPlayer.get(players); + if(pls.isSpectator()){ + players.sendMessage("§7[Spectateur] §8"+player.getName()+" §7» "+e.getMessage()); + } } - }); - } + } + break; } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerDeath.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerDeath.java index ad1ddba..93cc54e 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerDeath.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerDeath.java @@ -3,11 +3,12 @@ package net.berrygames.witchrush.listeners.players; import net.berrygames.witchrush.WitchPlayer; import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.game.GameState; -import net.berrygames.witchrush.team.TeamInfos; +import net.berrygames.witchrush.team.TeamsInfos; import net.berrygames.witchrush.team.TeamManager; import net.berrygames.witchrush.tools.DeadPlayer; -import net.berrygames.witchrush.tools.Locations; +import org.bukkit.Bukkit; import org.bukkit.GameMode; +import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -27,59 +28,52 @@ public class PlayerDeath implements Listener { WitchPlayer witchPlayer = WitchPlayer.get(player); WitchPlayer witchKiller = WitchPlayer.get(killer); - final TeamInfos teamvictim; - final TeamInfos teamKiller; + final TeamsInfos teamvictim; + final TeamsInfos teamKiller; - if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){ - e.setDeathMessage(null); - player.kickPlayer("ENFAIT TOI T'ES FORT PCQ NORMALEMENT YA PAS CA"); - } else { - if(killer instanceof Player){ - switch (WitchRush.get().getState()){ - case PVP: - if(!teamManager.isInLife(teamManager.getPlayerTeam(player))){ - checkDrop(e); - TeamInfos team = WitchRush.get().getTeamManager().getPlayerTeam(player); - e.setDeathMessage(team.getChatColor()+player.getName()+"§c est éliminé"); - witchPlayer.setDeath(witchPlayer.getDeath()+1); - witchPlayer.setSpectator(true); - player.teleport(Locations.SPAWN_SPECTATORS.getLocation()); - player.setGameMode(GameMode.SPECTATOR); - teamManager.removePlayerAllTeam(player); + switch (GameState.getStatus()){ + case LOBBY: + e.setDeathMessage(null); + player.kickPlayer("ENFAIT TOI T'ES FORT PCQ NORMALEMENT YA PAS CA"); + break; + case GAME: + if(killer instanceof Player){ + if(!teamManager.isInLife(teamManager.getPlayerTeam(player))){ + checkDrop(e); + TeamsInfos team = WitchRush.get().getTeamManager().getPlayerTeam(player); + e.setDeathMessage(team.getChatColor()+player.getName()+"§c est éliminé"); + witchPlayer.setDeath(witchPlayer.getDeath()+1); + witchPlayer.setSpectator(true); + player.teleport(new Location(Bukkit.getWorld("world"), 0, 66, 0)); + player.setGameMode(GameMode.SPECTATOR); + teamManager.removePlayerAllTeam(player); - player.sendMessage(" "); - player.sendMessage("§8(Spectateur) §7Vous êtes éliminé."); - player.sendMessage("§7Seuls les autres spectateurs voient vos messages !"); - player.sendMessage(" "); - } else { - teamvictim = WitchRush.get().getTeamManager().getPlayerTeam(player); - teamKiller = WitchRush.get().getTeamManager().getPlayerTeam(killer); - e.setDeathMessage(teamvictim.getChatColor()+player.getName()+"§d a été tué par "+teamKiller.getChatColor()+ killer.getName()); - checkDrop(e); - new DeadPlayer(player); - witchKiller.setKills(witchKiller.getKills()+1); - witchPlayer.setDeath(witchPlayer.getDeath()+1); - } - break; - case NOWITCH: + player.sendMessage(" "); + player.sendMessage("§8(Spectateur) §7Vous êtes éliminé."); + player.sendMessage("§7Seuls les autres spectateurs voient vos messages !"); + player.sendMessage(" "); + } else { teamvictim = WitchRush.get().getTeamManager().getPlayerTeam(player); teamKiller = WitchRush.get().getTeamManager().getPlayerTeam(killer); - e.setDeathMessage(teamvictim.getChatColor()+player.getName()+"§d a été tué par "+teamKiller.getChatColor()+ killer.getName()); checkDrop(e); new DeadPlayer(player); witchKiller.setKills(witchKiller.getKills()+1); witchPlayer.setDeath(witchPlayer.getDeath()+1); - break; + } + } else { + TeamsInfos team = WitchRush.get().getTeamManager().getPlayerTeam(player); + e.setDeathMessage(team.getChatColor()+player.getName()+"§d est mort"); + checkDrop(e); + new DeadPlayer(player); + player.setHealth(20); + witchPlayer.setDeath(witchPlayer.getDeath()+1); } - } else { - TeamInfos team = WitchRush.get().getTeamManager().getPlayerTeam(player); - e.setDeathMessage(team.getChatColor()+player.getName()+"§d est mort"); - checkDrop(e); - new DeadPlayer(player); - player.setHealth(20); - witchPlayer.setDeath(witchPlayer.getDeath()+1); - } + break; + case END: + e.setDeathMessage(null); + player.kickPlayer("ENFAIT TOI T'ES FORT PCQ NORMALEMENT YA PAS CA"); + break; } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerInteract.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerInteract.java index ef2d63f..68fc0f8 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerInteract.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerInteract.java @@ -24,48 +24,86 @@ public class PlayerInteract implements Listener { @EventHandler public void pvp(EntityDamageEvent e){ - if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){ - e.setCancelled(true); + switch (GameState.getStatus()){ + case LOBBY: + e.setCancelled(true); + break; + case GAME: + e.setCancelled(false); + break; + case END: + e.setCancelled(true); + break; } } @EventHandler public void pvp(EntityDamageByBlockEvent e){ - if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){ - e.setCancelled(true); + switch (GameState.getStatus()){ + case LOBBY: + e.setCancelled(true); + break; + case GAME: + e.setCancelled(false); + break; + case END: + e.setCancelled(true); + break; } } @EventHandler public void drop(PlayerDropItemEvent e){ - if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){ - e.setCancelled(true); + switch (GameState.getStatus()){ + case LOBBY: + e.setCancelled(true); + break; + case GAME: + e.setCancelled(false); + break; + case END: + e.setCancelled(true); + break; } } @EventHandler public void pvp(EntityDamageByEntityEvent e){ - if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){ - e.setCancelled(true); + switch (GameState.getStatus()){ + case LOBBY: + e.setCancelled(true); + break; + case GAME: + e.setCancelled(false); + break; + case END: + e.setCancelled(true); + break; } } @EventHandler public void click(PlayerInteractAtEntityEvent e){ Player player = e.getPlayer(); - if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){ - e.setCancelled(true); + switch (GameState.getStatus()){ + case LOBBY: + e.setCancelled(true); + break; + case GAME: + e.setCancelled(true); + if(e.getRightClicked().getName().equals("§6§lSHOP")){ + player.closeInventory(); + new ShopGui(player); + } + if(e.getRightClicked().getName().equals("§3§lUPGRADE")){ + player.closeInventory(); + new UpgradeGUI(player); + } + break; + case END: + e.setCancelled(true); + break; } - e.setCancelled(true); - if(e.getRightClicked().getName().equals("§6§lSHOP")){ - e.setCancelled(true); - new ShopGui(player); - } - if(e.getRightClicked().getName().equals("§3§lUPGRADE")){ - e.setCancelled(true); - new UpgradeGUI(player); - } - } @EventHandler @@ -86,13 +124,15 @@ public class PlayerInteract implements Listener { player.sendMessage("retour au hub soon"); break; case FEATHER: + if(WitchRush.get().isForcedStart())return; if(player.isOp()){ - if(!WitchRush.get().getState().equals(GameState.WAITING)) return; - - WitchRush.get().setForcedStart(true); - new StartTask().runTaskTimer(WitchRush.get(), 0, 20); - WitchRush.get().setState(GameState.STARTING); - Bukkit.broadcastMessage(WitchRush.prefix()+"§c"+player.getName()+" a forcé le démarrage de la partie !"); + switch (GameState.getStatus()){ + case LOBBY: + WitchRush.get().setForcedStart(true); + new StartTask().runTaskTimer(WitchRush.get(), 0, 20); + Bukkit.broadcastMessage(WitchRush.prefix()+"§c"+player.getName()+" a forcé le démarrage de la partie !"); + break; + } } break; default:break; diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerJoin.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerJoin.java index 3116b94..f4bc698 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerJoin.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerJoin.java @@ -4,9 +4,11 @@ import net.berrygames.witchrush.WitchPlayer; import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.game.GameState; import net.berrygames.witchrush.game.task.StartTask; +import net.berrygames.witchrush.team.TeamManager; import net.berrygames.witchrush.tools.ItemFactory; -import net.berrygames.witchrush.tools.Locations; +import org.bukkit.Bukkit; import org.bukkit.GameMode; +import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -20,43 +22,54 @@ public class PlayerJoin implements Listener { Player player = e.getPlayer(); WitchPlayer witchPlayer = WitchPlayer.get(player); - if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){ - e.setJoinMessage( - WitchRush.prefix()+"§e"+player.getName()+ - " §da rejoint la partie §7(§d"+ - WitchPlayer.getwitchMap().size()+ - "§8/§d16§7)"); + switch (GameState.getStatus()){ + case LOBBY: + e.setJoinMessage( + WitchRush.prefix()+"§e"+player.getName()+ + " §da rejoint la partie §7(§d"+ + WitchPlayer.getwitchMap().size()+ + "§8/§d16§7)"); - player.sendTitle("§5WitchRush", "§DLe rush avec des Witchs"); - player.getInventory().clear(); - player.setGameMode(GameMode.ADVENTURE); - player.setLevel(0); - player.setExp(0f); - player.setHealth(20); - player.setFoodLevel(20); - player.teleport(Locations.PLAYER_SPAWN_WAITING_ROOM.getLocation()); - witchPlayer.sendWaitingStuff(); - if(WitchRush.get().getState().equals(GameState.WAITING) && WitchPlayer.getwitchMap().size() >= 4){ - new StartTask().runTaskTimer(WitchRush.get(), 0, 20); - WitchRush.get().setState(GameState.STARTING); - } - - if(player.isOp()){ - player.getInventory().setItem(0, new ItemFactory(Material.FEATHER).withName("§cDémarrage forcé").done()); - } - } else { - - player.sendMessage(" "); - player.sendMessage("§8(Spectateur) §7Vous êtes spectateur pour cette partie."); - player.sendMessage("§7Seuls les autres spectateurs voient vos messages !"); - player.sendMessage(" "); - e.setJoinMessage(null); - player.setGameMode(GameMode.SPECTATOR); - player.setLevel(0); - player.setHealth(20); - player.setFoodLevel(20); - player.teleport(Locations.SPAWN_SPECTATORS.getLocation()); + player.sendTitle("§5WitchRush", "§DLe rush avec des Witchs"); + player.getInventory().clear(); + player.setGameMode(GameMode.ADVENTURE); + player.setLevel(0); + player.setExp(0f); + player.setHealth(20); + player.setFoodLevel(20); + player.teleport(new Location(Bukkit.getWorld("world"), 0, 66, 0)); + witchPlayer.sendWaitingStuff(); + if(WitchPlayer.getwitchMap().size() >= 4){ + new StartTask().runTaskTimer(WitchRush.get(), 0, 20); + } + if(player.isOp()){ + player.getInventory().setItem(0, new ItemFactory(Material.FEATHER).withName("§cDémarrage forcé").done()); + } + break; + case GAME: + player.sendMessage(" "); + player.sendMessage("§8(Spectateur) §7Vous êtes spectateur pour cette partie."); + player.sendMessage("§7Seuls les autres spectateurs voient vos messages !"); + player.sendMessage(" "); + e.setJoinMessage(null); + player.setGameMode(GameMode.SPECTATOR); + player.setLevel(0); + player.setHealth(20); + player.setFoodLevel(20); + player.teleport(new Location(Bukkit.getWorld("world"), 0, 66, 0)); + break; + case END: + player.sendMessage(" "); + player.sendMessage("§8(Spectateur) §7Vous êtes spectateur pour cette partie."); + player.sendMessage("§7Seuls les autres spectateurs voient vos messages !"); + player.sendMessage(" "); + e.setJoinMessage(null); + player.setGameMode(GameMode.SPECTATOR); + player.setLevel(0); + player.setHealth(20); + player.setFoodLevel(20); + player.teleport(new Location(Bukkit.getWorld("world"), 0, 66, 0)); + break; } - } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerQuit.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerQuit.java index 9205c1a..c8790cb 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerQuit.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerQuit.java @@ -17,25 +17,23 @@ public class PlayerQuit implements Listener { Player player = e.getPlayer(); WitchPlayer witchPlayer = WitchPlayer.get(player); - e.setQuitMessage(null); - witchPlayer.removePlayer(); WitchRush.get().getTeamManager().removePlayerAllTeam(player); - if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){ - e.setQuitMessage( - WitchRush.prefix()+"§e"+player.getName()+ - " §da quitté la partie §7(§d"+ - WitchPlayer.getwitchMap().size()+ - "§8/§d16§7)"); - } else { - e.setQuitMessage(null); - } - - if(WitchPlayer.getwitchMap().size() < 4 && WitchRush.get().getState().equals(GameState.STARTING)){ - if(WitchRush.get().isForcedStart())return; - Bukkit.broadcastMessage(WitchRush.prefix()+"§CLe lancement de la partie est annulé. Il n'y a pas assez de joueurs !"); - new StartTask().cancel(); + switch (GameState.getStatus()){ + case LOBBY: + e.setQuitMessage(null); + break; + case GAME: + e.setQuitMessage( + WitchRush.prefix()+"§e"+player.getName()+ + " §da quitté la partie §7(§d"+ + WitchPlayer.getwitchMap().size()+ + "§8/§d16§7)"); + break; + case END: + e.setQuitMessage(null); + break; } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/servers/ServerPing.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/servers/ServerPing.java index a12656c..200dc53 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/servers/ServerPing.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/servers/ServerPing.java @@ -1,6 +1,7 @@ package net.berrygames.witchrush.listeners.servers; import net.berrygames.witchrush.WitchRush; +import net.berrygames.witchrush.game.GameState; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.server.ServerListPingEvent; @@ -9,7 +10,7 @@ public class ServerPing implements Listener { @EventHandler public void ping(ServerListPingEvent e){ - e.setMotd(WitchRush.prefix()+WitchRush.get().getState()); + e.setMotd(WitchRush.prefix()+ GameState.getStatus()); e.setMaxPlayers(16); } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/world/WorldEvents.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/world/WorldEvents.java index d591886..1fb3f28 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/world/WorldEvents.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/world/WorldEvents.java @@ -1,6 +1,5 @@ package net.berrygames.witchrush.listeners.world; -import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.game.GameState; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -13,20 +12,14 @@ public class WorldEvents implements Listener { @EventHandler public void place(BlockPlaceEvent e){ - switch (WitchRush.get().getState()){ - case WAITING: + switch (GameState.getStatus()){ + case LOBBY: e.setCancelled(true); break; - case STARTING: - e.setCancelled(true); - break; - case NOWITCH: + case GAME: e.setCancelled(false); break; - case PVP: - e.setCancelled(false); - break; - case FINISHING: + case END: e.setCancelled(true); break; } @@ -34,40 +27,28 @@ public class WorldEvents implements Listener { } @EventHandler public void breakB(BlockBreakEvent e){ - switch (WitchRush.get().getState()){ - case WAITING: + switch (GameState.getStatus()){ + case LOBBY: e.setCancelled(true); break; - case STARTING: - e.setCancelled(true); - break; - case NOWITCH: + case GAME: e.setCancelled(false); break; - case PVP: - e.setCancelled(false); - break; - case FINISHING: + case END: e.setCancelled(true); break; } } @EventHandler public void damage(BlockDamageEvent e){ - switch (WitchRush.get().getState()){ - case WAITING: + switch (GameState.getStatus()){ + case LOBBY: e.setCancelled(true); break; - case STARTING: - e.setCancelled(true); - break; - case NOWITCH: + case GAME: e.setCancelled(false); break; - case PVP: - e.setCancelled(false); - break; - case FINISHING: + case END: e.setCancelled(true); break; } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamInfos.java b/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamInfos.java deleted file mode 100644 index a74628d..0000000 --- a/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamInfos.java +++ /dev/null @@ -1,64 +0,0 @@ -package net.berrygames.witchrush.team; - -import org.bukkit.Color; - -public enum TeamInfos { - - VERT("Vert", "Vert", "§a", (short)13, Color.GREEN), - BLEU("Bleu", "Bleu", "§b", (short)11, Color.BLUE), - JAUNE("Jaune", "Jaune", "§e", (short)4, Color.YELLOW), - ROUGE("Rouge", "Rouge", "§c", (short)14, Color.RED), - ; - - private String IDName; - private String teamName; - private String chatColor; - private short dataClay; - private Color color; - - TeamInfos(String IDName, String teamName, String chatColor, short dataClay, Color color) { - this.IDName = IDName; - this.teamName = teamName; - this.chatColor = chatColor; - this.dataClay = dataClay; - this.color = color; - } - - public String getIDName() { - return IDName; - } - - public String getTeamName() { - return teamName; - } - - public String getChatColor() { - return chatColor; - } - - public short getDataClay() { - return dataClay; - } - - public Color getColor() { - return color; - } - - public static TeamInfos getTeamInfosByIDName(final String ID) { - for (final TeamInfos teamInfos : values()) { - if (teamInfos.getIDName().equalsIgnoreCase(ID)) { - return teamInfos; - } - } - return null; - } - - public static TeamInfos getTeamInfosByShortData(final short data) { - for (final TeamInfos teamInfos : values()) { - if (teamInfos.getDataClay() == data) { - return teamInfos; - } - } - return null; - } -} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamManager.java b/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamManager.java index 968cfe6..e4095ff 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamManager.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamManager.java @@ -1,7 +1,6 @@ package net.berrygames.witchrush.team; -import net.berrygames.witchrush.game.task.HealthRunnable; -import net.berrygames.witchrush.tools.Locations; +import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.tools.WitchBoss; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -11,15 +10,15 @@ import java.util.*; public class TeamManager { - private Map> playerTeamList; - private Map bossEntityMap; + private Map> playerTeamList; + private Map bossEntityMap; public TeamManager() { this.playerTeamList = new HashMap<>(); this.bossEntityMap = new HashMap<>(); } - public void addPlayerTeam(final Player player, final TeamInfos teamInfos) { + public void addPlayerTeam(final Player player, final TeamsInfos teamInfos) { if (this.playerTeamList.get(teamInfos) == null) { this.playerTeamList.put(teamInfos, new ArrayList<>()); } @@ -30,63 +29,80 @@ public class TeamManager { } public void removePlayerAllTeam(final Player player){ - for (final TeamInfos teamInfos : TeamInfos.values()) { + for (final TeamsInfos teamInfos : TeamsInfos.values()) { if (this.playerTeamList.get(teamInfos) != null && this.playerTeamList.get(teamInfos).contains(player)) { this.playerTeamList.get(teamInfos).remove(player); } } } - public void removePlayerTeam(final Player player, final TeamInfos teamInfos) { + public void removePlayerTeam(final Player player, final TeamsInfos teamInfos) { if (this.playerTeamList.get(teamInfos) != null && this.playerTeamList.get(teamInfos).contains(player)) { this.playerTeamList.get(teamInfos).remove(player); } } public void addPlayerInRandomTeam(final Player player) { - TreeMap> teamMap = new TreeMap<>(); - for(TeamInfos infos : TeamInfos.values()){ + TreeMap> teamMap = new TreeMap<>(); + for(TeamsInfos infos : TeamsInfos.values()){ for(Player pls: Bukkit.getOnlinePlayers()){ if(!isPlayerInTeam(pls , infos)) teamMap.put(infos, getPlayerTeamList(infos)); } } - if(!playerHaveTeam(player)) addPlayerTeam(player, teamMap.firstKey()); - } - - public void checkNoTeamPlayers() { - for(Player onlinePlayers : Bukkit.getOnlinePlayers()) { - if(!playerHaveTeam(onlinePlayers)) addPlayerInRandomTeam(onlinePlayers); + if(!playerHaveTeam(player)){ + addPlayerTeam(player, teamMap.firstKey()); } } - public boolean isInLife(final TeamInfos teamInfos) { + public boolean isInLife(final TeamsInfos teamInfos) { if(getBossEntityMap().containsKey(teamInfos)){ return true; } return false; } - public Location getBossLocation(final TeamInfos teamInfos) { - switch (teamInfos){ - case ROUGE: - return Locations.WITCH_ROUGE.getLocation(); - case BLEU: - return Locations.WITCH_BLEU.getLocation(); - case VERT: - return Locations.WITCH_VERT.getLocation(); - case JAUNE: - return Locations.WITCH_JAUNE.getLocation(); - } - - return null; + public Location getBossLocation(final TeamsInfos teamInfos) { + return new Location(Bukkit.getWorld("world"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".boss.x"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".boss.y"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".boss.z"), + WitchRush.get().getMode().getLong("teams."+teamInfos.getTeamName()+".boss.yaw"), + WitchRush.get().getMode().getLong("teams."+teamInfos.getTeamName()+".boss.pitch")); } - public boolean isPlayerInTeam(final Player player, final TeamInfos teamInfos) { + public Location getShopLocation(final TeamsInfos teamInfos) { + return new Location(Bukkit.getWorld("world"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".shop.x"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".shop.y"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".shop.z"), + WitchRush.get().getMode().getLong("teams."+teamInfos.getTeamName()+".shop.yaw"), + WitchRush.get().getMode().getLong("teams."+teamInfos.getTeamName()+".shop.pitch")); + } + + public Location getUpgradeLocation(final TeamsInfos teamInfos) { + return new Location(Bukkit.getWorld("world"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".upgrade.x"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".upgrade.y"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".upgrade.z"), + WitchRush.get().getMode().getLong("teams."+teamInfos.getTeamName()+".upgrade.yaw"), + WitchRush.get().getMode().getLong("teams."+teamInfos.getTeamName()+".upgrade.pitch")); + } + + public Location getTeamLocation(final TeamsInfos teamInfos) { + return new Location(Bukkit.getWorld("world"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".spawn.x"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".spawn.y"), + WitchRush.get().getMode().getDouble("teams."+teamInfos.getTeamName()+".spawn.z"), + WitchRush.get().getMode().getLong("teams."+teamInfos.getTeamName()+".spawn.yaw"), + WitchRush.get().getMode().getLong("teams."+teamInfos.getTeamName()+".spawn.pitch")); + } + + public boolean isPlayerInTeam(final Player player, final TeamsInfos teamInfos) { return this.playerTeamList.get(teamInfos) != null && this.playerTeamList.get(teamInfos).contains(player); } public boolean playerHaveTeam(final Player player) { - for (final TeamInfos teamInfos : TeamInfos.values()) { + for (final TeamsInfos teamInfos : TeamsInfos.values()) { if (this.playerTeamList.get(teamInfos) != null && this.playerTeamList.get(teamInfos).contains(player)) { return true; } @@ -94,12 +110,12 @@ public class TeamManager { return false; } - public boolean teamIsFull(final TeamInfos teamInfos) { + public boolean teamIsFull(final TeamsInfos teamInfos) { return this.playerTeamList.get(teamInfos) != null && this.playerTeamList.get(teamInfos).size() >= this.getPlayerTeamLimit(); } - public TeamInfos getPlayerTeam(final Player player) { - for (final TeamInfos teamInfos : TeamInfos.values()) { + public TeamsInfos getPlayerTeam(final Player player) { + for (final TeamsInfos teamInfos : TeamsInfos.values()) { if (this.playerTeamList.get(teamInfos) != null && this.playerTeamList.get(teamInfos).contains(player)) { return teamInfos; } @@ -107,14 +123,14 @@ public class TeamManager { return null; } - public Integer getTeamPlayerCount(final TeamInfos teamInfos) { + public Integer getTeamPlayerCount(final TeamsInfos teamInfos) { if (this.playerTeamList.get(teamInfos) != null) { return this.playerTeamList.get(teamInfos).size(); } return 0; } - public List getPlayerTeamList(final TeamInfos teamInfos) { + public List getPlayerTeamList(final TeamsInfos teamInfos) { if (this.playerTeamList.get(teamInfos) != null) { return this.playerTeamList.get(teamInfos); } @@ -125,23 +141,12 @@ public class TeamManager { return 4; } - public WitchBoss getTeamBoss(final TeamInfos teamInfos) { + public WitchBoss getTeamBoss(final TeamsInfos teamInfos) { return this.bossEntityMap.get(teamInfos); } - public void killTeamBoss(final TeamInfos infos){ - if(this.getTeamBoss(infos).getWitch() != null) this.getTeamBoss(infos).getWitch().remove(); - if(this.getBossEntityMap().get(infos) != null) this.getBossEntityMap().remove(infos); - if(new HealthRunnable().arMap.get(infos) != null) new HealthRunnable().arMap.remove(infos); - } - - public Map> getPlayerTeamList() { - return this.playerTeamList; - } - - public Map getBossEntityMap() { + public Map getBossEntityMap() { return this.bossEntityMap; } - } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamsInfos.java b/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamsInfos.java new file mode 100644 index 0000000..e84e53c --- /dev/null +++ b/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamsInfos.java @@ -0,0 +1,81 @@ +package net.berrygames.witchrush.team; + +import net.berrygames.witchrush.tools.PNJSpawner; +import org.bukkit.Color; + +public enum TeamsInfos { + + VERT(0,"Vert", "vert", "§a", (short)13, Color.GREEN), + BLEU(1,"Bleu", "bleu", "§b", (short)11, Color.BLUE), + JAUNE(2,"Jaune", "jaune", "§e", (short)4, Color.YELLOW), + ROUGE(3,"Rouge", "rouge", "§c", (short)14, Color.RED), + ; + + private int id; + private String IDName; + private String teamName; + private String chatColor; + private short dataClay; + private Color color; + + TeamsInfos(int id, String IDName, String teamName, String chatColor, short dataClay, Color color) { + this.id = id; + this.IDName = IDName; + this.teamName = teamName; + this.chatColor = chatColor; + this.dataClay = dataClay; + this.color = color; + } + + public String getIDName() { + return IDName; + } + + public String getTeamName() { + return teamName; + } + + public String getChatColor() { + return chatColor; + } + + public short getDataClay() { + return dataClay; + } + + public Color getColor() { + return color; + } + + public int getId() { + return id; + } + + public static TeamsInfos getTeamInfosByIDName(final String ID) { + for (final TeamsInfos teamInfos : values()) { + if (teamInfos.getIDName().equalsIgnoreCase(ID)) { + return teamInfos; + } + } + return null; + } + + public static TeamsInfos getTeamInfosByID(final int ID) { + for (final TeamsInfos teamInfos : values()) { + if (teamInfos.getId() == ID) { + return teamInfos; + } + } + return null; + } + + public static TeamsInfos getTeamInfosByShortData(final short data) { + for (final TeamsInfos teamInfos : values()) { + if (teamInfos.getDataClay() == data) { + return teamInfos; + } + } + return null; + } + +} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamsMenu.java b/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamsMenu.java index a437245..53ab449 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamsMenu.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/team/TeamsMenu.java @@ -18,24 +18,30 @@ public class TeamsMenu { inventory = Bukkit.createInventory(null, 4 * 9, WitchRush.prefix()+"Teams"); for(int i = 0; i < 9; i++){ - inventory.setItem(i, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PURPLE).done()); + inventory.setItem(i, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PINK).done()); } - for(int i = 27; i < 36; i++){ - inventory.setItem(i, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PURPLE).done()); + for(int i = 45; i < 54; i++){ + inventory.setItem(i, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PINK).done()); } - inventory.setItem(9, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PURPLE).done()); - inventory.setItem(17, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PURPLE).done()); - inventory.setItem(18, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PURPLE).done()); - inventory.setItem(26, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PURPLE).done()); + inventory.setItem(9, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PINK).done()); + inventory.setItem(17, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PINK).done()); + inventory.setItem(36, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PINK).done()); + inventory.setItem(44, new ItemFactory(Material.STAINED_GLASS_PANE).withName("").withColor(DyeColor.PINK).done()); - inventory.setItem(22, new ItemFactory(Material.DOUBLE_PLANT).withName("§dTeam Random").done()); + inventory.setItem(40, new ItemFactory(Material.DOUBLE_PLANT).withName("§dTeam Random").done()); - inventory.setItem(12, new ItemFactory(Material.WOOL).withColor(DyeColor.GREEN).withName("§aVert").done()); - inventory.setItem(14, new ItemFactory(Material.WOOL).withColor(DyeColor.YELLOW).withName("§eJaune").done()); - inventory.setItem(20, new ItemFactory(Material.WOOL).withColor(DyeColor.BLUE).withName("§bBleu").done()); - inventory.setItem(24, new ItemFactory(Material.WOOL).withColor(DyeColor.RED).withName("§cRouge").done()); + for(int i = 0; i < TeamsInfos.values().length; i++){ + for(int slot = 10; slot < 17; slot++){ + inventory.setItem(slot, new ItemFactory(Material.WOOL).withName(TeamsInfos.getTeamInfosByID(i).getTeamName()).done()); + } + for(int slot = 19; slot < 26; slot++){ + inventory.setItem(slot, new ItemFactory(Material.WOOL).withName(TeamsInfos.getTeamInfosByID(i).getTeamName()).done()); + } + inventory.setItem(30, new ItemFactory(Material.WOOL).withName(TeamsInfos.getTeamInfosByID(i).getTeamName()).done()); + inventory.setItem(32, new ItemFactory(Material.WOOL).withName(TeamsInfos.getTeamInfosByID(i).getTeamName()).done()); + } - inventory.setItem(31, new ItemFactory(Material.BARRIER).withName("§cFermer").done()); + inventory.setItem(49, new ItemFactory(Material.BARRIER).withName("§cFermer").done()); player.openInventory(inventory); } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/tools/Locations.java b/WitchRush/src/main/java/net/berrygames/witchrush/tools/Locations.java deleted file mode 100644 index 5cbffcf..0000000 --- a/WitchRush/src/main/java/net/berrygames/witchrush/tools/Locations.java +++ /dev/null @@ -1,46 +0,0 @@ -package net.berrygames.witchrush.tools; - -import org.bukkit.Bukkit; -import org.bukkit.Location; - -public enum Locations { - - //PLAYERS - PLAYER_SPAWN_WAITING_ROOM(new Location(Bukkit.getWorld("world"), 0.5, 65, 0.5, 0, 0)), - PLAYER_SPAWN_BLEU(new Location(Bukkit.getWorld("world"), 5.5, 65, -4.5, 50, 0)), - PLAYER_SPAWN_ROUGE(new Location(Bukkit.getWorld("world"), -4.5, 65, 5.5, -120, 0)), - PLAYER_SPAWN_JAUNE(new Location(Bukkit.getWorld("world"), 5.5, 65, 5.5, 120, 0)), - PLAYER_SPAWN_VERT(new Location(Bukkit.getWorld("world"), -4.5, 65, -4.5, -50, 0)), - - SPAWN_SPECTATORS(new Location(Bukkit.getWorld("world"), 0.5, 70, 0.5, 0, 0)), - - //WITCH - WITCH_BLEU(new Location(Bukkit.getWorld("world"), 9.5, 65, -8.5, 50, 0)), - WITCH_ROUGE(new Location(Bukkit.getWorld("world"), -8.5, 65, 9.5, -120, 0)), - WITCH_JAUNE(new Location(Bukkit.getWorld("world"), 9.5, 65, 9.5, 120, 0)), - WITCH_VERT(new Location(Bukkit.getWorld("world"), -8.5, 65, -8.5, -50, 0)), - - //PNJ SHOP - SHOP_BLEU(new Location(Bukkit.getWorld("world"), 9.5, 65, -5.5, 90, 0)), - SHOP_ROUGE(new Location(Bukkit.getWorld("world"), -8.5, 65, 6.5, -90, 0)), - SHOP_JAUNE(new Location(Bukkit.getWorld("world"), 6.5, 65, 9.5, 190, 0)), - SHOP_VERT(new Location(Bukkit.getWorld("world"), -5.5, 65, -8.5, 0, 0)), - - //PNJ SOLO UPGRADE - UPGRADE_BLEU(new Location(Bukkit.getWorld("world"), 6.5, 65, -8.5, 0, 0)), - UPGRADE_ROUGE(new Location(Bukkit.getWorld("world"), -5.5, 65, 9.5, -180, 0)), - UPGRADE_JAUNE(new Location(Bukkit.getWorld("world"), 9.5, 65, 6.5, 90, 0)), - UPGRADE_VERT(new Location(Bukkit.getWorld("world"), -8.5, 65, -5.5, -90, 0)), - - ; - - private Location location; - - Locations(Location location) { - this.location = location; - } - - public Location getLocation() { - return location; - } -} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/tools/PNJSpawner.java b/WitchRush/src/main/java/net/berrygames/witchrush/tools/PNJSpawner.java index ff441b2..5bca08d 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/tools/PNJSpawner.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/tools/PNJSpawner.java @@ -1,6 +1,6 @@ package net.berrygames.witchrush.tools; -import net.berrygames.witchrush.team.TeamInfos; +import net.berrygames.witchrush.team.TeamsInfos; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.entity.EntityType; @@ -8,13 +8,13 @@ import org.bukkit.entity.Villager; public class PNJSpawner { - private TeamInfos teamInfos; + private TeamsInfos teamInfos; private Location location; private Villager villager; private double life; private String name; - public PNJSpawner(String name, final TeamInfos teamInfos, final Location location) { + public PNJSpawner(String name, final TeamsInfos teamInfos, final Location location) { this.teamInfos = teamInfos; this.location = location; this.villager = (Villager) Bukkit.getWorld("world").spawnEntity(location, EntityType.VILLAGER); @@ -30,7 +30,7 @@ public class PNJSpawner { this.villager.setCollidable(false); } - public TeamInfos getTeamInfos() { + public TeamsInfos getTeamInfos() { return this.teamInfos; } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/tools/WitchBoss.java b/WitchRush/src/main/java/net/berrygames/witchrush/tools/WitchBoss.java index e7f7408..8585495 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/tools/WitchBoss.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/tools/WitchBoss.java @@ -1,7 +1,7 @@ package net.berrygames.witchrush.tools; import net.berrygames.witchrush.WitchRush; -import net.berrygames.witchrush.team.TeamInfos; +import net.berrygames.witchrush.team.TeamsInfos; import net.berrygames.witchrush.team.TeamManager; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -10,19 +10,19 @@ import org.bukkit.entity.Witch; public class WitchBoss { - private TeamInfos teamInfos; + private TeamsInfos teamInfos; private Location location; private TeamManager manager; private Witch witch; private int life; - public WitchBoss(final TeamInfos teamInfos, final Location location) { + public WitchBoss(final TeamsInfos teamInfos, final Location location) { this.teamInfos = teamInfos; this.location = location; this.manager = WitchRush.get().getTeamManager(); manager.getBossEntityMap().put(teamInfos, this); this.witch = (Witch) Bukkit.getWorld("world").spawnEntity(location, EntityType.WITCH); - this.life = 50; + this.life = 500; this.witch.setMaxHealth(this.life); this.witch.setHealth(this.life); this.witch.setCustomNameVisible(false); @@ -32,7 +32,7 @@ public class WitchBoss { this.witch.setCollidable(false); } - public TeamInfos getTeamInfos() { + public TeamsInfos getTeamInfos() { return this.teamInfos; } diff --git a/WitchRush/src/main/resources/4x4.yml b/WitchRush/src/main/resources/4x4.yml new file mode 100644 index 0000000..ec2ab88 --- /dev/null +++ b/WitchRush/src/main/resources/4x4.yml @@ -0,0 +1,30 @@ +#test + +teams: + bleu: + x: + y: + z: + yaw: + pitch: + + rouge: + x: + y: + z: + yaw: + pitch: + + jaune: + x: + y: + z: + yaw: + pitch: + + vert: + x: + y: + z: + yaw: + pitch: \ No newline at end of file diff --git a/WitchRush/src/main/resources/config.yml b/WitchRush/src/main/resources/config.yml new file mode 100644 index 0000000..e64a140 --- /dev/null +++ b/WitchRush/src/main/resources/config.yml @@ -0,0 +1,2 @@ +game: + mode: "4x4" \ No newline at end of file diff --git a/WitchRush/src/main/resources/plugin.yml b/WitchRush/src/main/resources/plugin.yml index d56e5a3..48572fc 100644 --- a/WitchRush/src/main/resources/plugin.yml +++ b/WitchRush/src/main/resources/plugin.yml @@ -5,5 +5,6 @@ main: net.berrygames.witchrush.WitchRush website: berrygames.net commands: - game: - test: \ No newline at end of file + gamestart: + setlocation: + aliases: [setloc, loc] \ No newline at end of file