Résolu Click droit sur une entity exécute command
-
Bonjour, je cherche depuis bientôt 3h a que quand je fasse un click droit sur mon entity (que j’ai crée) ça excute une command a la console du serveur
Voila ma classe Event:
public class EventPNJ1 { @SubscribeEvent public void onRightClickPNJ1(PlayerInteractEvent e) { if(e.entity instanceof EntityPlayer) { if(EntityPlayer (e.action.RIGHT_CLICK_AIR)) { MinecraftServer minecraftserver = MinecraftServer.getServer(); net.minecraft.entity.player.EntityPlayer entity = null; if (minecraftserver != null) minecraftserver.getCommandManager().executeCommand((EntityPlayer) entity, "say salut"); } } } private boolean EntityPlayer(Action rightClickAir) { return false; } }
Ci possible crée une permission et vérifier si le joueur la avant de excuter la command.
-
Tu as plusieurs problèmes dans ton code actuellement :
- C’est inutile de faire un null check sur minecraftserver car MinecraftServer.getServer() ne retourne jamais null pendant qu’un monde est lancé.
- Ta variable “entity” est toujours nulle donc la commande ne peut pas s’éxécuter, tu peux par exemple remplacer son utilisation par “minecraftserver” vu que lui aussi peut envoyer des commandes.
-
Ah j’ai refait tout mon code et la il marche
Il suffit d’ajouter ceci dans la classe du mob
public boolean interact(EntityPlayer entity) { super.interact(entity); int i = (int) this.posX; int j = (int) this.posY; int k = (int) this.posZ; if (true) { if (true) { MinecraftServer.getServer().getCommandManager().executeCommand(MinecraftServer.getServer(), "say salut"); } } return true; }
C’est plus propre je trouve et je suis débutant dans le java je pratique depuis bientôt 4mois
Merci de m’avoir aider.