Plugin avanced (80-85% done)

This commit is contained in:
BunSLaPatate
2018-09-21 16:16:48 +02:00
parent c8ceb42a59
commit f3ccaef86c
22 changed files with 206 additions and 159 deletions

View File

@@ -23,6 +23,7 @@ public class WitchPlayer {
private Player player;
private boolean spectator;
private int kills, death;
private TeamManager manager;
public WitchPlayer(Player player) {
this.player = player;
@@ -31,31 +32,34 @@ public class WitchPlayer {
!WitchRush.get().getState().equals(GameState.WAITING);
this.kills = 0;
this.death = 0;
this.manager = WitchRush.get().getTeamManager();
}
public void teleportToBase(){
TeamManager teamManager = WitchRush.get().getTeamManager();
for(TeamInfos teamInfos : TeamInfos.values()){
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;
}
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;
}
}
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()));
player.getInventory().setItem(0, sword);
}

View File

@@ -15,6 +15,7 @@ public class WitchRush extends JavaPlugin {
private GameState gameState;
private TeamManager teamManager;
private boolean forcedStart;
@Override
public void onEnable() {
@@ -22,6 +23,7 @@ public class WitchRush extends JavaPlugin {
this.gameState = GameState.WAITING;
this.teamManager = new TeamManager();
this.forcedStart = false;
new CommandsManager().register(this);
new ListenersManager().register(this);
@@ -57,6 +59,12 @@ public class WitchRush extends JavaPlugin {
public TeamManager getTeamManager() {
return teamManager;
}
public boolean isForcedStart() {
return forcedStart;
}
public void setForcedStart(boolean forcedStart) {
this.forcedStart = forcedStart;
}
public static WitchRush get() {
return instance;

View File

@@ -1,6 +1,5 @@
package net.berrygames.witchrush.commands.admins;
import net.berrygames.witchrush.WitchPlayer;
import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.game.GameState;
import net.berrygames.witchrush.game.task.StartTask;
@@ -17,11 +16,11 @@ public class GameCMD implements CommandExecutor {
if(!(sender instanceof Player)) return false;
Player player = (Player) sender;
WitchPlayer witchPlayer = WitchPlayer.get(player);
if(args.length == 1 && args[0].equals("start")){
if(!player.isOp())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 !");

View File

@@ -1,5 +1,6 @@
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;
@@ -29,6 +30,11 @@ public class TestCMD implements CommandExecutor {
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());

View File

@@ -3,7 +3,6 @@ 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.listeners.custom.GameStartEvent;
import net.berrygames.witchrush.team.TeamInfos;
import net.berrygames.witchrush.team.TeamManager;
import net.berrygames.witchrush.tools.Locations;
@@ -24,25 +23,14 @@ public class GameManager {
if (!(this.isStart = false)) {
this.isStart = true;
WitchRush.get().setState(GameState.NOWITCH);
String startMessage = WitchRush.prefix()+"§dVous avez §63minutes §dpour vous préparez.";
Bukkit.broadcastMessage(WitchRush.prefix()+"§dLa partie commence !");
Bukkit.broadcastMessage(startMessage);
Bukkit.getServer().getPluginManager().callEvent(new GameStartEvent(startMessage));
this.loadPlayer();
for(WitchPlayer witchPlayer : WitchPlayer.getwitchMap().values()){
witchPlayer.giveStuff();
}
for(Player pls: Bukkit.getOnlinePlayers()){
pls.setGameMode(GameMode.SURVIVAL);
pls.playSound(pls.getLocation(), Sound.ENTITY_WITHER_SPAWN, 1, 1);
//Join si il a pas de team
if(WitchRush.get().getTeamManager().getPlayerTeam(pls) == null){
WitchRush.get().getTeamManager().addPlayerInRandomTeam(pls);
}
}
Bukkit.broadcastMessage(WitchRush.prefix()+"§dLa partie commence !");
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());

View File

@@ -1,11 +1,9 @@
package net.berrygames.witchrush.game;
import net.berrygames.witchrush.WitchPlayer;
import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.team.TeamInfos;
import net.berrygames.witchrush.team.TeamManager;
import org.bukkit.Bukkit;
import org.bukkit.event.Event;
public class WinManager {
@@ -25,15 +23,6 @@ public class WinManager {
if (!teamManager.getPlayerTeamList(teamInfos).isEmpty()) {
WitchRush.get().setState(GameState.FINISHING);
Bukkit.broadcastMessage(WitchRush.prefix()+"Victoire de l'équipe "+teamInfos.getChatColor()+teamInfos.getTeamName());
final TeamInfos teamInfos2;
final Event event;
final TeamManager teamManager2;
final Object o;
Bukkit.getOnlinePlayers().forEach(playerOnline -> {
final WitchPlayer witchPlayer = WitchPlayer.get(playerOnline);
Bukkit.getServer().getPluginManager();
return;
});
}
}
}

View File

@@ -1,6 +1,7 @@
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;
@@ -15,12 +16,14 @@ public class DeathMatchTask extends BukkitRunnable {
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).setLife(life);
WitchRush.get().getTeamManager().getBossEntityMap().get(infos).getWitch().setHealth(life);
}
return;
}
}
new WinManager();
lifeLosed++;
}
}

View File

@@ -34,7 +34,12 @@ public class HealthRunnable extends BukkitRunnable {
this.arMap.put(teamInfos, armorStand);
return;
}
arMap.get(teamInfos).setCustomName("§5§lVie: §c"+teamManager.getTeamBoss(teamInfos).getLife());
if(teamManager.isInLife(teamInfos)){
arMap.get(teamInfos).setCustomName(
teamInfos.getChatColor()+teamInfos.getTeamName()
+ "§7 - "+teamInfos.getChatColor()+teamManager.getTeamBoss(teamInfos).getLife()
);
}
}
}
}

