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

This commit is contained in:
BunSLaPatate
2018-09-22 23:44:17 +02:00
parent 04fce1fdd5
commit c3923d250e
15 changed files with 230 additions and 152 deletions

View File

@@ -9,7 +9,5 @@ public class CommandsManager {
public void register(WitchRush main){
main.getCommand("game").setExecutor(new GameCMD());
main.getCommand("test").setExecutor(new TestCMD());
System.out.println("Commandes register");
}
}

View File

@@ -7,7 +7,6 @@ import net.berrygames.witchrush.team.TeamInfos;
import net.berrygames.witchrush.team.TeamManager;
import net.berrygames.witchrush.tools.Locations;
import net.berrygames.witchrush.tools.PNJSpawner;
import net.berrygames.witchrush.tools.TeamsTagsManager;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Sound;
@@ -63,7 +62,6 @@ public class GameManager {
playerOnline.setLevel(0);
playerOnline.setGameMode(GameMode.SURVIVAL);
witchPlayer.giveStuff();
TeamsTagsManager.setNameTag(playerOnline, teamInfos.getIDName(), teamInfos.getChatColor()+teamInfos.getTeamName()+" ");
});
}

View File

@@ -26,10 +26,19 @@ 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());
this.endGame();
}
}
}
}
}
private void endGame() {
Bukkit.getScheduler().runTaskLater(WitchRush.get(), ()->{
Bukkit.getOnlinePlayers().forEach(players -> players.kickPlayer("§CPartie terminée"));
Bukkit.getServer().reload();
}, 20 * 10);
}
}

View File

@@ -1,8 +1,10 @@
package net.berrygames.witchrush.listeners;
import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.listeners.entities.DamageEvent;
import net.berrygames.witchrush.listeners.entities.EntityDeath;
import net.berrygames.witchrush.listeners.players.*;
import net.berrygames.witchrush.listeners.servers.PingServer;
import net.berrygames.witchrush.listeners.servers.ServerPing;
import net.berrygames.witchrush.listeners.world.WorldEvents;
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
@@ -15,17 +17,18 @@ public class ListenersManager {
// --- PLAYERS ---//
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);
pm.registerEvents(new FoodLevel(), main);
pm.registerEvents(new PlayerInteract(), main);
pm.registerEvents(new PlayerChat(), main);
pm.registerEvents(new PlayerDeath(), main);
pm.registerEvents(new PlayerFood(), main);
pm.registerEvents(new InventoryClick(), main);
pm.registerEvents(new DamageEvent(), main);
// --- WORLD ---//
pm.registerEvents(new WorldEvents(), main);
pm.registerEvents(new PingServer(), main);
pm.registerEvents(new ServerPing(), main);
System.out.println("Events register");
// --- ENTITIES ---//
pm.registerEvents(new EntityDeath(), main);
}
}

View File

@@ -0,0 +1,53 @@
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.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;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
public class DamageEvent implements Listener {
private TeamManager teamManager = WitchRush.get().getTeamManager();
@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.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);
}
});
}
}
break;
case VILLAGER:
if(e.getDamager() instanceof Player) e.setCancelled(true);
break;
}
}
}

View File

@@ -0,0 +1,44 @@
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.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;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.inventory.ItemStack;
public class EntityDeath implements Listener {
private TeamManager teamManager = WitchRush.get().getTeamManager();
@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);
}
}
}
}
}
}
}

View File

