mirror of
https://github.com/ArthurDanjou/WitchRush.git
synced 2026-01-23 08:20:35 +01:00
Plugin avanced (80-85% done)
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 !");
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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("!",""));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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 !");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user