From 2714efbba3f44218648d50cc709756b215562822 Mon Sep 17 00:00:00 2001 From: BunSLaPatate Date: Fri, 14 Sep 2018 16:40:51 +0200 Subject: [PATCH] Avancement du Plugin --- .../net/berrygames/witchrush/WitchPlayer.java | 8 +-- .../net/berrygames/witchrush/WitchRush.java | 2 +- .../witchrush/game/DeathMatchTask.java | 4 ++ .../berrygames/witchrush/game/GameState.java | 2 +- .../berrygames/witchrush/game/NoPVPTask.java | 11 +--- .../berrygames/witchrush/game/PVPTask.java | 4 ++ .../berrygames/witchrush/game/StartTask.java | 12 +++- .../witchrush/listeners/ListenersManager.java | 6 +- .../listeners/players/ChatEvent.java | 24 ++++++++ .../listeners/players/DeathEvent.java | 37 +++++++++++++ .../listeners/players/InteractEvent.java | 8 +++ .../listeners/players/PlayerJoin.java | 2 +- .../witchrush/tools/DeadPlayer.java | 55 +++++++++++++++++++ .../witchrush/tools/SpawnWitch.java | 1 - 14 files changed, 154 insertions(+), 22 deletions(-) create mode 100644 WitchRush/src/main/java/net/berrygames/witchrush/game/DeathMatchTask.java create mode 100644 WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/ChatEvent.java create mode 100644 WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/DeathEvent.java create mode 100644 WitchRush/src/main/java/net/berrygames/witchrush/tools/DeadPlayer.java diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/WitchPlayer.java b/WitchRush/src/main/java/net/berrygames/witchrush/WitchPlayer.java index 75135eb..b15fc20 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/WitchPlayer.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/WitchPlayer.java @@ -38,7 +38,9 @@ public class WitchPlayer { } public void giveStuff(){ - + player.getInventory().clear(); + ItemStack sword = new ItemStack(Material.DIAMOND_SWORD); + player.getInventory().setItem(0, sword); } public void sendLobby(){ @@ -49,10 +51,6 @@ public class WitchPlayer { } - public void applySpectator() { - - } - public static WitchPlayer get(final Player player) { if (WitchPlayer.witchMap.get(player) == null) { WitchPlayer.witchMap.put(player, new WitchPlayer(player)); diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/WitchRush.java b/WitchRush/src/main/java/net/berrygames/witchrush/WitchRush.java index f2a45fd..6cff41a 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/WitchRush.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/WitchRush.java @@ -57,6 +57,6 @@ public class WitchRush extends JavaPlugin { } public static String prefix(){ - return "§5§lWitchRush §8§l\u258f §d"; + return "§5§lWitchRush §d§l\u258f §d"; } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/DeathMatchTask.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/DeathMatchTask.java new file mode 100644 index 0000000..e31bf89 --- /dev/null +++ b/WitchRush/src/main/java/net/berrygames/witchrush/game/DeathMatchTask.java @@ -0,0 +1,4 @@ +package net.berrygames.witchrush.game; + +public class DeathMatchTask { +} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/GameState.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/GameState.java index d72f568..64ac566 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/GameState.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/game/GameState.java @@ -4,7 +4,7 @@ public enum GameState { WAITING, STARTING, - NOPVP, + NOWITCH, PVP, DEATH_MATCH, FINISHING, diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/NoPVPTask.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/NoPVPTask.java index 2d612a4..73a3aa5 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/NoPVPTask.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/game/NoPVPTask.java @@ -4,7 +4,6 @@ import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.tools.Locations; import net.berrygames.witchrush.tools.SpawnWitch; import org.bukkit.Bukkit; -import org.bukkit.entity.Witch; import org.bukkit.scheduler.BukkitRunnable; public class NoPVPTask extends BukkitRunnable { @@ -13,24 +12,18 @@ public class NoPVPTask extends BukkitRunnable { @Override public void run() { - WitchRush.get().setState(GameState.NOPVP); - 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 !"); - + Bukkit.broadcastMessage(WitchRush.prefix()+"Les §6Witchs §dsont apparues, §d§nBonne chance à vous !"); new SpawnWitch("W", Locations.WITCH_ROUGE.getLocation()).spawn(); new SpawnWitch("W", Locations.WITCH_BLEU.getLocation()).spawn(); new SpawnWitch("W", Locations.WITCH_VERT.getLocation()).spawn(); new SpawnWitch("W", Locations.WITCH_JAUNE.getLocation()).spawn(); - cancel(); } - timer--; } - - } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/PVPTask.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/PVPTask.java index 2ab95f2..822627c 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/PVPTask.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/game/PVPTask.java @@ -9,6 +9,10 @@ public class PVPTask extends BukkitRunnable { @Override public void run() { + if(timer == 0){ + new DeathMatchTask(); + cancel(); + } timer--; } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/game/StartTask.java b/WitchRush/src/main/java/net/berrygames/witchrush/game/StartTask.java index 7b7840b..bd7b2d2 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/game/StartTask.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/game/StartTask.java @@ -1,9 +1,11 @@ package net.berrygames.witchrush.game; +import net.berrygames.witchrush.WitchPlayer; import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.tools.Locations; import net.berrygames.witchrush.tools.SpawnPNJ; import org.bukkit.Bukkit; +import org.bukkit.GameMode; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; @@ -16,10 +18,18 @@ public class StartTask extends BukkitRunnable { if(timer == 0){ new NoPVPTask().runTaskTimer(WitchRush.get(), 0, 20); + WitchRush.get().setState(GameState.NOWITCH); + Bukkit.broadcastMessage(WitchRush.prefix()+"§dLa partie commence !"); - Bukkit.broadcastMessage(WitchRush.prefix()+"§Vous avez §63minutes §dpour vous préparez."); + Bukkit.broadcastMessage(WitchRush.prefix()+"§dVous avez §63minutes §dpour vous préparez."); cancel(); + for(WitchPlayer witchPlayer : WitchPlayer.getwitchMap().values()){ + witchPlayer.giveStuff(); + } + for(Player pls: Bukkit.getOnlinePlayers()){ + pls.setGameMode(GameMode.SURVIVAL); + } //TP Player //Spawn SHOP diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/ListenersManager.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/ListenersManager.java index bb6a972..1d2a3fa 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/ListenersManager.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/ListenersManager.java @@ -1,9 +1,7 @@ package net.berrygames.witchrush.listeners; import net.berrygames.witchrush.WitchRush; -import net.berrygames.witchrush.listeners.players.InteractEvent; -import net.berrygames.witchrush.listeners.players.PlayerJoin; -import net.berrygames.witchrush.listeners.players.PlayerQuit; +import net.berrygames.witchrush.listeners.players.*; import net.berrygames.witchrush.listeners.world.WorldEvents; import org.bukkit.Bukkit; import org.bukkit.plugin.PluginManager; @@ -17,6 +15,8 @@ public class ListenersManager { pm.registerEvents(new PlayerJoin(), main); pm.registerEvents(new PlayerQuit(), main); pm.registerEvents(new InteractEvent(), main); + pm.registerEvents(new ChatEvent(), main); + pm.registerEvents(new DeathEvent(), main); // --- WORLD ---// pm.registerEvents(new WorldEvents(), main); diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/ChatEvent.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/ChatEvent.java new file mode 100644 index 0000000..4bfdee8 --- /dev/null +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/ChatEvent.java @@ -0,0 +1,24 @@ +package net.berrygames.witchrush.listeners.players; + +import net.berrygames.witchrush.WitchPlayer; +import net.berrygames.witchrush.WitchRush; +import net.berrygames.witchrush.game.GameState; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.AsyncPlayerChatEvent; + +public class ChatEvent implements Listener { + + @EventHandler + public void chat(AsyncPlayerChatEvent e){ + 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[§6Global§7] §e%1$s §7» §f%2$s"); + } + } + +} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/DeathEvent.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/DeathEvent.java new file mode 100644 index 0000000..0c3f4b9 --- /dev/null +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/DeathEvent.java @@ -0,0 +1,37 @@ +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.tools.DeadPlayer; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; + +public class DeathEvent implements Listener { + + @EventHandler + public void death(PlayerDeathEvent e) throws InterruptedException { + Player player = e.getEntity().getPlayer(); + Player killer = e.getEntity().getKiller(); + WitchPlayer witchPlayer = WitchPlayer.get(player); + WitchPlayer witchKiller = WitchPlayer.get(killer); + + 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 { + e.setDeathMessage(WitchRush.prefix()+"§e"+player.getName()+"§d a été tué par §e"+ killer.getName()); + new DeadPlayer(player); + player.setHealth(20); + + killer.sendMessage("§dVous avez tué §e"+player.getName()); + witchKiller.setKills(witchKiller.getKills()+1); + + player.sendMessage("§e"+killer.getName()+" §dvous avez tué"); + witchPlayer.setDeath(witchPlayer.getDeath()+1); + } + } + +} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/InteractEvent.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/InteractEvent.java index ec247d6..f8c2424 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/InteractEvent.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/InteractEvent.java @@ -2,6 +2,7 @@ package net.berrygames.witchrush.listeners.players; import net.berrygames.witchrush.WitchRush; import net.berrygames.witchrush.game.GameState; +import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -40,11 +41,18 @@ public class InteractEvent implements Listener { e.setCancelled(true); } if(e.getRightClicked().getName().equals("S")){ + e.setCancelled(true); player.sendMessage("s"); } if(e.getRightClicked().getName().equals("U")){ + e.setCancelled(true); player.sendMessage("u"); } + if(e.getRightClicked().getType().equals(EntityType.WITCH)){ + //detect player's witch + + //damage other witch + } } } diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerJoin.java b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerJoin.java index 0a23926..946b2ac 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerJoin.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/listeners/players/PlayerJoin.java @@ -26,7 +26,7 @@ public class PlayerJoin implements Listener { "§8/§d16§7)"); player.sendTitle("§5WitchRush", "§DLe rush avec des Witchs"); - + player.getInventory().clear(); player.setGameMode(GameMode.ADVENTURE); player.setLevel(0); player.setHealth(20); diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/tools/DeadPlayer.java b/WitchRush/src/main/java/net/berrygames/witchrush/tools/DeadPlayer.java new file mode 100644 index 0000000..18a7624 --- /dev/null +++ b/WitchRush/src/main/java/net/berrygames/witchrush/tools/DeadPlayer.java @@ -0,0 +1,55 @@ +package net.berrygames.witchrush.tools; + +import net.berrygames.witchrush.WitchPlayer; +import net.berrygames.witchrush.WitchRush; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.entity.Player; +import org.bukkit.scheduler.BukkitTask; + +public class DeadPlayer { + + private Player player; + private WitchPlayer witchPlayer; + private int timer = 5; + private BukkitTask task; + //team + + + public DeadPlayer(Player player) { + this.player = player; + this.witchPlayer = WitchPlayer.get(player); + this.witchPlayer.setSpectator(true); + + becomeSpec(); + } + + private void becomeSpec(){ + player.setGameMode(GameMode.SPECTATOR); + witchPlayer.teleportPlayer(); + sendTitle(); + } + + private void sendTitle(){ + player.sendTitle("§cVous êtes mort", null); + task = Bukkit.getScheduler().runTaskTimer(WitchRush.get(), new Runnable() { + @Override + public void run() { + if(timer == 0){ + player.sendTitle("§cVous êtes mort", "§c§oRespawn..."); + respawn(); + Bukkit.getScheduler().cancelTask(task.getTaskId()); + } + player.sendTitle("§cVous êtes mort", "§c§oRespawn dans "+timer+"..."); + timer--; + } + }, 20, 20); + } + + private void respawn(){ + witchPlayer.setSpectator(false); + player.setGameMode(GameMode.SURVIVAL); + //TP BASE EQUIPE + witchPlayer.giveStuff(); + } +} diff --git a/WitchRush/src/main/java/net/berrygames/witchrush/tools/SpawnWitch.java b/WitchRush/src/main/java/net/berrygames/witchrush/tools/SpawnWitch.java index a2fe826..9f2b957 100644 --- a/WitchRush/src/main/java/net/berrygames/witchrush/tools/SpawnWitch.java +++ b/WitchRush/src/main/java/net/berrygames/witchrush/tools/SpawnWitch.java @@ -22,7 +22,6 @@ public class SpawnWitch { w.setCustomNameVisible(true); w.setSilent(true); w.setGravity(false); - w.setInvulnerable(true); }); }