Witch done soon (85% -> 1 error remaining) Plugin 85% done

This commit is contained in:
BunSLaPatate
2018-10-11 19:39:12 +02:00
parent 884e74bbf0
commit d38df66af5
35 changed files with 797 additions and 660 deletions

View File

@@ -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<>();
}
}
}

View File

@@ -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;
}

View File

@@ -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());
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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);

View File

@@ -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;
}
}

View File

@@ -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();

View File

@@ -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++;
}
}

View File

@@ -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<TeamInfos, ArmorStand> arMap;
public Map<TeamsInfos, ArmorStand> 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()

View File

@@ -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--;
}
}

View File

@@ -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();

View File

@@ -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);
}

View File

@@ -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();
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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<TeamInfos, List<Player>> playerTeamList;
private Map<TeamInfos, WitchBoss> bossEntityMap;
private Map<TeamsInfos, List<Player>> playerTeamList;
private Map<TeamsInfos, WitchBoss> 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<TeamInfos, List<Player>> teamMap = new TreeMap<>();
for(TeamInfos infos : TeamInfos.values()){
TreeMap<TeamsInfos, List<Player>> 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<Player> getPlayerTeamList(final TeamInfos teamInfos) {
public List<Player> 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<TeamInfos, List<Player>> getPlayerTeamList() {
return this.playerTeamList;
}
public Map<TeamInfos, WitchBoss> getBossEntityMap() {
public Map<TeamsInfos, WitchBoss> getBossEntityMap() {
return this.bossEntityMap;
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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:

View File

@@ -0,0 +1,2 @@
game:
mode: "4x4"

View File

@@ -5,5 +5,6 @@ main: net.berrygames.witchrush.WitchRush
website: berrygames.net
commands:
game:
test:
gamestart:
setlocation:
aliases: [setloc, loc]