@@ -1,11 +1,9 @@
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.TeamManager;
import net.berrygames.witchrush.tools.TeamsTagsManager;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -19,7 +17,6 @@ public class InventoryClick implements Listener {
@EventHandler
public void inventoryClick(InventoryClickEvent e){
Player player = (Player) e.getWhoClicked();
WitchPlayer witchPlayer = WitchPlayer.get(player);
ItemStack item = e.getCurrentItem();
Inventory inv = e.getClickedInventory();
TeamManager teamManager = WitchRush.get().getTeamManager();
@@ -45,7 +42,6 @@ public class InventoryClick implements Listener {
teamManager.addPlayerTeam(player, teamInfos);
TeamInfos infos1 = teamManager.getPlayerTeam(player);
player.sendMessage(WitchRush.prefix()+"Vous avez rejoint la team "+infos1.getChatColor()+infos1.getTeamName());
TeamsTagsManager.setNameTag(player, player.getName(), infos1.getChatColor()+infos1.getTeamName()+" ");
player.closeInventory();
break;
case BARRIER:
@@ -55,7 +51,6 @@ public class InventoryClick implements Listener {
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_YES, 1.0f, 1.0f);
teamManager.removePlayerAllTeam(player);
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

@@ -10,7 +10,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
public class ChatEvent implements Listener {
public class PlayerChat implements Listener {
@EventHandler
public void chat(AsyncPlayerChatEvent e){

View File

@@ -0,0 +1,107 @@
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.TeamManager;
import net.berrygames.witchrush.tools.DeadPlayer;
import net.berrygames.witchrush.tools.Locations;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.inventory.ItemStack;
public class PlayerDeath implements Listener {
private TeamManager teamManager = WitchRush.get().getTeamManager();
@EventHandler
public void death(PlayerDeathEvent e) {
Player player = e.getEntity().getPlayer();
Player killer = e.getEntity().getKiller();
WitchPlayer witchPlayer = WitchPlayer.get(player);
WitchPlayer witchKiller = WitchPlayer.get(killer);
final TeamInfos teamvictim;
final 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");
} 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);
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:
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 {
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);
}
}
}
private void checkDrop(PlayerDeathEvent e){
for(final ItemStack itemStack : e.getDrops()){
switch (itemStack.getType()){
case LEATHER_BOOTS:
itemStack.setType(Material.AIR);
break;
case LEATHER_LEGGINGS:
itemStack.setType(Material.AIR);
break;
case LEATHER_CHESTPLATE:
itemStack.setType(Material.AIR);
break;
case LEATHER_HELMET:
itemStack.setType(Material.AIR);
break;
case DIAMOND_SWORD:
itemStack.setType(Material.AIR);
break;
}
}
}
}

View File

@@ -4,7 +4,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.FoodLevelChangeEvent;
public class FoodLevel implements Listener {
public class PlayerFood implements Listener {
@EventHandler
public void onFoodLevelChange(final FoodLevelChangeEvent e) {

View File

@@ -1,6 +1,5 @@
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.TeamsMenu;
@@ -17,7 +16,7 @@ import org.bukkit.event.player.PlayerInteractAtEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
public class InteractEvent implements Listener {
public class PlayerInteract implements Listener {
@EventHandler
public void pvp(EntityDamageEvent e){
@@ -54,15 +53,13 @@ public class InteractEvent implements Listener {
e.setCancelled(true);
}
e.setCancelled(true);
if(e.getRightClicked().getName().equals("S")){
if(e.getRightClicked().getName().equals("§6§lSHOP")){
e.setCancelled(true);
player.closeInventory();
player.sendMessage("s");
}
if(e.getRightClicked().getName().equals("U")){
if(e.getRightClicked().getName().equals("§3§lUPGRADE")){
e.setCancelled(true);
player.closeInventory();
player.sendMessage("u");
}
}
@@ -70,7 +67,6 @@ public class InteractEvent implements Listener {
@EventHandler
public void click(PlayerInteractEvent e){
Player player = e.getPlayer();
WitchPlayer witchPlayer = WitchPlayer.get(player);
Action action = e.getAction();
ItemStack item = e.getItem();
e.setCancelled(true);

View File

@@ -5,7 +5,6 @@ import net.berrygames.witchrush.WitchRush;
import net.berrygames.witchrush.game.GameState;
import net.berrygames.witchrush.game.task.StartTask;
import net.berrygames.witchrush.tools.Locations;
import net.berrygames.witchrush.tools.TeamsTagsManager;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -35,9 +34,6 @@ public class PlayerJoin implements Listener {
player.setFoodLevel(20);
player.teleport(Locations.PLAYER_SPAWN_WAITING_ROOM.getLocation());
witchPlayer.sendWaitingStuff();
TeamsTagsManager.setNameTag(player, player.getName(), "§7");
if(WitchRush.get().getState().equals(GameState.WAITING) && WitchPlayer.getwitchMap().size() >= 4){
new StartTask().runTaskTimer(WitchRush.get(), 0, 20);
WitchRush.get().setState(GameState.STARTING);
@@ -48,9 +44,6 @@ public class PlayerJoin implements Listener {
player.sendMessage("§8(Spectateur) §7Vous êtes spectateur pour cette partie.");
player.sendMessage("§7Seuls les autres spectateurs voient vos messages !");
player.sendMessage(" ");
TeamsTagsManager.setNameTag(player, player.getName(), "§8(Spec)§7 ");
e.setJoinMessage(null);
player.setGameMode(GameMode.SPECTATOR);
player.setLevel(0);

View File

@@ -5,7 +5,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.server.ServerListPingEvent;
public class PingServer implements Listener {
public class ServerPing implements Listener {
@EventHandler
public void ping(ServerListPingEvent e){

View File

@@ -27,7 +27,7 @@ public enum Locations {
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, 65, -8.5, 0, 0)),
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)),

View File

@@ -1,118 +0,0 @@
package net.berrygames.witchrush.tools;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
import java.util.Collection;
import java.util.UUID;
public class TeamsTagsManager {
private String prefix;
private String suffix;
private Team team;
public static Scoreboard scoreboard;
public TeamsTagsManager(final String name, final String prefix, final String suffix, final Scoreboard current) throws Exception {
this.prefix = prefix;
this.suffix = suffix;
this.team = current.getTeam(name);
if (this.team == null) {
this.team = current.registerNewTeam(name);
}
TeamsTagsManager.scoreboard = current;
this.team.setCanSeeFriendlyInvisibles(false);
this.team.setAllowFriendlyFire(false);
int prefixLength = 0;
int suffixLength = 0;
if (prefix != null) {
prefixLength = prefix.length();
}
if (suffix != null) {
suffixLength = suffix.length();
}
if (prefixLength + suffixLength >= 32) {
throw new Exception("prefix and suffix lenghts are greater than 16");
}
if (suffix != null) {
this.team.setSuffix(ChatColor.translateAlternateColorCodes('&', suffix));
}
if (prefix != null) {
this.team.setPrefix(ChatColor.translateAlternateColorCodes('&', prefix));
}
}
public TeamsTagsManager(final String name, final String prefix, final String suffix) throws Exception {
this(name, prefix, suffix, Bukkit.getScoreboardManager().getMainScoreboard());
}
public void set(final Player player) {
this.team.addPlayer((OfflinePlayer)player);
player.setScoreboard(TeamsTagsManager.scoreboard);
}
public void remove(final Player player) {
this.team.removePlayer((OfflinePlayer)player);
}
public void resetTagUtils(final UUID uuid) {
this.remove(Bukkit.getPlayer(uuid));
}
public void setAll(final Collection<Player> players) {
for (final Player player : players) {
this.set(player);
}
}
public void setAll(final Player[] players) {
for (final Player player : players) {
this.set(player);
}
}
public void setPrefix(final String prefix) {
this.prefix = ChatColor.translateAlternateColorCodes('&', prefix);
this.team.setPrefix(this.prefix);
}
public void setSuffix(final String suffix) {
this.suffix = ChatColor.translateAlternateColorCodes('&', suffix);
this.team.setSuffix(this.suffix);
}
public String getPrefix() {
return this.prefix;
}
public String getSuffix() {
return this.suffix;
}
public Team getTeam() {
return this.team;
}
public void removeTeam() {
this.team.unregister();
}
public Scoreboard getScoreboard() {
return TeamsTagsManager.scoreboard;
}
public static void setNameTag(final Player player, final String name, final String prefix) {
try {
final TeamsTagsManager golemaplayer = new TeamsTagsManager(name, prefix, null);
golemaplayer.set(player);
}
catch (Exception e) {
e.printStackTrace();
}
}
}