View File

@@ -10,7 +10,7 @@ import org.bukkit.scheduler.BukkitRunnable;
public class NoPVPTask extends BukkitRunnable {
private int timer = 30;
private int timer = 3 * 20;
@Override
public void run() {

View File

@@ -2,6 +2,7 @@ package net.berrygames.witchrush.game.task;
import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.game.GameManager;
import net.berrygames.witchrush.game.GameState;
import org.bukkit.Bukkit;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
@@ -9,12 +10,20 @@ import org.bukkit.scheduler.BukkitRunnable;
public class StartTask extends BukkitRunnable {
private int timer = 30;
private int timer = WitchRush.get().isForcedStart() ? 30 : 120;
@Override
public void run() {
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);
this.cancel();
return;
}
if(timer == 0){
WitchRush.get().getTeamManager().checkNoTeamPlayers();
new GameManager();
cancel();
}

View File

@@ -2,6 +2,7 @@ package net.berrygames.witchrush.listeners;
import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.listeners.players.*;
import net.berrygames.witchrush.listeners.servers.PingServer;
import net.berrygames.witchrush.listeners.world.WorldEvents;
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
@@ -19,10 +20,11 @@ public class ListenersManager {
pm.registerEvents(new DeathEvent(), main);
pm.registerEvents(new FoodLevel(), main);
pm.registerEvents(new InventoryClick(), main);
pm.registerEvents(new WitchEvent(), main);
pm.registerEvents(new DamageEvent(), main);
// --- WORLD ---//
pm.registerEvents(new WorldEvents(), main);
pm.registerEvents(new PingServer(), main);
System.out.println("Events register");
}

View File

@@ -1,26 +0,0 @@
package net.berrygames.witchrush.listeners.custom;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
public class GameStartEvent extends Event {
public static final HandlerList handlers;
private String message;
public GameStartEvent(final String message) {
this.message = message;
}
public HandlerList getHandlers() {
return GameStartEvent.handlers;
}
public String getStartMessage() {
return this.message;
}
static {
handlers = new HandlerList();
}
}

View File

@@ -22,13 +22,12 @@ public class ChatEvent implements Listener {
} else if(witchPlayer.isSpectator()){
e.setCancelled(true);
for(WitchPlayer pls : WitchPlayer.getwitchMap().values()){
if(pls.isSpectator()){
for(Player players : Bukkit.getOnlinePlayers()){
for(Player players : Bukkit.getOnlinePlayers()){
if(pls.isSpectator()){
players.sendMessage("§7[Spectateur] §8"+player.getName()+" §7» "+e.getMessage());
}
}
}
//players.sendMessage("§7[Spectateur] §8"+player.getName()+" §7» "+e.getMessage());
} else {
String message = e.getMessage();
if(message.toLowerCase().startsWith("!")){
@@ -40,7 +39,7 @@ public class ChatEvent implements Listener {
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("!"," "));
+player.getDisplayName()+" §7» §f"+message.replace("!",""));
}
});
}

View File

@@ -5,6 +5,7 @@ import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.game.GameState;
import net.berrygames.witchrush.team.TeamInfos;
import net.berrygames.witchrush.team.TeamManager;
import net.berrygames.witchrush.tools.WitchBoss;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.entity.Villager;
@@ -13,17 +14,18 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
public class WitchEvent implements Listener {
public class DamageEvent implements Listener {
@EventHandler
public void onEntityDamageByEntity(final EntityDamageByEntityEvent e) {
final TeamManager teamManager = WitchRush.get().getTeamManager();
if(!WitchRush.get().getState().equals(GameState.WAITING) && !WitchRush.get().getState().equals(GameState.STARTING)){
if ((e.getDamager() instanceof Player) && (e.getEntity() instanceof Witch)){
final Player player = (Player)e.getDamager();
final Witch witch = (Witch) e.getEntity();
final TeamInfos playerTeamInfos = teamManager.getPlayerTeam(player);
if (teamManager.getTeamBoss(playerTeamInfos).getWitch().equals(witch)) {
if(teamManager.getTeamBoss(playerTeamInfos).getWitch().equals(witch)) {
player.sendMessage("§cVous ne pouvez pas tuer votre boss !");
e.setCancelled(true);
return;
@@ -34,16 +36,11 @@ public class WitchEvent implements Listener {
Bukkit.getOnlinePlayers().forEach(playerOnline -> {
WitchPlayer witchPlayer = WitchPlayer.get(playerOnline);
if (teamManager.isPlayerInTeam(playerOnline, teamInfos) && !witchPlayer.isSpectator()) {
playerOnline.sendTitle("§cWitch attaquée", null);
playerOnline.sendTitle("§cWitch attaquée !", " ");
//WitchRush.get().getTeamManager().getTeamBoss(teamInfos).getWitch().setHealth(
// WitchRush.get().getTeamManager().getTeamBoss(teamInfos).getWitch().getHealth() - e.getDamage()
//);
}
if(WitchRush.get().getTeamManager().getBossEntityMap().get(teamInfos).getLife() > 0){
int life = (int) (WitchRush.get().getTeamManager().getBossEntityMap().get(teamInfos).getLife() - e.getDamage());
WitchRush.get().getTeamManager().getBossEntityMap().get(teamInfos).setLife(life);
}
if(WitchRush.get().getTeamManager().getBossEntityMap().get(teamInfos).getLife() > 0){
witch.remove();
}
return;
});
}

View File

@@ -34,6 +34,9 @@ public class DeathEvent implements Listener {
WitchPlayer witchPlayer = WitchPlayer.get(player);
WitchPlayer witchKiller = WitchPlayer.get(killer);
TeamInfos teamvictim;
TeamInfos 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");
@@ -41,15 +44,7 @@ public class DeathEvent implements Listener {
if(killer instanceof Player){
switch (WitchRush.get().getState()){
case PVP:
if(teamManager.isInLife(teamManager.getPlayerTeam(player))){
TeamInfos teamvictim = WitchRush.get().getTeamManager().getPlayerTeam(player);
TeamInfos teamKiller = WitchRush.get().getTeamManager().getPlayerTeam(killer);
e.setDeathMessage(WitchRush.prefix()+teamvictim.getChatColor()+player.getName()+"§d a été tué par "+teamKiller.getChatColor()+ killer.getName());
new DeadPlayer(player);
witchKiller.setKills(witchKiller.getKills()+1);
witchPlayer.setDeath(witchPlayer.getDeath()+1);
} else {
if(!teamManager.isInLife(teamManager.getPlayerTeam(player))){
TeamInfos team = WitchRush.get().getTeamManager().getPlayerTeam(player);
e.setDeathMessage(WitchRush.prefix()+team.getChatColor()+player.getName()+"§c est éliminé");
witchPlayer.setDeath(witchPlayer.getDeath()+1);
@@ -64,12 +59,18 @@ public class DeathEvent implements Listener {
player.sendMessage(" ");
TeamsTagsManager.setNameTag(player, player.getName(), "§8(Spec)§7 ");
}
teamvictim = WitchRush.get().getTeamManager().getPlayerTeam(player);
teamKiller = WitchRush.get().getTeamManager().getPlayerTeam(killer);
e.setDeathMessage(WitchRush.prefix()+teamvictim.getChatColor()+player.getName()+"§d a été tué par "+teamKiller.getChatColor()+ killer.getName());
new DeadPlayer(player);
witchKiller.setKills(witchKiller.getKills()+1);
witchPlayer.setDeath(witchPlayer.getDeath()+1);
break;
case NOWITCH:
TeamInfos teamvictim = WitchRush.get().getTeamManager().getPlayerTeam(player);
TeamInfos teamKiller = WitchRush.get().getTeamManager().getPlayerTeam(killer);
teamvictim = WitchRush.get().getTeamManager().getPlayerTeam(player);
teamKiller = WitchRush.get().getTeamManager().getPlayerTeam(killer);
e.setDeathMessage(WitchRush.prefix()+teamvictim.getChatColor()+player.getName()+"§d a été tué par "+teamKiller.getChatColor()+ killer.getName());
new DeadPlayer(player);
@@ -77,8 +78,6 @@ public class DeathEvent implements Listener {
witchPlayer.setDeath(witchPlayer.getDeath()+1);
break;
}
} else {
TeamInfos team = WitchRush.get().getTeamManager().getPlayerTeam(player);
e.setDeathMessage(WitchRush.prefix()+team.getChatColor()+player.getName()+"§d est mort");
@@ -92,30 +91,28 @@ public class DeathEvent implements Listener {
@EventHandler
public void onEntityDeath(final EntityDeathEvent e) {
if (e.getEntity() instanceof Witch) {
if(e.getEntity().getKiller() instanceof Player){
final Witch witch = (Witch)e.getEntity();
final TeamManager teamManager = WitchRush.get().getTeamManager();
for (final ItemStack itemStack : e.getDrops()) {
itemStack.setType(Material.AIR);
final Witch witch = (Witch)e.getEntity();
final TeamManager teamManager = WitchRush.get().getTeamManager();
for (final ItemStack itemStack : e.getDrops()) {
itemStack.setType(Material.AIR);
}
TeamInfos teamInfos = null;
for (final TeamInfos teamInfosList : TeamInfos.values()) {
if (teamManager.getTeamBoss(teamInfosList).getWitch().equals(witch)) {
teamInfos = teamInfosList;
}
TeamInfos teamInfos = null;
for (final TeamInfos teamInfosList : TeamInfos.values()) {
if (teamManager.getTeamBoss(teamInfosList).getWitch().equals(witch)) {
teamInfos = teamInfosList;
}
}
Bukkit.broadcastMessage(WitchRush.prefix()+"L'équipe "+teamInfos.getChatColor()+teamInfos.getTeamName()+" §dest morte !");
if (e.getEntity().getKiller() instanceof Player) {
Bukkit.getPluginManager().callEvent(new BossDeathEvent(teamInfos, e.getEntity().getKiller()));
new HealthRunnable().arMap.get(teamInfos).setCustomNameVisible(false);
new HealthRunnable().arMap.remove(teamInfos);
}
for (final Player playerOnline : Bukkit.getOnlinePlayers()) {
playerOnline.playSound(playerOnline.getLocation(), Sound.ENTITY_WITHER_DEATH, 1.0f, 1.0f);
if (teamManager.isPlayerInTeam(playerOnline, teamInfos)) {
playerOnline.sendMessage(WitchRush.prefix()+"Votre Boss est mort! Ne mourrez pas !");
playerOnline.sendTitle("§cAttention","Votre boss est mort !");
}
}
Bukkit.broadcastMessage(WitchRush.prefix()+"L'équipe "+teamInfos.getChatColor()+teamInfos.getTeamName()+" §dest morte !");
if (e.getEntity().getKiller() instanceof Player) {
Bukkit.getPluginManager().callEvent(new BossDeathEvent(teamInfos, e.getEntity().getKiller()));
teamManager.getBossEntityMap().remove(teamInfos);
new HealthRunnable().arMap.remove(teamInfos);
}
for (final Player playerOnline : Bukkit.getOnlinePlayers()) {
playerOnline.playSound(playerOnline.getLocation(), Sound.ENTITY_WITHER_DEATH, 1.0f, 1.0f);
if (teamManager.isPlayerInTeam(playerOnline, teamInfos)) {
playerOnline.sendMessage(WitchRush.prefix()+"Votre Boss est mort! Ne mourrez pas !");
playerOnline.sendTitle("§cAttention","Votre boss est mort !");
}
}
}

View File

@@ -54,10 +54,8 @@ public class InventoryClick implements Listener {
case DOUBLE_PLANT:
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_YES, 1.0f, 1.0f);
teamManager.removePlayerAllTeam(player);
teamManager.addPlayerInRandomTeam(player);
TeamInfos infos2 = teamManager.getPlayerTeam(player);
player.sendMessage(WitchRush.prefix()+"Vous avez rejoint la team "+infos2.getChatColor()+infos2.getTeamName()+" ");
TeamsTagsManager.setNameTag(player, player.getName(), infos2.getChatColor());
player.sendMessage(WitchRush.prefix()+"Vous serez dans une équipe au debut de la partie !");
TeamsTagsManager.setNameTag(player, player.getName(), "§7");
player.closeInventory();
break;
}

View File

@@ -25,7 +25,7 @@ public class PlayerQuit implements Listener {
if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){
e.setQuitMessage(
WitchRush.prefix()+"§e"+player.getName()+
" §da rejoint la partie §7(§d"+
" §da quitté la partie §7(§d"+
WitchPlayer.getwitchMap().size()+
"§8/§d16§7)");
} else {
@@ -33,10 +33,9 @@ public class PlayerQuit implements Listener {
}
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 !");
if(!new StartTask().isCancelled()){
new StartTask().cancel();
}
new StartTask().cancel();
}
}

View File

@@ -0,0 +1,15 @@
package net.berrygames.witchrush.listeners.servers;
import net.berrygames.witchrush.WitchRush;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.server.ServerListPingEvent;
public class PingServer implements Listener {
@EventHandler
public void ping(ServerListPingEvent e){
e.setMotd(WitchRush.prefix()+WitchRush.get().getState());
}
}

View File

@@ -13,25 +13,67 @@ public class WorldEvents implements Listener {
@EventHandler
public void place(BlockPlaceEvent e){
if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){
e.setCancelled(true);
switch (WitchRush.get().getState()){
case WAITING:
e.setCancelled(true);
break;
case STARTING:
e.setCancelled(true);
break;
case NOWITCH:
e.setCancelled(false);
break;
case PVP:
e.setCancelled(false);
break;
case FINISHING:
e.setCancelled(true);
break;
}
}
@EventHandler
public void breake(BlockBreakEvent e){
if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){
e.setCancelled(true);
public void breakB(BlockBreakEvent e){
switch (WitchRush.get().getState()){
case WAITING:
e.setCancelled(true);
break;
case STARTING:
e.setCancelled(true);
break;
case NOWITCH:
e.setCancelled(false);
break;
case PVP:
e.setCancelled(false);
break;
case FINISHING:
e.setCancelled(true);
break;
}
}
@EventHandler
public void damage(BlockDamageEvent e){
if(WitchRush.get().getState().equals(GameState.WAITING) || WitchRush.get().getState().equals(GameState.STARTING)){
e.setCancelled(true);
switch (WitchRush.get().getState()){
case WAITING:
e.setCancelled(true);
break;
case STARTING:
e.setCancelled(true);
break;
case NOWITCH:
e.setCancelled(false);
break;
case PVP:
e.setCancelled(false);
break;
case FINISHING:
e.setCancelled(true);
break;
}
}
@EventHandler
public void onWeatherChange(final WeatherChangeEvent e) {
public void onWeatherChange(final WeatherChangeEvent e){
e.setCancelled(true);
}
}

View File

@@ -1,23 +1,27 @@
package net.berrygames.witchrush.team;
import org.bukkit.Color;
public enum TeamInfos {
VERT("Vert", "Vert", "§a", (short)13),
BLEU("Bleu", "Bleu", "§b", (short)11),
JAUNE("Jaune", "Jaune", "§e", (short)4),
ROUGE("Rouge", "Rouge", "§c", (short)14),
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) {
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() {
@@ -36,6 +40,10 @@ public enum TeamInfos {
return dataClay;
}
public Color getColor() {
return color;
}
public static TeamInfos getTeamInfosByIDName(final String ID) {
for (final TeamInfos teamInfos : values()) {
if (teamInfos.getIDName().equalsIgnoreCase(ID)) {

View File

@@ -1,8 +1,8 @@
package net.berrygames.witchrush.team;
import net.berrygames.witchrush.WitchPlayer;
import net.berrygames.witchrush.tools.Locations;
import net.berrygames.witchrush.tools.WitchBoss;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
@@ -43,9 +43,19 @@ public class TeamManager {
}
public void addPlayerInRandomTeam(final Player player) {
Arrays.stream(TeamInfos.values())
.filter(teams -> teamIsFull(teams))
.filter(teams -> (WitchPlayer.getwitchMap().size() / 4) > getTeamPlayerCount(teams)/)
TreeMap<TeamInfos, Player> teams = new TreeMap<>();
for(TeamInfos infos : TeamInfos.values()){
for(Player pls: Bukkit.getOnlinePlayers()){
if(!isPlayerInTeam(pls , infos)) teams.put(infos, pls);
}
}
if(!playerHaveTeam(player)) addPlayerTeam(player, teams.firstKey());
}
public void checkNoTeamPlayers() {
for(Player onlinePlayers : Bukkit.getOnlinePlayers()) {
if(!playerHaveTeam(onlinePlayers)) addPlayerInRandomTeam(onlinePlayers);
}
}
public boolean isInLife(final TeamInfos teamInfos) {

View File

@@ -22,7 +22,7 @@ public class WitchBoss {
this.manager = WitchRush.get().getTeamManager();
manager.getBossEntityMap().put(teamInfos, this);
this.witch = (Witch) Bukkit.getWorld("world").spawnEntity(location, EntityType.WITCH);
this.life = 500;
this.life = 50;
this.witch.setMaxHealth(this.life);
this.witch.setHealth(this.life);
this.witch.setCustomNameVisible(false);
@@ -45,12 +45,7 @@ public class WitchBoss {
}
public int getLife() {
return this.life;
return (int) this.witch.getHealth();
}
public void setLife(int life){
this.life = life;
}
}