Source: https://pastebin.com/NHi8DNxQ
Timestamp: 2019-02-19 14:04:31+00:00

Document:
[Java] package be.hokkaydo.lguhc; import java.util.ArrayList; import java.util.Arra - Pastebin.com
rawdownloadcloneembedreportprint Java 42.39 KB
package be.hokkaydo.lguhc;
Boolean RezSoso = false;
Boolean RezIpdl = false;
Boolean ipdl = false;
Boolean ancientDead = false;
Boolean hasShot = false;
static Boolean hasSee = false;
Player contamined;
Boolean isContaminingEnded = false;
int flair = 3;
Player master;
Player salva1;
Player salva2;
Player lastSalva;
Boolean isCoupleSet = false;
HashMap<Player, Integer> numberMsgSisters = new HashMap<>();
RolesManager rm = new RolesManager();
CheckWin cw = new CheckWin();
SpawnManager sm = new SpawnManager();
ConfigManager cm = new ConfigManager();
Chrono c = new Chrono();
HashMap<Player, String> lastDeathMSG = new HashMap<>();
Map<Player, Location> lastDeathLoc = new HashMap<Player,Location>();
Map<Player, Player> lastDeathKillerPlayer = new HashMap<>();
public static boolean start;
public static Map<Player, ScoreboardSign> boards = new HashMap<>();
public static Map<Player, CustomScoreboard> compo1 = new HashMap<>();
public static Map<Player, CustomScoreboard> compo2 = new HashMap<>();
String prefix = "§b§l[§6§lLOUPS-GAROUS§b§l]§r";
Player Couple = null;
System.out.println(" __________________________________________________ ");
System.out.println("| LGUHC V0.1 |");
System.out.println("| Plugin par Hokkaydo |");
System.out.println("| Afin de configurer le plugin selon |");
System.out.println("| vos envies, veuillez vous rendre dans votre |");
System.out.println("| dossier de serveur, ensuite allez dans le |");
System.out.println("| dossier \"plugins\" puis ouvrez le dossier |");
System.out.println("| \"LGUHC\" et ouvrez le fichier config.yml |");
System.out.println("| Modifiez les options selon votre convenance ! |");
System.out.println("| Pour tout renseignement additionel, |");
System.out.println("| Veuillez contacter Hokkaydo#7384 sur Discord |");
System.out.println("|__________________________________________________|");
getCommand("lg").setExecutor(this);
getCommand("rules").setExecutor(this);
getCommand("bypasstime").setExecutor(this);
cm.registerConfig(this);
p.setMaxHealth(20);
getServer().getWorld(ConfigManager.world).setGameRuleValue("doDaylightCycle", "true");
Bukkit.dispatchCommand(getServer().getConsoleSender(), "gamerule reducedDebugInfo false");
Bukkit.dispatchCommand(getServer().getConsoleSender(), "gamerule sendCommandFeedback true");
Bukkit.dispatchCommand(getServer().getConsoleSender(), "gamerule naturalRegeneration false");
for(ScoreboardSign sign : boards.values()) {
sign.destroy();
for(CustomScoreboard sign : compo1.values()) {
sign.getScoreboard().resetScores("d");
for(CustomScoreboard sign : compo2.values()) {
if(command.getName().toString().equalsIgnoreCase("lg")) {
if(args[0].equalsIgnoreCase("msg")) {
if(!args[0].equals(arg)) {
string.append(arg + " ");
lastDeathMSG.put(p, string.toString());
p.sendMessage(prefix+"§a Votre dernière volonté a bien été enregistréé ! Elle sera diffusée à tous à votre mort");
}else if(args[0].equalsIgnoreCase("sauver")) {
if(!ipdl) {
if(!RezSoso) {
if(args[1] != null) {
if(lastDeathLoc.containsKey(Bukkit.getPlayer(args[1]))) {
Bukkit.getPlayer(args[1]).teleport(sm.getRandomLocation(Bukkit.getPlayer(args[1]), this));
Bukkit.getPlayer(args[1]).sendMessage(prefix+"§a La Sorcière a décidé de vous ressusciter !");
p.sendMessage(prefix+ "§a " + Bukkit.getPlayer(args[1]).getName() + " a bien été ressuscité !");
lastDeathLoc.remove(Bukkit.getPlayer(args[1]));
if(Bukkit.getPlayer(args[1]).equals(salva1)){
Bukkit.getPlayer(args[1]).addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 20*(600-Chrono.timeSalva1), 1, false, false));
}else if(Bukkit.getPlayer(args[1]).equals(salva2)) {
Bukkit.getPlayer(args[1]).addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 20*(600-Chrono.timeSalva2), 1, false, false));
if(CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getRole().equals(Roles.ANCIEN)) {
Bukkit.getPlayer(args[1]).addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 20*60*60*5, 0, false, false));
}else if(CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getRole().equals(Roles.RENARD)){
Bukkit.getPlayer(args[1]).addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 20*60*60*5, 0, false, false));
RezSoso = true;
p.sendMessage( prefix + "§c Le joueur est introuvable");
p.sendMessage(prefix + "§c Veuillez préciser un joueur");
p.sendMessage(prefix + "§c Vous avez déjà utilisé votre pouvoir");
p.sendMessage(prefix + "§c Vous n'êtes pas Sorcière");
}else if(args[0].equalsIgnoreCase("infecter")) {
if(CustomPlayer.playersAlive.get(((Player) sender).getUniqueId()).getRole().equals(Roles.IPDL)) {
if(!RezIpdl) {
Bukkit.getPlayer(args[1]).sendMessage(prefix+"§a L'Infect Père des Loups a décidé de vous ressusciter dans son camp !");
p.sendMessage(prefix+ "§a " + Bukkit.getPlayer(args[1]).getName() + " a bien été infecté !");
CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).setInfected(true);
CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).setCamp(Camp.LG);;
cw.checkWin(this);
RezIpdl = true;
p.sendMessage(prefix + "§c Le joueur est introuvable");
p.sendMessage(prefix + "§c Vous n'êtes pas Infect Père des Loups");
}else if(args[0].equalsIgnoreCase("voir")) {
if(CustomPlayer.playersAlive.get(((Player) sender).getUniqueId()).getRole().equals(Roles.VOYANTE)) {
if(Chrono.minutes % 10 == 0 && !hasSee) {
if(!args[1].equals(null)) {
sender.sendMessage(prefix + " Ce joueur est " + CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getRole().getName());
hasSee = true;
if(ConfigManager.isVoyanteBavarde()) {
Bukkit.broadcastMessage(prefix+ " La Voyante Bavarde a espionné un joueur qui est " + CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getRole().getName());
sender.sendMessage(prefix + " Joueur introuvable !");
System.out.println(Chrono.minutes + " " + hasSee);
sender.sendMessage(prefix + " Veuillez attendre le prochain jour pour voir le rôle d'un joueur");
sender.sendMessage(prefix + " Vous n'êtes pas Vvoyante !");
}else if(args[0].equalsIgnoreCase("love")) {
if(CustomPlayer.playersAlive.get(((Player) sender).getUniqueId()).getRole().equals(Roles.CUPIDON)) {
if(!isCoupleSet) {
Player coupleUn = Bukkit.getPlayer(args[1]);
Player coupleDeux = Bukkit.getPlayer(args[2]);
if(!coupleUn.equals(coupleDeux) && !coupleUn.equals(sender) && !coupleDeux.equals(sender)) {
if(CustomPlayer.playersAlive.containsKey(coupleUn.getUniqueId()) && CustomPlayer.playersAlive.containsKey(coupleUn.getUniqueId())) {
CustomPlayer.playersAlive.get(coupleUn.getUniqueId()).setCouple(true);
CustomPlayer.playersAlive.get(coupleDeux.getUniqueId()).setCouple(true);
CustomPlayer.coupleMap.put(coupleUn.getUniqueId(), CustomPlayer.playersAlive.get(coupleUn.getUniqueId()));
CustomPlayer.coupleMap.put(coupleDeux.getUniqueId(), CustomPlayer.playersAlive.get(coupleDeux.getUniqueId()));
coupleUn.sendMessage(prefix+"§a Vous êtes amoureux de " + coupleDeux.getName() + ". Si l'un d'entre vous vient à mourir, le second le suivra de chagrin dans sa tombe !");
coupleDeux.sendMessage(prefix+"§a Vous êtes amoureux de " + coupleUn.getName() + ". Si l'un d'entre vous vient à mourir, le second le suivra de chagrin dans sa tombe !");
p.sendMessage(prefix + "§a Vos flèches ont transpercés les coeurs des deux jeunes amoureux. Si l'un d'eux vient à mourir, le second succombera de chagrin");
isCoupleSet = true;
sender.sendMessage(prefix + "§c Veuillez choisir deux joueurs vivants");
sender.sendMessage(prefix + "§c Veuillez choisir deux joueurs différents de vous-même");
sender.sendMessage(prefix + "§c Joueurs non trouvés");
sender.sendMessage(prefix + "§c Vous n'êtes pas Cupidon !");
}else if(args[0].equalsIgnoreCase("tirer")) {
if(CustomPlayer.PLAYERS.get(((Player) sender).getUniqueId()).getRole().equals(Roles.CHASSEUR)) {
if(!CustomPlayer.playersAlive.containsKey(((Player) sender).getUniqueId())) {
if(!hasShot) {
Bukkit.getPlayer(args[1]).setHealth(Bukkit.getPlayer(args[1]).getHealth() - 10);
p.sendMessage(prefix + "§6 Le chasseur a décidé de tirer sur " + Bukkit.getPlayer(args[1]).getDisplayName() + " qui a perdu 5 coeurs jusqu'au lendemain");
c.timeChasseur(this, Bukkit.getPlayer(args[1]));
p.sendMessage(prefix + "§c Joueur introuvable");
p.sendMessage(prefix + "§c Vous avez déjà tiré");
p.sendMessage(prefix + "§c Attendez d'être mort pour exécuter cette commande");
p.sendMessage(prefix + "§c Vous n'êtes pas Chasseur");
}else if(args[0].equalsIgnoreCase("flairer")) {
if(CustomPlayer.playersAlive.containsKey(p.getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().equals(Roles.RENARD)) {
if(flair > 0) {
flair--;
if(Bukkit.getPlayer(args[1]).getLocation().distance(p.getLocation()) > 5) {
Roles role = CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getRole();
if(role.equals(Roles.IPDL) || role.equals(Roles.LG) || role.equals(Roles.LGB)) {
p.sendMessage(prefix + "§6Ce joueur appartient au camp des Loups-Garous !");
p.sendMessage(prefix + "§6 Ce joueur n'appartient pas au camps des Loups-Garous !");
p.sendMessage(prefix + "Joueur introuvable");
p.sendMessage(prefix + "§c Vous avez déjà épuisé tous vos flairs");
p.sendMessage(prefix + "§c Vous n'êtes pas Renard");
}else if(args[0].equalsIgnoreCase("contaminer")) {
if(CustomPlayer.playersAlive.containsKey(p.getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().equals(Roles.LGGRIS)) {
if(Chrono.minutes < 25 && Chrono.hours < 1 && contamined == null) {
contamined = Bukkit.getPlayer(args[1]);
if(!CustomPlayer.playersAlive.get(contamined.getUniqueId()).getCamp().equals(Camp.LG) || CustomPlayer.playersAlive.get(contamined.getUniqueId()).getRole().equals(Roles.LGB) ) {
if(!CustomPlayer.playersAlive.get(contamined.getUniqueId()).getRole().equals(Roles.ANCIEN)) {
c.timeToBeContaminated(this, p, Bukkit.getPlayer(args[1]));
contamined = Bukkit.getPlayer(CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getUniqueId());
p.sendMessage(prefix+ "§a " + contamined.getName() + " a bien été désigné comme la cible à contaminer !");
p.sendMessage(prefix + "§6 Vous avez essayé de vous attaquer au Grand Sage du village ! Fuyez, vous êtes découvert !"); Bukkit.getPlayer(args[1]).sendMessage(p.getName() + " a tentÃ© de s'attaquer Ã vous, vous ne saviez pas grand chose Ã propos de lui mais maintenant vous commencer Ã apercevoir ses affreux bubons que seuls les Loups Contagieux portent sur leur horrible poil !");
contamined = p;
p.sendMessage(prefix+ "Ce joueur est déjà un Loup-Garou !");
if(contamined != null) {
p.sendMessage(prefix + "§c Vous avez déjà choisi une victime");
System.out.println(Chrono.minutes + " " + Chrono.hours);
p.sendMessage(prefix + "§c Vous n'êtes pas Loup Gris");
}else if(args[0].equalsIgnoreCase("maitre")) {
if(CustomPlayer.playersAlive.containsKey(p.getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().equals(Roles.ES)) {
if(Chrono.minutes < 25 && Chrono.hours < 0 && master == null) {
if(CustomPlayer.playersAlive.containsKey(master.getUniqueId()) && CustomPlayer.PLAYERS.containsKey(master.getUniqueId())) {
master = Bukkit.getPlayer(args[1]);
p.sendMessage(prefix + "§a Vous avez choisi " + master.getName() + " comme maître. S'il vient à mourir, vous passerez dans le campd es Liups-Garous et devrez gagner avec eux");
if(!CustomPlayer.playersAlive.containsKey(master.getUniqueId()) && CustomPlayer.PLAYERS.containsKey(master.getUniqueId())) {
p.sendMessage(prefix + "§c Ce joueur est déjà mort");
p.sendMessage(prefix + "§c Ce joueur ne joue pas cette partie");
p.sendMessage(prefix + "§c Vous avez déjà choisi un maître");
p.sendMessage(prefix + "§c Le délai est dépassé");
p.sendMessage(prefix + "§c Vous n'êtes pas Enfant Sauvage");
}else if(args[0].equalsIgnoreCase("salvation")) {
if(CustomPlayer.playersAlive.containsKey(p.getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().equals(Roles.SALVATEUR)) {
if(Chrono.minutes % 10 == 0 || (Chrono.minutes - 1) % 10 == 0) {
if(!Bukkit.getPlayer(args[1]).equals(lastSalva)) {
if(salva1 == null) {
salva1 = Bukkit.getPlayer(args[1]);
salva1.sendMessage(prefix+ "§a Le Salvateur vous a accordé sa protection. Vous diposez de NoFall et Résistance 2 jusqu'au prochain jour !");
c.timeToBeUnsalvated(this, 1);
lastSalva = Bukkit.getPlayer(args[1]);
p.sendMessage(prefix+"§a Vous avez bien accordé votre salvation à " + salva1.getName() + ". Il bénéficie donc de NoFall et Résistance 2 jusqu'au prochain jour !");
salva2 = Bukkit.getPlayer(args[1]);
salva2.sendMessage(prefix+ "§a Le Salvateur vous a accordé sa protection. Vous diposez de NoFall et Résistance 2 jusqu'au prochain jour !");
c.timeToBeUnsalvated(this, 2);
p.sendMessage(prefix+"§a Vous avez bien accordé votre salvation à " + salva2.getName() + ". Il bénéficie donc de NoFall et Résistance 2 jusqu'au prochain jour !");
Bukkit.getPlayer(args[1]).addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 20*60*10, 1, false, false));
p.sendMessage(prefix + "§c Vous ne pouvez pas donner la salvation deux fois de suite au même joueur");
p.sendMessage("§c Joueur introuvable");
p.sendMessage(prefix + "§c Vous ne pouvez donner la salvation à un joueur que durant la première minute de la journée");
}else if(args[0].equalsIgnoreCase("soeur")) {
if(CustomPlayer.playersAlive.containsKey(p.getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().equals(Roles.SOEUR)) {
if(!numberMsgSisters.containsKey(p) || numberMsgSisters.get(p) < 3) {
for(CustomPlayer cp : CustomPlayer.playersAlive.values()) {
if(cp.getRole().equals(Roles.SOEUR)) {
if(cp.getUniqueId() != p.getUniqueId()) {
string.append(arg);
Bukkit.getPlayer(cp.getUniqueId()).sendMessage("[Reçu de " + p.getName() + "] " + string.toString());
p.sendMessage(prefix+"§a Message envoyé avec succès !");
if(!numberMsgSisters.containsKey(p)) {
numberMsgSisters.put(p, 1);
numberMsgSisters.put(p, numberMsgSisters.get(p) + 1);
p.sendMessage(prefix + "§c Vous ne pouvez communiquer avec votre soeur que 3 fois par jour");
p.sendMessage(prefix + "§c Vous n'êtes pas Soeur");
}else if(args[0].equalsIgnoreCase("role")) {
if(CustomPlayer.playersAlive.containsKey(p.getUniqueId())) {
p.sendMessage(CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().getMsgReveal());
if(CustomPlayer.playersAlive.get(p.getUniqueId()).getCamp().equals(Camp.LG)) {
StringBuilder lgList = new StringBuilder();
if(cp.getCamp().equals(Camp.LG)) {
lgList.append(Bukkit.getPlayer(cp.getUniqueId()).getName() + " ");
p.sendMessage(prefix+"§4 Les pseudos des Loups-Garous sont : \n§c" + lgList);
p.sendMessage(prefix+"§c Vous n'êtes pas un joueur de la partie");
}else if(args[0].equalsIgnoreCase("start")) {
p.sendMessage(prefix+"§aLa commande est en cours de développement. Veuillez utiliser /test ;)");
p.sendMessage(prefix+ "§cVous n'avez pas la permission d'utiliser cette commande");
p.performCommand("/help");
p.sendMessage(prefix + "§c Les rôles n'ont pas encore été révélés !");
}catch(NoClassDefFoundError e) {
p.sendMessage(prefix+"§4 Vous ne jouez pas dans la partie");
p.sendMessage(" " + prefix + " ");
p.sendMessage("§6Voici toutes les commandes liées au Loup-Garou UHC");
p.sendMessage("§c==================================================");
p.sendMessage("§9/lg start :§c Permet de lancer la partie");
p.sendMessage("§9/lg config : §cPermet de modifier la configuration");
p.sendMessage("§d------------------------------------------------");
p.sendMessage("§9/lg sauver : §2Permet à la Sorcière de ressusciter un joueur mort");
p.sendMessage("§9/lg infecter : §2Permet à l'Infect Père des Loups de ressusciter et d'infecter un joueur afin que celui-ci passe dans son camp");
p.sendMessage("§9/lg voir : §2Permet à la Voyante d'espionner le rôle d'un joueur la première minute de chaque jour");
p.sendMessage("§9/lg love : §2Permet au Cupidon de rendre amoureuses 2 personnes dans les 2 minutes qui suivent l'annonce des rôles");
p.sendMessage("§9/lg tirer : §2Permet au Chasseur de retirer 5 coeurs à une cible lors de sa mort");
p.sendMessage("§9/lg flairer : §2Permet au Renard de savoir si un joueur fait partie du camp des Loups - Garous ou du camp des Villageois. Maximum 3 dans la partie !");
p.sendMessage("§9/lg contaminer : §2Permet au Loup Gris de choisir une victime à contaminer dnas les 2 minutes qui suivent l'annonce des rôles");
p.sendMessage("§9/lg maitre : §2Permet à l'Enfant Sauvage de choisir un maître dnas les 2 minutes qui suivent l'annonce des rôles");
p.sendMessage("§9/lg salvation :§2 Permet au Salvateur d'accorder la salvation à un joueur");
p.sendMessage("§9/lg soeur : §2Permet à une Soeur d'envoyer un message à sa Soeur. Maximum 3 messages par jour chacune !");
p.sendMessage("§9/lg msg :§2 Permet d'enregistrer une dernière volonté diffusée à votre mort");
}else if(args[0].equalsIgnoreCase("config")) {
p.sendMessage(prefix+ "§cERREUR : La partie a déjà commencé");
p.sendMessage("En dev");
Inventory mainConfigInv = Bukkit.createInventory(null, 54, "§9Configuration");
ItemStack numberOf = ItemBuilder(Material.SKULL_ITEM, 0, 1, "§cRôles", new ArrayList<>(Arrays.asList("§6Permet de définir les rôles présents", "§6ou non dans la partie !")));
mainConfigInv.setItem(10, numberOf);
mainConfigInv.setItem(20, ConfigManager.ancien > 0 ? ItemBuilder(Material.INK_SACK, (byte) 10, 1, "§aAncien", null) : ItemBuilder(Material.INK_SACK, (byte)8, 1, "§cAncien", null));
ItemStack border = ItemBuilder(Material.BARRIER, 0, 1, "§9Bordure", new ArrayList<>(Arrays.asList("§6Permet de gérer la tailles des bordures,", "§6ainsi que le temps de rétraction et le moment où", "§6la rétractation se produira")));
mainConfigInv.setItem(16, border);
p.openInventory(mainConfigInv);
}else if (command.getName().toString().equalsIgnoreCase("test")) {
p.sendMessage(prefix+"§cVous n'êtes pas autorisé à effectuer cette commande");
int numberOfPlayer = 0;
if(pl.getGameMode().equals(GameMode.SURVIVAL)) {
numberOfPlayer++;
if(numberOfPlayer < ConfigManager.maxRoles) {
p.sendMessage(prefix + "§4 Il n'y a pas assez de joueurs par rapport au nombre de rôles !");
if(numberOfPlayer > ConfigManager.maxRoles) {
p.sendMessage(prefix + "§4 Il y a trop de joueurs par rapport au nombre de rôles !");
Bukkit.getWorld(ConfigManager.world).getWorldBorder().setSize(ConfigManager.wbStartSize*2);
Bukkit.getWorld(ConfigManager.world).getWorldBorder().setCenter(new Location(Bukkit.getWorld(ConfigManager.world), 0, 0, 0));
Bukkit.dispatchCommand(getServer().getConsoleSender(), "gamerule sendCommandFeedback false");
Bukkit.dispatchCommand(getServer().getConsoleSender(), "time set 0");
ScoreboardSign sb = new ScoreboardSign(pl, ConfigManager.gameName);
sb.create();
boards.put(pl, sb);
int compo = Chrono.activeRoles.size();
if(compo > 14) {
CustomScoreboard compo1 = new CustomScoreboard(p, 1, "Composition 1/2");
Main.compo1.put(pl, compo1);
CustomScoreboard compo2 = new CustomScoreboard(p, 2, "Composition 2/2");
Main.compo2.put(pl, compo2);
CustomScoreboard compo1 = new CustomScoreboard(p, 1, "Composition");
pl.setMaxHealth(20);
pl.setSaturation(20);
pl.setPlayerListName(pl.getName());
pl.setCustomName(pl.getName());
pl.setDisplayName(pl.getName());
for(PotionEffect potion : pl.getActivePotionEffects()) {
pl.removePotionEffect(potion.getType());
c.startTimer(this);
c.test1(this);
}else if(command.getName().toString().equalsIgnoreCase("rules")) {
p.sendMessage(prefix+"§aEn cours de développement ;)");
}else if(command.getName().toString().equalsIgnoreCase("bypasstime")) {
Chrono.hours = Integer.valueOf(args[0]);
Chrono.minutes = Integer.valueOf(args[1]);
Chrono.seconds = Integer.valueOf(args[2]);
public ItemStack ItemBuilder(Material material, int data, int amount, String name, List<String> lore) {
ItemStack item = new ItemStack(material, amount, (byte)data);
public void onEntityDamageEvent(EntityDamageByEntityEvent e) {
Player damaged = (Player)e.getEntity();
if(Bukkit.getPlayer(damager.getUniqueId()) != null && Bukkit.getPlayer(damager.getUniqueId()).hasPotionEffect(PotionEffectType.INCREASE_DAMAGE)) {
e.setDamage((e.getDamage()/100)*ConfigManager.nerf_strenght_percent);
if(Chrono.minutes < ConfigManager.pvp_active_time || Chrono.hours > 0) {
if(damaged.getHealth() < damaged.getLastDamage() + 0.5) {
if(CustomPlayer.playersAlive.get(e.getEntity().getUniqueId()).getRole().equals(Roles.ANCIEN)) {
if(!ancientDead) {
damaged.setHealth(20.0);
damaged.teleport(sm.getRandomLocation(damaged, this));
damaged.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 20*60*60*5, 0, false, false));
ancientDead = true;
Player soso = null;
Player ipdl = null;
for(CustomPlayer cp : CustomPlayer.PLAYERS.values()) {
if(cp.getRole().equals(Roles.SORCIERE)) {
soso =Bukkit.getPlayer(cp.getUniqueId());
}else if(cp.getRole().equals(Roles.IPDL)){
ipdl = Bukkit.getPlayer(cp.getUniqueId());
if(!RezSoso || !RezIpdl) {
lastDeathLoc.put(damaged, damaged.getLocation());
damaged.teleport(Bukkit.getWorld(ConfigManager.world).getSpawnLocation());
c.startRezTime(this, damaged);
if(!RezSoso && soso != null) {
TextComponent texte = new TextComponent(prefix+"§a Un joueur est mort ! Exécutez la commande /lg sauver " + damaged.getDisplayName() + " ou cliquez sur ce message si vous souhaitez le ressusciter !");
texte.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/lg sauver " + damaged.getDisplayName()));
texte.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Cliquez ici pour ressusciter " + damaged.getDisplayName()).create()));
soso.spigot().sendMessage(texte);
if(CustomPlayer.playersAlive.get(damager.getUniqueId()).getCamp().equals(Camp.LG)
&& !RezIpdl && ipdl != null) {
TextComponent texte = new TextComponent(prefix+"§a Un joueur est mort ! Exécutez la commande /lg infecter " + damaged.getDisplayName() + " ou cliquez sur ce message si vous souhaitez le ressusciter dans votre camp !");
texte.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/lg infecter " + damaged.getDisplayName()));
texte.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(prefix +" §aCliquez ici pour infecter " + damaged.getDisplayName()).create()));
ipdl.spigot().sendMessage(texte);
damaged.teleport(lastDeathLoc.get(damaged));
damaged.setHealth(0);
damaged.sendMessage(prefix+" §cVotre aventure au sein du village s'arrête ici ! Merci de changer de channel !");
lastDeathKillerPlayer.put(damaged, (Player)damager);
if(!e.getCause().equals(DamageCause.ENTITY_ATTACK)) {
if((e.getEntity().equals(salva1) || e.getEntity().equals(salva2)) && e.getCause().equals(DamageCause.FALL)) {
if(damaged.getHealth() < damaged.getLastDamage() + 0.25) {
TextComponent texte = new TextComponent(prefix+"§a Un joueur est mort ! Exécutez la commande /lg sauver " + damaged.getDisplayName() + " ou cliquez sur ce message si vous souhaitez le ressusciter");
texte.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(prefix +" §aCliquez ici pour ressusciter " + damaged.getDisplayName()).create()));
if(e.getEntity().equals(Couple)) return;
if(lastDeathMSG.get(e.getEntity()) != null) {
pl.sendMessage("§7§o[" + p.getName() + "] " + lastDeathMSG.get(e.getEntity()));
pl.sendMessage("§c====================================================="
+ "\n§2Le village a perdu un de ses membres, " + p.getDisplayName() + " qui était " + CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().getName()
+ "\n§c=====================================================");
if(CustomPlayer.playersAlive.containsKey(e.getEntity().getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getCouple()) {
CustomPlayer premierCouple = CustomPlayer.coupleMap.get(p.getUniqueId());
CustomPlayer.coupleMap.remove(p.getUniqueId());
Collection<CustomPlayer> secondCouple = CustomPlayer.coupleMap.values();
for(CustomPlayer couple : secondCouple) {
if(couple.getCouple()) {
Couple = Bukkit.getPlayer(couple.getUniqueId());
Bukkit.getPlayer(couple.getUniqueId()).setHealth(0);
Bukkit.broadcastMessage("§c====================================================="
+ "\n§2Dans un élan de chagrin " + Bukkit.getPlayer(couple.getUniqueId()).getDisplayName() + " qui était " + couple.getRole().getName() + " a décidé de rejoindre " + p.getDisplayName() + " dans sa tombe. RIP"
CustomPlayer.playersAlive.remove(couple.getUniqueId());
CustomPlayer.coupleMap.put(p.getUniqueId(), premierCouple);
CustomPlayer.playersAlive.remove(p.getUniqueId());
if(CustomPlayer.PLAYERS.get(p.getUniqueId()).getRole().equals(Roles.CHASSEUR)) {
TextComponent text = new TextComponent(prefix + "Vous pouvez tirer un dernier coup sur un joueur de votre choix afin de lui faire perdre 5 coeurs jusqu'au lendemain. Exécutez la commande /lg tirer [pseudo] ou cliquez sur ce message");
text.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Exécutez la commande /lg tirer [pseudo] ou cliquez sur ce message").create()));
text.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/lg tirer "));
p.spigot().sendMessage(text);
p.setPlayerListName("§7§o" + p.getName() + " [" + CustomPlayer.PLAYERS.get(p.getUniqueId()).getRole().getName() + "]");
if(lastDeathKillerPlayer.containsKey(p)) {
Roles killerRole = CustomPlayer.PLAYERS.get(lastDeathKillerPlayer.get(p).getUniqueId()).getRole();
if(killerRole.equals(Roles.ASSASSIN) || CustomPlayer.PLAYERS.get(lastDeathKillerPlayer.get(p).getUniqueId()).getCamp().equals(Camp.LG)) {
Bukkit.getPlayer(CustomPlayer.PLAYERS.get(lastDeathKillerPlayer.get(p).getUniqueId()).getUniqueId()).addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 60*20, 0, false, false));
Bukkit.getPlayer(CustomPlayer.PLAYERS.get(lastDeathKillerPlayer.get(p).getUniqueId()).getUniqueId()).addPotionEffect(new PotionEffect(PotionEffectType.ABSORPTION, 60*20, 0, false, false));
e.getDrops().add(new ItemStack(Material.GOLDEN_APPLE));
if(master != null && master.equals(e.getEntity())) {
if(cp.getRole().equals(Roles.ES)) {
Bukkit.getPlayer(cp.getUniqueId()).sendMessage(prefix + "§6 Votre modèle est mort, vous faites désormais partie de la communauté des Loups-Garous et disposez des mêmes pouvoirs !");
cp.setCamp(Camp.LG);
e.setJoinMessage("§8[§a+§8] " + p.getName() + " (§e" + getServer().getOnlinePlayers().size() + "§8/§e" + getServer().getMaxPlayers() + "§8)");
if(CustomPlayer.PLAYERS.containsKey(p.getUniqueId())) {
if(!CustomPlayer.playersAlive.containsKey(p.getUniqueId())) {
if(!boards.containsKey(p)) {
ScoreboardSign sb = new ScoreboardSign(p, "LGUHC");
boards.put(p, sb);
boards.get(p).create();
if(!compo1.containsKey(p)) {
Main.compo1.put(p, compo1);
compo1.get(p).create(p);
if(!compo2.containsKey(p)) {
Main.compo1.put(p, compo2);
compo2.get(p).create(p);
if(!Main.compo1.containsKey(p)) {
int numberOfPlayer = getServer().getOnlinePlayers().size()-1;
e.setQuitMessage(ChatColor.BLACK + "§8[§4-§8] " + p.getName() + " (§e" + numberOfPlayer + "§8/§e" + getServer().getMaxPlayers() + "§8)");
public void preprocessEvent(PlayerCommandPreprocessEvent e) {
if(e.getMessage().startsWith("/help")){
e.setMessage("/lg help");
public void respawnEvent(PlayerRespawnEvent e) {
e.getPlayer().setGameMode(GameMode.SPECTATOR);
e.getPlayer().sendMessage(prefix+" §cVotre aventure au sein du village s'arrête ici ! Merci de changer de channel !");
package be.hokkaydo.lguhc; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.ComponentBuilder; import net.md_5.bungee.api.chat.HoverEvent; import net.md_5.bungee.api.chat.TextComponent; public class Main extends JavaPlugin implements Listener{ Boolean RezSoso = false; Boolean RezIpdl = false; Boolean ipdl = false; Boolean ancientDead = false; Boolean hasShot = false; static Boolean hasSee = false; Player contamined; Boolean isContaminingEnded = false; int flair = 3; Player master; Player salva1; Player salva2; Player lastSalva; static Main instance; Boolean isCoupleSet = false; HashMap<Player, Integer> numberMsgSisters = new HashMap<>(); RolesManager rm = new RolesManager(); CheckWin cw = new CheckWin(); SpawnManager sm = new SpawnManager(); ConfigManager cm = new ConfigManager(); Chrono c = new Chrono(); HashMap<Player, String> lastDeathMSG = new HashMap<>(); Map<Player, Location> lastDeathLoc = new HashMap<Player,Location>(); Map<Player, Player> lastDeathKillerPlayer = new HashMap<>(); public static boolean start; public static Map<Player, ScoreboardSign> boards = new HashMap<>(); public static Map<Player, CustomScoreboard> compo1 = new HashMap<>(); public static Map<Player, CustomScoreboard> compo2 = new HashMap<>(); String prefix = "§b§l[§6§lLOUPS-GAROUS§b§l]§r"; Player Couple = null; @Override public void onEnable() { instance = this; System.out.println(" __________________________________________________ "); System.out.println("| |"); System.out.println("| LGUHC V0.1 |"); System.out.println("| Plugin par Hokkaydo |"); System.out.println("| |"); System.out.println("| Afin de configurer le plugin selon |"); System.out.println("| vos envies, veuillez vous rendre dans votre |"); System.out.println("| dossier de serveur, ensuite allez dans le |"); System.out.println("| dossier \"plugins\" puis ouvrez le dossier |"); System.out.println("| \"LGUHC\" et ouvrez le fichier config.yml |"); System.out.println("| Modifiez les options selon votre convenance ! |"); System.out.println("| |"); System.out.println("| Pour tout renseignement additionel, |"); System.out.println("| Veuillez contacter Hokkaydo#7384 sur Discord |"); System.out.println("|__________________________________________________|"); System.out.println(" "); getServer().getPluginManager().registerEvents(this, this); getCommand("lg").setExecutor(this); getCommand("test").setExecutor(this); getCommand("rules").setExecutor(this); getCommand("bypasstime").setExecutor(this); cm.registerConfig(this); } @Override public void onDisable() { for(Player p : Bukkit.getOnlinePlayers()) { p.setMaxHealth(20); p.setHealth(20); } getServer().getWorld(ConfigManager.world).setGameRuleValue("doDaylightCycle", "true"); Bukkit.dispatchCommand(getServer().getConsoleSender(), "gamerule reducedDebugInfo false"); Bukkit.dispatchCommand(getServer().getConsoleSender(), "gamerule sendCommandFeedback true"); Bukkit.dispatchCommand(getServer().getConsoleSender(), "gamerule naturalRegeneration false"); for(ScoreboardSign sign : boards.values()) { sign.destroy(); }	for(CustomScoreboard sign : compo1.values()) { sign.getScoreboard().resetScores("d"); } for(CustomScoreboard sign : compo2.values()) { sign.getScoreboard().resetScores("d"); } for(Player p : Bukkit.getOnlinePlayers()) { p.setScoreboard(Bukkit.getScoreboardManager().getMainScoreboard()); } for(Player p : Bukkit.getOnlinePlayers()) { p.setPlayerListName(p.getName()); p.setDisplayName(p.getName()); } } @Deprecated @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if(sender instanceof Player) { Player p = (Player)sender; if(command.getName().toString().equalsIgnoreCase("lg")) { if(start) { try { try { if(args[0].equalsIgnoreCase("msg")) { StringBuilder string = new StringBuilder(); for(String arg : args) { if(!args[0].equals(arg)) { string.append(arg + " "); } } lastDeathMSG.put(p, string.toString()); p.sendMessage(prefix+"§a Votre dernière volonté a bien été enregistréé ! Elle sera diffusée à tous à votre mort"); }else if(args[0].equalsIgnoreCase("sauver")) { if(!ipdl) { if(!RezSoso) { try { if(args[1] != null) { if(lastDeathLoc.containsKey(Bukkit.getPlayer(args[1]))) { Bukkit.getPlayer(args[1]).teleport(sm.getRandomLocation(Bukkit.getPlayer(args[1]), this)); Bukkit.getPlayer(args[1]).sendMessage(prefix+"§a La Sorcière a décidé de vous ressusciter !"); p.sendMessage(prefix+ "§a " + Bukkit.getPlayer(args[1]).getName() + " a bien été ressuscité !"); lastDeathLoc.remove(Bukkit.getPlayer(args[1])); if(Bukkit.getPlayer(args[1]).equals(salva1)){ Bukkit.getPlayer(args[1]).addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 20*(600-Chrono.timeSalva1), 1, false, false)); }else if(Bukkit.getPlayer(args[1]).equals(salva2)) { Bukkit.getPlayer(args[1]).addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 20*(600-Chrono.timeSalva2), 1, false, false)); } if(CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getRole().equals(Roles.ANCIEN)) { Bukkit.getPlayer(args[1]).addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 20*60*60*5, 0, false, false)); }else if(CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getRole().equals(Roles.RENARD)){ Bukkit.getPlayer(args[1]).addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 20*60*60*5, 0, false, false)); } RezSoso = true; }else { p.sendMessage( prefix + "§c Le joueur est introuvable"); } }else { p.sendMessage(prefix + "§c Veuillez préciser un joueur"); } }catch(ArrayIndexOutOfBoundsException e) { p.sendMessage(prefix + "§c Veuillez préciser un joueur"); } }else { p.sendMessage(prefix + "§c Vous avez déjà utilisé votre pouvoir"); } }else { p.sendMessage(prefix + "§c Vous n'êtes pas Sorcière"); } }else if(args[0].equalsIgnoreCase("infecter")) { if(CustomPlayer.playersAlive.get(((Player) sender).getUniqueId()).getRole().equals(Roles.IPDL)) { if(!RezIpdl) { try { if(args[1] != null) { if(lastDeathLoc.containsKey(Bukkit.getPlayer(args[1]))) { Bukkit.getPlayer(args[1]).teleport(sm.getRandomLocation(Bukkit.getPlayer(args[1]), this)); Bukkit.getPlayer(args[1]).sendMessage(prefix+"§a L'Infect Père des Loups a décidé de vous ressusciter dans son camp !"); p.sendMessage(prefix+ "§a " + Bukkit.getPlayer(args[1]).getName() + " a bien été infecté !"); lastDeathLoc.remove(Bukkit.getPlayer(args[1])); CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).setInfected(true); CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).setCamp(Camp.LG);; cw.checkWin(this); RezIpdl = true; }else { p.sendMessage(prefix + "§c Le joueur est introuvable"); } }else { p.sendMessage(prefix + "§c Veuillez préciser un joueur"); } }catch(ArrayIndexOutOfBoundsException e) { p.sendMessage(prefix + "§c Veuillez préciser un joueur"); } }else { p.sendMessage(prefix + "§c Vous avez déjà utilisé votre pouvoir"); } }else { p.sendMessage(prefix + "§c Vous n'êtes pas Infect Père des Loups"); } }else if(args[0].equalsIgnoreCase("voir")) { if(CustomPlayer.playersAlive.get(((Player) sender).getUniqueId()).getRole().equals(Roles.VOYANTE)) { if(Chrono.minutes % 10 == 0 && !hasSee) { if(!args[1].equals(null)) { try { sender.sendMessage(prefix + " Ce joueur est " + CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getRole().getName()); hasSee = true; if(ConfigManager.isVoyanteBavarde()) { Bukkit.broadcastMessage(prefix+ " La Voyante Bavarde a espionné un joueur qui est " + CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getRole().getName()); }	}catch(NullPointerException e) { sender.sendMessage(prefix + " Joueur introuvable !"); } } }else { System.out.println(Chrono.minutes + " " + hasSee); sender.sendMessage(prefix + " Veuillez attendre le prochain jour pour voir le rôle d'un joueur"); } }else { sender.sendMessage(prefix + " Vous n'êtes pas Vvoyante !"); } }else if(args[0].equalsIgnoreCase("love")) { if(CustomPlayer.playersAlive.get(((Player) sender).getUniqueId()).getRole().equals(Roles.CUPIDON)) { if(!isCoupleSet) { try { Player coupleUn = Bukkit.getPlayer(args[1]); Player coupleDeux = Bukkit.getPlayer(args[2]); if(!coupleUn.equals(coupleDeux) && !coupleUn.equals(sender) && !coupleDeux.equals(sender)) { if(CustomPlayer.playersAlive.containsKey(coupleUn.getUniqueId()) && CustomPlayer.playersAlive.containsKey(coupleUn.getUniqueId())) { CustomPlayer.playersAlive.get(coupleUn.getUniqueId()).setCouple(true); CustomPlayer.playersAlive.get(coupleDeux.getUniqueId()).setCouple(true); CustomPlayer.coupleMap.put(coupleUn.getUniqueId(), CustomPlayer.playersAlive.get(coupleUn.getUniqueId())); CustomPlayer.coupleMap.put(coupleDeux.getUniqueId(), CustomPlayer.playersAlive.get(coupleDeux.getUniqueId())); coupleUn.sendMessage(prefix+"§a Vous êtes amoureux de " + coupleDeux.getName() + ". Si l'un d'entre vous vient à mourir, le second le suivra de chagrin dans sa tombe !"); coupleDeux.sendMessage(prefix+"§a Vous êtes amoureux de " + coupleUn.getName() + ". Si l'un d'entre vous vient à mourir, le second le suivra de chagrin dans sa tombe !"); p.sendMessage(prefix + "§a Vos flèches ont transpercés les coeurs des deux jeunes amoureux. Si l'un d'eux vient à mourir, le second succombera de chagrin"); isCoupleSet = true; }else { sender.sendMessage(prefix + "§c Veuillez choisir deux joueurs vivants"); } }else { sender.sendMessage(prefix + "§c Veuillez choisir deux joueurs différents de vous-même"); } }catch(ArrayIndexOutOfBoundsException e) { sender.sendMessage(prefix + "§c Joueurs non trouvés"); } }else { } }else { sender.sendMessage(prefix + "§c Vous n'êtes pas Cupidon !");	} }else if(args[0].equalsIgnoreCase("tirer")) { if(CustomPlayer.PLAYERS.get(((Player) sender).getUniqueId()).getRole().equals(Roles.CHASSEUR)) { if(!CustomPlayer.playersAlive.containsKey(((Player) sender).getUniqueId())) { if(!hasShot) { try { hasShot = true; Bukkit.getPlayer(args[1]).setHealth(Bukkit.getPlayer(args[1]).getHealth() - 10); p.sendMessage(prefix + "§6 Le chasseur a décidé de tirer sur " + Bukkit.getPlayer(args[1]).getDisplayName() + " qui a perdu 5 coeurs jusqu'au lendemain"); c.timeChasseur(this, Bukkit.getPlayer(args[1])); }catch(NullPointerException e) { p.sendMessage(prefix + "§c Joueur introuvable"); } }else { p.sendMessage(prefix + "§c Vous avez déjà tiré"); } }else { p.sendMessage(prefix + "§c Attendez d'être mort pour exécuter cette commande"); } }else { p.sendMessage(prefix + "§c Vous n'êtes pas Chasseur"); } }else if(args[0].equalsIgnoreCase("flairer")) { if(CustomPlayer.playersAlive.containsKey(p.getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().equals(Roles.RENARD)) { if(flair > 0) { try { flair--; if(Bukkit.getPlayer(args[1]).getLocation().distance(p.getLocation()) > 5) { Roles role = CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getRole(); if(role.equals(Roles.IPDL) || role.equals(Roles.LG) || role.equals(Roles.LGB)) { p.sendMessage(prefix + "§6Ce joueur appartient au camp des Loups-Garous !"); }else { p.sendMessage(prefix + "§6 Ce joueur n'appartient pas au camps des Loups-Garous !"); } } }catch(NullPointerException npe) { p.sendMessage(prefix + "Joueur introuvable"); } }else { p.sendMessage(prefix + "§c Vous avez déjà épuisé tous vos flairs"); } }else { p.sendMessage(prefix + "§c Vous n'êtes pas Renard"); } }else if(args[0].equalsIgnoreCase("contaminer")) { if(CustomPlayer.playersAlive.containsKey(p.getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().equals(Roles.LGGRIS)) { if(Chrono.minutes < 25 && Chrono.hours < 1 && contamined == null) { try { contamined = Bukkit.getPlayer(args[1]); if(!CustomPlayer.playersAlive.get(contamined.getUniqueId()).getCamp().equals(Camp.LG) || CustomPlayer.playersAlive.get(contamined.getUniqueId()).getRole().equals(Roles.LGB) ) { if(!CustomPlayer.playersAlive.get(contamined.getUniqueId()).getRole().equals(Roles.ANCIEN)) { c.timeToBeContaminated(this, p, Bukkit.getPlayer(args[1])); contamined = Bukkit.getPlayer(CustomPlayer.playersAlive.get(Bukkit.getPlayer(args[1]).getUniqueId()).getUniqueId()); p.sendMessage(prefix+ "§a " + contamined.getName() + " a bien été désigné comme la cible à contaminer !"); }else { p.sendMessage(prefix + "§6 Vous avez essayé de vous attaquer au Grand Sage du village ! Fuyez, vous êtes découvert !");	Bukkit.getPlayer(args[1]).sendMessage(p.getName() + " a tentÃ© de s'attaquer Ã vous, vous ne saviez pas grand chose Ã propos de lui mais maintenant vous commencer Ã apercevoir ses affreux bubons que seuls les Loups Contagieux portent sur leur horrible poil !"); contamined = p; } }else { p.sendMessage(prefix+ "Ce joueur est déjà un Loup-Garou !"); } }catch(NullPointerException npe) { p.sendMessage(prefix + "§c Joueur introuvable"); } }else { if(contamined != null) { p.sendMessage(prefix + "§c Vous avez déjà choisi une victime"); }else { System.out.println(Chrono.minutes + " " + Chrono.hours); } } }else { p.sendMessage(prefix + "§c Vous n'êtes pas Loup Gris"); } }else if(args[0].equalsIgnoreCase("maitre")) { if(CustomPlayer.playersAlive.containsKey(p.getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().equals(Roles.ES)) { if(Chrono.minutes < 25 && Chrono.hours < 0 && master == null) { try { if(CustomPlayer.playersAlive.containsKey(master.getUniqueId()) && CustomPlayer.PLAYERS.containsKey(master.getUniqueId())) { master = Bukkit.getPlayer(args[1]); p.sendMessage(prefix + "§a Vous avez choisi " + master.getName() + " comme maître. S'il vient à mourir, vous passerez dans le campd es Liups-Garous et devrez gagner avec eux"); }else { if(!CustomPlayer.playersAlive.containsKey(master.getUniqueId()) && CustomPlayer.PLAYERS.containsKey(master.getUniqueId())) { p.sendMessage(prefix + "§c Ce joueur est déjà mort"); }else { p.sendMessage(prefix + "§c Ce joueur ne joue pas cette partie"); } } }catch(NullPointerException npe) { p.sendMessage(prefix + "§c Joueur introuvable"); } }else { if(master != null) { p.sendMessage(prefix + "§c Vous avez déjà choisi un maître"); }else { p.sendMessage(prefix + "§c Le délai est dépassé"); } } }else { p.sendMessage(prefix + "§c Vous n'êtes pas Enfant Sauvage"); } }else if(args[0].equalsIgnoreCase("salvation")) { if(CustomPlayer.playersAlive.containsKey(p.getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().equals(Roles.SALVATEUR)) { if(Chrono.minutes % 10 == 0 || (Chrono.minutes - 1) % 10 == 0) { try { if(!Bukkit.getPlayer(args[1]).equals(lastSalva)) { if(salva1 == null) { salva1 = Bukkit.getPlayer(args[1]); salva1.sendMessage(prefix+ "§a Le Salvateur vous a accordé sa protection. Vous diposez de NoFall et Résistance 2 jusqu'au prochain jour !"); c.timeToBeUnsalvated(this, 1); lastSalva = Bukkit.getPlayer(args[1]); p.sendMessage(prefix+"§a Vous avez bien accordé votre salvation à " + salva1.getName() + ". Il bénéficie donc de NoFall et Résistance 2 jusqu'au prochain jour !"); }else { salva2 = Bukkit.getPlayer(args[1]); salva2.sendMessage(prefix+ "§a Le Salvateur vous a accordé sa protection. Vous diposez de NoFall et Résistance 2 jusqu'au prochain jour !"); c.timeToBeUnsalvated(this, 2); lastSalva = Bukkit.getPlayer(args[1]); p.sendMessage(prefix+"§a Vous avez bien accordé votre salvation à " + salva2.getName() + ". Il bénéficie donc de NoFall et Résistance 2 jusqu'au prochain jour !"); } Bukkit.getPlayer(args[1]).addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 20*60*10, 1, false, false)); }else { p.sendMessage(prefix + "§c Vous ne pouvez pas donner la salvation deux fois de suite au même joueur"); } }catch(NullPointerException npe) { p.sendMessage("§c Joueur introuvable"); } }else { p.sendMessage(prefix + "§c Vous ne pouvez donner la salvation à un joueur que durant la première minute de la journée"); } } }else if(args[0].equalsIgnoreCase("soeur")) { if(CustomPlayer.playersAlive.containsKey(p.getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().equals(Roles.SOEUR)) { if(!numberMsgSisters.containsKey(p) || numberMsgSisters.get(p) < 3) { for(CustomPlayer cp : CustomPlayer.playersAlive.values()) { if(cp.getRole().equals(Roles.SOEUR)) { if(cp.getUniqueId() != p.getUniqueId()) { StringBuilder string = new StringBuilder(); for(String arg : args) { string.append(arg); } Bukkit.getPlayer(cp.getUniqueId()).sendMessage("[Reçu de " + p.getName() + "] " + string.toString()); p.sendMessage(prefix+"§a Message envoyé avec succès !"); if(!numberMsgSisters.containsKey(p)) { numberMsgSisters.put(p, 1); }else { numberMsgSisters.put(p, numberMsgSisters.get(p) + 1); } } } } }else { p.sendMessage(prefix + "§c Vous ne pouvez communiquer avec votre soeur que 3 fois par jour"); } }else { p.sendMessage(prefix + "§c Vous n'êtes pas Soeur"); } }else if(args[0].equalsIgnoreCase("role")) { if(CustomPlayer.playersAlive.containsKey(p.getUniqueId())) { p.sendMessage(CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().getMsgReveal()); if(CustomPlayer.playersAlive.get(p.getUniqueId()).getCamp().equals(Camp.LG)) { StringBuilder lgList = new StringBuilder(); for(CustomPlayer cp : CustomPlayer.playersAlive.values()) { if(cp.getCamp().equals(Camp.LG)) { lgList.append(Bukkit.getPlayer(cp.getUniqueId()).getName() + " "); } } p.sendMessage(prefix+"§4 Les pseudos des Loups-Garous sont : \n§c" + lgList); } }else { p.sendMessage(prefix+"§c Vous n'êtes pas un joueur de la partie"); } }else if(args[0].equalsIgnoreCase("start")) { if(p.isOp()) { p.sendMessage(prefix+"§aLa commande est en cours de développement. Veuillez utiliser /test ;)"); }else { p.sendMessage(prefix+ "§cVous n'avez pas la permission d'utiliser cette commande"); } } }catch(ArrayIndexOutOfBoundsException e) { p.performCommand("/help"); } }catch(NullPointerException e) { p.sendMessage(prefix + "§c Les rôles n'ont pas encore été révélés !"); }catch(NoClassDefFoundError e) { e.printStackTrace(); p.sendMessage(prefix+"§4 Vous ne jouez pas dans la partie"); } } if(args[0].equalsIgnoreCase("help")) { p.sendMessage(" "); p.sendMessage(" "); p.sendMessage(" "); p.sendMessage(" "); p.sendMessage(" "); p.sendMessage(" "); p.sendMessage(" "); p.sendMessage(" "); p.sendMessage(" "); p.sendMessage(" "); p.sendMessage(" "); p.sendMessage(" " + prefix + " "); p.sendMessage("§6Voici toutes les commandes liées au Loup-Garou UHC"); p.sendMessage("§c=================================================="); if(p.isOp()) { p.sendMessage("§9/lg start :§c Permet de lancer la partie"); p.sendMessage("§9/lg config : §cPermet de modifier la configuration"); p.sendMessage("§d------------------------------------------------"); } p.sendMessage("§9/lg sauver : §2Permet à la Sorcière de ressusciter un joueur mort"); p.sendMessage("§9/lg infecter : §2Permet à l'Infect Père des Loups de ressusciter et d'infecter un joueur afin que celui-ci passe dans son camp"); p.sendMessage("§9/lg voir : §2Permet à la Voyante d'espionner le rôle d'un joueur la première minute de chaque jour"); p.sendMessage("§9/lg love : §2Permet au Cupidon de rendre amoureuses 2 personnes dans les 2 minutes qui suivent l'annonce des rôles"); p.sendMessage("§9/lg tirer : §2Permet au Chasseur de retirer 5 coeurs à une cible lors de sa mort"); p.sendMessage("§9/lg flairer : §2Permet au Renard de savoir si un joueur fait partie du camp des Loups - Garous ou du camp des Villageois. Maximum 3 dans la partie !"); p.sendMessage("§9/lg contaminer : §2Permet au Loup Gris de choisir une victime à contaminer dnas les 2 minutes qui suivent l'annonce des rôles"); p.sendMessage("§9/lg maitre : §2Permet à l'Enfant Sauvage de choisir un maître dnas les 2 minutes qui suivent l'annonce des rôles"); p.sendMessage("§9/lg salvation :§2 Permet au Salvateur d'accorder la salvation à un joueur"); p.sendMessage("§9/lg soeur : §2Permet à une Soeur d'envoyer un message à sa Soeur. Maximum 3 messages par jour chacune !"); p.sendMessage("§9/lg msg :§2 Permet d'enregistrer une dernière volonté diffusée à votre mort"); p.sendMessage("§c=================================================="); }else if(args[0].equalsIgnoreCase("config")) { if(start) { p.sendMessage(prefix+ "§cERREUR : La partie a déjà commencé"); return false; } p.sendMessage("En dev"); Inventory mainConfigInv = Bukkit.createInventory(null, 54, "§9Configuration"); ItemStack numberOf = ItemBuilder(Material.SKULL_ITEM, 0, 1, "§cRôles", new ArrayList<>(Arrays.asList("§6Permet de définir les rôles présents", "§6ou non dans la partie !"))); mainConfigInv.setItem(10, numberOf); mainConfigInv.setItem(20, ConfigManager.ancien > 0 ? ItemBuilder(Material.INK_SACK, (byte) 10, 1, "§aAncien", null) : ItemBuilder(Material.INK_SACK, (byte)8, 1, "§cAncien", null)); ItemStack border = ItemBuilder(Material.BARRIER, 0, 1, "§9Bordure", new ArrayList<>(Arrays.asList("§6Permet de gérer la tailles des bordures,", "§6ainsi que le temps de rétraction et le moment où", "§6la rétractation se produira"))); mainConfigInv.setItem(16, border); p.openInventory(mainConfigInv); } }else if (command.getName().toString().equalsIgnoreCase("test")) { if(!p.isOp()) { p.sendMessage(prefix+"§cVous n'êtes pas autorisé à effectuer cette commande"); return false; } int numberOfPlayer = 0; for(Player pl : Bukkit.getOnlinePlayers()) { if(pl.getGameMode().equals(GameMode.SURVIVAL)) { numberOfPlayer++; } } if(numberOfPlayer < ConfigManager.maxRoles) { p.sendMessage(prefix + "§4 Il n'y a pas assez de joueurs par rapport au nombre de rôles !"); return false; } if(numberOfPlayer > ConfigManager.maxRoles) { p.sendMessage(prefix + "§4 Il y a trop de joueurs par rapport au nombre de rôles !"); return false; } Bukkit.getWorld(ConfigManager.world).getWorldBorder().setSize(ConfigManager.wbStartSize*2); Bukkit.getWorld(ConfigManager.world).getWorldBorder().setCenter(new Location(Bukkit.getWorld(ConfigManager.world), 0, 0, 0)); Bukkit.dispatchCommand(getServer().getConsoleSender(), "gamerule sendCommandFeedback false"); Bukkit.dispatchCommand(getServer().getConsoleSender(), "time set 0"); start = true; for(Player pl : Bukkit.getOnlinePlayers()) { if(pl.getGameMode().equals(GameMode.SURVIVAL)) { ScoreboardSign sb = new ScoreboardSign(pl, ConfigManager.gameName); sb.create(); boards.put(pl, sb);	int compo = Chrono.activeRoles.size(); if(compo > 14) { CustomScoreboard compo1 = new CustomScoreboard(p, 1, "Composition 1/2"); Main.compo1.put(pl, compo1); CustomScoreboard compo2 = new CustomScoreboard(p, 2, "Composition 2/2"); Main.compo2.put(pl, compo2); }else { CustomScoreboard compo1 = new CustomScoreboard(p, 1, "Composition"); Main.compo1.put(pl, compo1); } pl.setMaxHealth(20); pl.setHealth(20); pl.setSaturation(20); pl.setPlayerListName(pl.getName()); pl.setCustomName(pl.getName()); pl.setDisplayName(pl.getName()); pl.setDisplayName(pl.getName()); for(PotionEffect potion : pl.getActivePotionEffects()) { pl.removePotionEffect(potion.getType()); } } } c.startTimer(this); c.test1(this); }else if(command.getName().toString().equalsIgnoreCase("rules")) { p.sendMessage(prefix+"§aEn cours de développement ;)"); }else if(command.getName().toString().equalsIgnoreCase("bypasstime")) { Chrono.hours = Integer.valueOf(args[0]); Chrono.minutes = Integer.valueOf(args[1]); Chrono.seconds = Integer.valueOf(args[2]); } } return false; } public ItemStack ItemBuilder(Material material, int data, int amount, String name, List<String> lore) { ItemStack item = new ItemStack(material, amount, (byte)data); ItemMeta itemMeta = item.getItemMeta(); itemMeta.setDisplayName(name); itemMeta.setLore(lore); item.setItemMeta(itemMeta); return item; } @EventHandler @Deprecated public void onEntityDamageEvent(EntityDamageByEntityEvent e) { if(start) { if(e.getEntity() instanceof Player) { Player damaged = (Player)e.getEntity(); Entity damager = e.getDamager(); if(Bukkit.getPlayer(damager.getUniqueId()) != null && Bukkit.getPlayer(damager.getUniqueId()).hasPotionEffect(PotionEffectType.INCREASE_DAMAGE)) { e.setDamage((e.getDamage()/100)*ConfigManager.nerf_strenght_percent); } if(e.getEntity() instanceof Player && e.getDamager() instanceof Player) { if(Chrono.minutes < ConfigManager.pvp_active_time || Chrono.hours > 0) { e.setCancelled(true); return; } } if(damaged.getHealth() < damaged.getLastDamage() + 0.5) { if(CustomPlayer.playersAlive.get(e.getEntity().getUniqueId()).getRole().equals(Roles.ANCIEN)) { if(!ancientDead) { e.setCancelled(true); damaged.setHealth(20.0); damaged.teleport(sm.getRandomLocation(damaged, this)); damaged.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 20*60*60*5, 0, false, false)); ancientDead = true; return; } }	Player soso = null; Player ipdl = null; for(CustomPlayer cp : CustomPlayer.PLAYERS.values()) { if(cp.getRole().equals(Roles.SORCIERE)) { soso =Bukkit.getPlayer(cp.getUniqueId()); }else if(cp.getRole().equals(Roles.IPDL)){ ipdl = Bukkit.getPlayer(cp.getUniqueId()); } } if(!RezSoso || !RezIpdl) { lastDeathLoc.put(damaged, damaged.getLocation()); e.setCancelled(true); damaged.setHealth(20.0); damaged.teleport(Bukkit.getWorld(ConfigManager.world).getSpawnLocation()); c.startRezTime(this, damaged); if(!RezSoso && soso != null) { TextComponent texte = new TextComponent(prefix+"§a Un joueur est mort ! Exécutez la commande /lg sauver " + damaged.getDisplayName() + " ou cliquez sur ce message si vous souhaitez le ressusciter !"); texte.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/lg sauver " + damaged.getDisplayName())); texte.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Cliquez ici pour ressusciter " + damaged.getDisplayName()).create())); soso.spigot().sendMessage(texte); } if(CustomPlayer.playersAlive.get(damager.getUniqueId()).getCamp().equals(Camp.LG) && !RezIpdl && ipdl != null) { TextComponent texte = new TextComponent(prefix+"§a Un joueur est mort ! Exécutez la commande /lg infecter " + damaged.getDisplayName() + " ou cliquez sur ce message si vous souhaitez le ressusciter dans votre camp !"); texte.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/lg infecter " + damaged.getDisplayName())); texte.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(prefix +" §aCliquez ici pour infecter " + damaged.getDisplayName()).create())); ipdl.spigot().sendMessage(texte); } return; }else { damaged.teleport(lastDeathLoc.get(damaged)); damaged.setHealth(0); damaged.sendMessage(prefix+" §cVotre aventure au sein du village s'arrête ici ! Merci de changer de channel !"); if(damager instanceof Player) { lastDeathKillerPlayer.put(damaged, (Player)damager); } cw.checkWin(this); }	} } }else { e.setCancelled(true); } }	@SuppressWarnings("deprecation") @EventHandler public void onDamage(EntityDamageEvent e) { if(start) { if(e.getEntity() instanceof Player) { if(!e.getCause().equals(DamageCause.ENTITY_ATTACK)) { System.out.println(e.getCause()); Player damaged = (Player) e.getEntity(); if((e.getEntity().equals(salva1) || e.getEntity().equals(salva2)) && e.getCause().equals(DamageCause.FALL)) { e.setCancelled(true); return; } if(damaged.getHealth() < damaged.getLastDamage() + 0.25) { System.out.println(e.getCause()); if(CustomPlayer.playersAlive.get(e.getEntity().getUniqueId()).getRole().equals(Roles.ANCIEN)) { if(!ancientDead) { e.setCancelled(true); damaged.setHealth(20.0); damaged.teleport(sm.getRandomLocation(damaged, this)); ancientDead = true; return; } }	Player soso = null; lastDeathLoc.put(damaged, damaged.getLocation()); for(CustomPlayer cp : CustomPlayer.PLAYERS.values()) { if(cp.getRole().equals(Roles.SORCIERE)) { soso =Bukkit.getPlayer(cp.getUniqueId()); } } if(!RezSoso && soso != null) { e.setCancelled(true); damaged.setHealth(20.0); damaged.teleport(Bukkit.getWorld(ConfigManager.world).getSpawnLocation()); c.startRezTime(this, damaged); if(!RezSoso) { TextComponent texte = new TextComponent(prefix+"§a Un joueur est mort ! Exécutez la commande /lg sauver " + damaged.getDisplayName() + " ou cliquez sur ce message si vous souhaitez le ressusciter"); texte.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/lg sauver " + damaged.getDisplayName())); texte.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(prefix +" §aCliquez ici pour ressusciter " + damaged.getDisplayName()).create())); soso.spigot().sendMessage(texte); } return; }else { damaged.teleport(lastDeathLoc.get(damaged)); damaged.setHealth(0); } } } } }else { e.setCancelled(true); } } @EventHandler @Deprecated public void onDeath(PlayerDeathEvent e) { if(e.getEntity().equals(Couple)) return; if(start) { Player p = e.getEntity(); e.setDeathMessage(""); if(lastDeathMSG.get(e.getEntity()) != null) { for(Player pl : Bukkit.getOnlinePlayers()) { pl.sendMessage("§7§o[" + p.getName() + "] " + lastDeathMSG.get(e.getEntity())); } } for(Player pl : Bukkit.getOnlinePlayers()) { pl.sendMessage("§c=====================================================" + "\n§2Le village a perdu un de ses membres, " + p.getDisplayName() + " qui était " + CustomPlayer.playersAlive.get(p.getUniqueId()).getRole().getName() + "\n§c====================================================="); } if(CustomPlayer.playersAlive.containsKey(e.getEntity().getUniqueId()) && CustomPlayer.playersAlive.get(p.getUniqueId()).getCouple()) { CustomPlayer premierCouple = CustomPlayer.coupleMap.get(p.getUniqueId()); CustomPlayer.coupleMap.remove(p.getUniqueId()); Collection<CustomPlayer> secondCouple = CustomPlayer.coupleMap.values(); for(CustomPlayer couple : secondCouple) { if(couple.getCouple()) { Couple = Bukkit.getPlayer(couple.getUniqueId()); Bukkit.getPlayer(couple.getUniqueId()).setHealth(0); Bukkit.broadcastMessage("§c=====================================================" + "\n§2Dans un élan de chagrin " + Bukkit.getPlayer(couple.getUniqueId()).getDisplayName() + " qui était " + couple.getRole().getName() + " a décidé de rejoindre " + p.getDisplayName() + " dans sa tombe. RIP" + "\n§c====================================================="); CustomPlayer.playersAlive.remove(couple.getUniqueId()); CustomPlayer.coupleMap.put(p.getUniqueId(), premierCouple); } } } CustomPlayer.playersAlive.remove(p.getUniqueId()); if(CustomPlayer.PLAYERS.get(p.getUniqueId()).getRole().equals(Roles.CHASSEUR)) { TextComponent text = new TextComponent(prefix + "Vous pouvez tirer un dernier coup sur un joueur de votre choix afin de lui faire perdre 5 coeurs jusqu'au lendemain. Exécutez la commande /lg tirer [pseudo] ou cliquez sur ce message"); text.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Exécutez la commande /lg tirer [pseudo] ou cliquez sur ce message").create())); text.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/lg tirer ")); p.spigot().sendMessage(text); } p.setPlayerListName("§7§o" + p.getName() + " [" + CustomPlayer.PLAYERS.get(p.getUniqueId()).getRole().getName() + "]"); if(lastDeathKillerPlayer.containsKey(p)) { Roles killerRole = CustomPlayer.PLAYERS.get(lastDeathKillerPlayer.get(p).getUniqueId()).getRole(); if(killerRole.equals(Roles.ASSASSIN) || CustomPlayer.PLAYERS.get(lastDeathKillerPlayer.get(p).getUniqueId()).getCamp().equals(Camp.LG)) { Bukkit.getPlayer(CustomPlayer.PLAYERS.get(lastDeathKillerPlayer.get(p).getUniqueId()).getUniqueId()).addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 60*20, 0, false, false)); Bukkit.getPlayer(CustomPlayer.PLAYERS.get(lastDeathKillerPlayer.get(p).getUniqueId()).getUniqueId()).addPotionEffect(new PotionEffect(PotionEffectType.ABSORPTION, 60*20, 0, false, false)); } } e.getDrops().add(new ItemStack(Material.GOLDEN_APPLE)); if(master != null && master.equals(e.getEntity())) { for(CustomPlayer cp : CustomPlayer.playersAlive.values()) { if(cp.getRole().equals(Roles.ES)) { Bukkit.getPlayer(cp.getUniqueId()).sendMessage(prefix + "§6 Votre modèle est mort, vous faites désormais partie de la communauté des Loups-Garous et disposez des mêmes pouvoirs !"); cp.setCamp(Camp.LG); } } } cw.checkWin(this); } } @EventHandler public void onJoin(PlayerJoinEvent e) { Player p = e.getPlayer(); e.setJoinMessage("§8[§a+§8] " + p.getName() + " (§e" + getServer().getOnlinePlayers().size() + "§8/§e" + getServer().getMaxPlayers() + "§8)"); int compo = Chrono.activeRoles.size(); if(start) { if(CustomPlayer.PLAYERS.containsKey(p.getUniqueId())) { if(!CustomPlayer.playersAlive.containsKey(p.getUniqueId())) { p.setPlayerListName("§7§o" + p.getName() + " [" + CustomPlayer.PLAYERS.get(p.getUniqueId()).getRole().getName() + "]"); } } if(!boards.containsKey(p)) { ScoreboardSign sb = new ScoreboardSign(p, "LGUHC"); sb.create(); boards.put(p, sb);	}else { boards.get(p).create();	} if(compo > 14) { if(!compo1.containsKey(p)) { CustomScoreboard compo1 = new CustomScoreboard(p, 1, "Composition 1/2"); Main.compo1.put(p, compo1); }else { compo1.get(p).create(p); } if(!compo2.containsKey(p)) { CustomScoreboard compo2 = new CustomScoreboard(p, 2, "Composition 2/2"); Main.compo1.put(p, compo2); }else { compo2.get(p).create(p); } }else { if(!Main.compo1.containsKey(p)) { CustomScoreboard compo1 = new CustomScoreboard(p, 1, "Composition"); Main.compo1.put(p, compo1); } } } } @EventHandler public void onQuit(PlayerQuitEvent e) { int numberOfPlayer = getServer().getOnlinePlayers().size()-1; Player p = e.getPlayer(); e.setQuitMessage(ChatColor.BLACK + "§8[§4-§8] " + p.getName() + " (§e" + numberOfPlayer + "§8/§e" + getServer().getMaxPlayers() + "§8)"); } @EventHandler public void preprocessEvent(PlayerCommandPreprocessEvent e) { if(e.getMessage().startsWith("/help")){ e.setMessage("/lg help"); } } @EventHandler public void onInventoryClick(InventoryClickEvent e) { }	@EventHandler public void respawnEvent(PlayerRespawnEvent e) { e.getPlayer().setGameMode(GameMode.SPECTATOR); e.getPlayer().sendMessage(prefix+" §cVotre aventure au sein du village s'arrête ici ! Merci de changer de channel !"); } }

References: §2
 §2
 §2
 §2
 §2
 §2
 §2
 §2
 §2
 §2
 §2
 §2
 §2
 §2
 §2
 §2
 §2
 §2