Ajouter des touches personalisées
-
J’ai un soucis avec le keyBinding et l’appliaction de son fonctionnement pour un jetpack.
J’ai ça actuellement:
@SubscribeEvent public void onEvent(KeyInputEvent event) { if(ModPg2.keyBindJetPack.getIsKeyPressed()) { keyJetPackTyped(); } } private void keyJetPackTyped() { if(!Minecraft.getMinecraft().thePlayer.capabilities.isCreativeMode && Minecraft.getMinecraft().thePlayer.getEquipmentInSlot(3).getItem() == ModPg2.itemJetPack) { Minecraft.getMinecraft().thePlayer.getEquipmentInSlot(3).damageItem(1, Minecraft.getMinecraft().thePlayer); Minecraft.getMinecraft().thePlayer.motionY += 1.3; } }Donc quand j’appuie sur la touche je décolle. Mais il faut spammer la touche…
Ensuite j’ai utilisé une valeur booléenne enregistrée dans les tags de l’item mais je n’ai su que mettre la valeur true en ayant appuyé et du coup je décollais sans plus m’arrêter.J’aimerais savoir comment obtenir un mouvement logique avec un jetpack.
Tant que j’appuie sur le bouton le joueur quitte le sol, quand on relâche la touche il retombe.
Le fonctionnement des touches personnalisées le permet-il vraiment? -
je crois que la fonction n’est pas getIsKeyPressed dans ce cas mais une autre fonction : isPressed (à vérifier)
-
Il existe deux méthodes qui ont chacun leur utilité.
final boolean hasBeenPressed = keyBindTest.isPressed(); final boolean pressed = keyBindTest.getIsKeyPressed();La première méthode vérifie si la touche vient d’être appuyée. Même si le joueur laisse la touché enfoncé, la méthode ne renverra true qu’une seul fois par appui.
La seconde vérifie si la touche est en train d’être appuyée, c’est à dire qu’elle renverra true tant que le joueur laisse la touche enfoncé. C’est l’option à choisir si vous voulez créer une touche de mouvement par exemple. Dans notre cas, pour un message dans le chat, nous ne sommes pas des floodeurs donc nous allons préférer la première option.Y’a rien qui permet de détecter quand on relâche la touche.
Et j’ai testé les deux méthodes, dans les deux cas ça ne permet pas le fonctionnement d’un jetpack, la méthode n’est appelée qu’une fois, aussi longtemps qu’on reste appuyé ou non. -
C’est à cause de ton event, lui n’est appelé que quand tu appuie, pas quand tu maintient, il faudrait que t’essaye avec le ClientTickEvent.
-
cette fonction renvoie true tant que la touche est appuyée il me semble, ou alors tu peux utiliser le temps pendant lequel elle est pressée sinon
-
@‘AymericRed’:
C’est à cause de ton event, lui n’est appelé que quand tu appuie, pas quand tu maintient, il faudrait que t’essaye avec le ClientTickEvent.
+1
-
Bonjour,
Après avoir faits comme le tuto j’ai remarqué que ça ne prenait pas les commande du type “/etpyes, /clear etc.”.
J’aimerais savoir si quelqu’un pourrait m’aider à faire cette manip . Que quand j’appuie exemple sur ma touche “F” sa me fasse la commande “/clear”.
Merci.EDIT: Version du mod: 1.7.10

-
Minecraft.getMinecraft().thePlayer.addChatComponentMessage(new ChatComponentText(“message”)
permet d’envoyer un message dans le chat du client, pas d’exécuter une commande.
Pour exécuter une commande il faut envoyer un message au serveur :
Minecraft.getMinecraft().thePlayer.sendChatMessage(“message ou commande”); -
Tu devrais rajouter comme bonus, comment rajouter une key categories
-
j’aimerai que quand j’appuie sur une touche sa ouvre un GUI est-ce que c’est possible et si oui comment?
(comme la touche “e” pour l’inventaire) -
si tu veux afficher un gui sans slot (sans container) juste a faire Minecraft.getMinecraft().displayGuiScreen(new TaClassExtendsGuiScreen);
si ya des slots (avec container) donc faut passer par un guihandler et utiliser EntityPlayer#openGui pour ouvrir le gui avec les slots
-
@SpyMan merci beaucoup (c’est pour des stats de joueur et son argent (une extend proriétée) donc sans slot je pense)
-
la fonction Minecraft#displayGuiScreen suffira
-
Avis aux gens qui veulent des jetpacks j’ai la soluce
un simplejesaispaskoï.isKeyDown -
possible de mettre a jour ce tuto pour la 1.12.2 svp ?
-
ses possible d’exécuter un bout de code avec ou pas ?
-
Il me semble que les touches fonctionnent de la même manière en 1.12.2. C’est à partir de la 1.13 que cela a changé comme cette version utilise lwjgl 3 au lieu de la version 2.
-
bonjour est ce que le tuto marche en 1.12.2
-
La question a déjà été posté juste au-dessus, normalement oui ça fonctionne en 1.12.2
-
@robin4002 je sais pas comment on fait pour poser une question mais j’aimerai créer un item en 1.7.10 qui quand on fait un click droit en étant sneak avec un item il enregistre la position et lorsqu’on fait un click droit simple il nous téléporte à la position enregistrer