Amélioration de la commande /animal + correction de bug associé à cette commande
This commit is contained in:
parent
1fcfea8f83
commit
3a1095adad
@ -1,5 +1,6 @@
|
|||||||
package net.mc_pandacraft.java.plugin.pandacraftutils.commands;
|
package net.mc_pandacraft.java.plugin.pandacraftutils.commands;
|
||||||
|
|
||||||
|
import net.mc_pandacraft.java.plugin.pandacraftutils.modules.cheat_protect.TamedEntityProtectManager;
|
||||||
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayer;
|
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayer;
|
||||||
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager;
|
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager;
|
||||||
|
|
||||||
@ -29,23 +30,40 @@ public class CommandAnimal extends AbstractCommandExecutor {
|
|||||||
|
|
||||||
if (!op.isAnimalSelectionEnabled()) {
|
if (!op.isAnimalSelectionEnabled()) {
|
||||||
op.enableAnimalSelection();
|
op.enableAnimalSelection();
|
||||||
p.sendMessage(ChatColor.GREEN+"Faites clic droite pour sélectionner un animal apprivoisé");
|
p.sendMessage(ChatColor.GREEN+"Faites un clic droite pour sélectionner un animal apprivoisé (cheval, loup ou chat)");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// la sélection d'un animal est déjà activée
|
// la sélection d'un animal est déjà activée
|
||||||
|
|
||||||
// si je joueur n'a pas encore sélectionné d'animal
|
|
||||||
if (op.getSelectedAnimal() == null) {
|
// si le joueur veut désactiver la sélection d'un animal
|
||||||
p.sendMessage(ChatColor.RED+"Faites d'abord un clic droite sur un animal apprivoisé");
|
if (args.length >= 1 && args[0].equalsIgnoreCase("annuler")) {
|
||||||
|
p.sendMessage(ChatColor.GREEN+"La sélection d'un animal est désactivée");
|
||||||
|
op.resetAnimalSelection();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Tameable animal = op.getSelectedAnimal();
|
|
||||||
|
|
||||||
if ((animal.getOwner() == null || !animal.getOwner().equals(p)) && !op.hasPermission("pandacraft.animal.admin")) {
|
// si je joueur n'a pas encore sélectionné d'animal
|
||||||
p.sendMessage(ChatColor.RED+"Vous n'avez pas le droit de modifier cet animal");
|
if (op.getSelectedAnimal() == null) {
|
||||||
|
p.sendMessage(ChatColor.RED+"Faites d'abord un clic droite sur un animal apprivoisé (cheval, loup ou chat)");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TamedEntityProtectManager tepm = plugin.tamedEntityProtectManager;
|
||||||
|
Tameable animal = op.getSelectedAnimal();
|
||||||
|
String animalName = tepm.get_thisAnimal_Name(animal);
|
||||||
|
|
||||||
|
if (!op.hasPermission("pandacraft.animal.admin")) {
|
||||||
|
if (animal.getOwner() == null) {
|
||||||
|
p.sendMessage(ChatColor.RED+animalName+ChatColor.RED+" n'appartient à personne");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!animal.getOwner().equals(p)) {
|
||||||
|
p.sendMessage(ChatColor.RED+animalName+ChatColor.RED+" n'est pas à vous");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -59,9 +77,9 @@ public class CommandAnimal extends AbstractCommandExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
animal.setOwner(newOwner);
|
animal.setOwner(newOwner);
|
||||||
p.sendMessage(ChatColor.GREEN+"Vous venez de donner cet animal à "+newOwner.getDisplayName());
|
p.sendMessage(ChatColor.GREEN+"Vous venez de donner "+animalName+ChatColor.GREEN+" à "+newOwner.getDisplayName());
|
||||||
|
op.resetAnimalSelection();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,11 @@ import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager
|
|||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.AnimalTamer;
|
import org.bukkit.entity.AnimalTamer;
|
||||||
|
import org.bukkit.entity.Horse;
|
||||||
|
import org.bukkit.entity.Ocelot;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
|
import org.bukkit.entity.Wolf;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
@ -39,7 +42,7 @@ public class TamedEntityProtectManager implements Listener {
|
|||||||
tameableEntity.setOwner(event.getOwner());
|
tameableEntity.setOwner(event.getOwner());
|
||||||
|
|
||||||
Player p = (Player) event.getOwner();
|
Player p = (Player) event.getOwner();
|
||||||
p.sendMessage(ChatColor.GREEN+"Vous venez de protéger cet animal");
|
p.sendMessage(ChatColor.GREEN+"Vous venez de protéger "+get_thisAnimal_Name(tameableEntity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -55,7 +58,7 @@ public class TamedEntityProtectManager implements Listener {
|
|||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
Player p = (Player) event.getEntered();
|
Player p = (Player) event.getEntered();
|
||||||
p.sendMessage(ChatColor.RED+"Cet animal est à "+getOwnerDisplayName(tameableEntity)+ChatColor.RED+", vous ne pouvez pas y toucher");
|
p.sendMessage(ChatColor.RED+get_thisAnimal_Name(tameableEntity)+ChatColor.RED+" est à "+getOwnerDisplayName(tameableEntity)+ChatColor.RED+", vous ne pouvez pas y toucher");
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -73,7 +76,7 @@ public class TamedEntityProtectManager implements Listener {
|
|||||||
if (animal.getOwner().equals(p)) return;
|
if (animal.getOwner().equals(p)) return;
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
p.sendMessage(ChatColor.RED+"Cet animal est à "+getOwnerDisplayName(animal)+ChatColor.RED+", vous ne pouvez pas y toucher");
|
p.sendMessage(ChatColor.RED+get_thisAnimal_Name(animal)+ChatColor.RED+" est à "+getOwnerDisplayName(animal)+ChatColor.RED+", vous ne pouvez pas y toucher");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,13 +92,13 @@ public class TamedEntityProtectManager implements Listener {
|
|||||||
|
|
||||||
boolean selected = OnlinePlayerManager.get(event.getPlayer()).setSelectedAnimal(animal);
|
boolean selected = OnlinePlayerManager.get(event.getPlayer()).setSelectedAnimal(animal);
|
||||||
if (selected) {
|
if (selected) {
|
||||||
event.getPlayer().sendMessage(ChatColor.GREEN+"Vous venez de sélectionner cet animal");
|
event.getPlayer().sendMessage(ChatColor.GREEN+"Vous venez de sélectionner "+get_thisAnimal_Name(animal));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (animal.getOwner().equals(event.getPlayer())) return;
|
if (animal.getOwner().equals(event.getPlayer())) return;
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
event.getPlayer().sendMessage(ChatColor.RED+"Cet animal est à "+getOwnerDisplayName(animal)+ChatColor.RED+", vous ne pouvez pas y toucher");
|
event.getPlayer().sendMessage(ChatColor.RED+get_thisAnimal_Name(animal)+ChatColor.RED+" est à "+getOwnerDisplayName(animal)+ChatColor.RED+", vous ne pouvez pas y toucher");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,4 +132,32 @@ public class TamedEntityProtectManager implements Listener {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Donne le nom personnalisé de l'animal passé en paramètre, ou son espèce, le cas échéant, de la forme
|
||||||
|
* "ce cheval", "ce loup" ou "ce chat".
|
||||||
|
* @param animal l'animal apprivoisable pour lequel il faut récupérer son nom
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String get_thisAnimal_Name(Tameable animal) {
|
||||||
|
if (animal instanceof Horse) {
|
||||||
|
String customName = ((Horse) animal).getCustomName();
|
||||||
|
return (customName == null) ? "ce cheval" : ChatColor.RESET+customName;
|
||||||
|
}
|
||||||
|
if (animal instanceof Wolf) {
|
||||||
|
String customName = ((Wolf) animal).getCustomName();
|
||||||
|
return (customName == null) ? "ce loup" : ChatColor.RESET+customName;
|
||||||
|
}
|
||||||
|
if (animal instanceof Ocelot) {
|
||||||
|
String customName = ((Ocelot) animal).getCustomName();
|
||||||
|
return (customName == null) ? "ce chat" : ChatColor.RESET+customName;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "cet animal";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user