Codage d'un item dés
-
Salut,
Toutes les demandes d’aide concernant la programmation vont dans support pour les moddeurs (c’est d’ailleurs clairement indiqué).
Il y a déjà eu plusieurs demande d’aide concernant cette question (comment envoyer une commande).De plus, tu n’as pas indiqué ta version, merci donc de mettre la balise appropriée.
-
Excusez moi alors je suis tout nouveau, je corrige ça

-
player.addChatComponentMassage(jet); peremet d’ajouter un message dans le tchat.
Or toi, tu veux exécuter une commande.Utilises :
- MinecraftServer.getServer pour obtenir l’instance du server
- MinecraftServer#getCommandManager pour obtenir le CommandManager du server
- ICommandManager#executeCommand pour executer une commande
-
Merci ça m’aide beaucoup, je connais pas encore toute les classes donc merci.
Je sens que j’avance je vais bidouiller un peu mais je sens que je suis sur la bonne voie
public EntityPlayer onItemRightClick(World world, EntityPlayer player) { MinecraftServer server = MinecraftServer.getServer(); ICommandManager command = server.getCommandManager(); command.executeCommand(player, "/dndroll 2d6"); return world; } -
Normalement ton code est bon

-
Pas tout a fait il semble manquer quelque chose, puisque quand je fais un clic droit il ne se passe rien, je sens que ça se joue encore a un détail, comme toujours ^^
Pense tu qu’un event est nécessaire dans mon cas ? -
Son code n’est pas correct, car la fonction onItemRightClick a mal été override, il devrait y avoir un paramètre ItemStack.
-
Effectivement, j’avais pas vu

-
Niquel j’ai réussi,je vous remercie (1 jour que je suis dessus quand même …) , comme je l’avais dis ça se jouait a un détail. Pour ceux que ça peut aider :
public class Des <itemstack>extends Item { ItemStack itemdes = new ItemStack (Heimnor.itemdes); public ItemStack onItemRightClick(ItemStack itemdes, World world, EntityPlayer player) { MinecraftServer server = MinecraftServer.getServer(); ICommandManager command = server.getCommandManager(); command.executeCommand(player, "/dndroll 2d6"); return itemdes; } }Dernière question si c’est pas trop demander :S
J’aimerais pouvoir limiter le nombre de commande que j’envois via cet item dans un espace temps donné, c’est possible ?</itemstack>
-
Avec un peu de réflection ça doit être possible.
Il faudrait que a chaque fois que que tu executes une commande, il y ait un timer et que ça bloque l’exécution des commandes de l’utilisateur en envoyant un message du genre : “Merci d’attendre <valeur du timer=”“>secondes/minutes/heures/anées/décénnies/siècles/millénaires avant d’exécuter une commande.”PS: tout est possible en modding :D</valeur>
-
Ca marche je me penche dessus alors ^^ Je passe le sujet en résolu, merci de votre aide !

-
Derien
! -
Timer que tu décrémenterais depuis la fonction Item#onUpdate au cas où tu hésiterais

-
Merci j’avoue que cela ne m’avais pas traversé l’esprit je suis encore qu’un novice
