Détecter quand un joueur écrit dans le chat


  • Bonjour,

    J'ai des difficultés à réaliser une fonctionnalité de mon mod.

    L'objectif :

    • détecter quand un joueur est en train d'écrire dans le chat (pas quand il l'ouvre, mais quand il à commencé a taper).
    • détecter si la première lettre qu'il à tapé est un "!" (toujours pendant qu'il écrit).

    J'ai tenté ceci :

    
    @SubscribeEvent
    public void onEvent(RenderTickEvent event)
    {
    if (Minecraft.getMinecraft().ingameGUI.getChatGUI().getChatOpen())
    {
    if(keyBindTest.isPressed())
    {
    System.out.println("debug");
    }
    }
    
    }
    
    

    Dans ce cas, la détection de l'ouverture du chat fonctionne bien, mais pas celle de la pression de la touche dans le chat.

    Et ceci :

    
    @SubscribeEvent
    public void onEvent(KeyInputEvent event)
    {
    if(keyBindTest.isPressed() && Minecraft.getMinecraft().ingameGUI.getChatGUI().getChatOpen())
    {
    System.out.println("debug");
    }
    }
    
    

    Dans ce cas, la touche pressée n'est pas détecté non plus. sans le "Minecraft.getMinecraft().ingameGUI.getChatGUI().getChatOpen()", la pression de la touche est bien détectée, mais seulement en dehors du chat.

    Si vous avez des idées, je suis à court moi !

    Merci d'avance.

  • Moddeurs confirmés

    Plutôt qu'utiliser un renderTick event, as-tu pensé a utiliser GuiOpenEvent ? ça me semble plus économe en ressource.


  • Merci de ta réponse, mais GuiOpenEvent ne me permettrait que de détecter l'ouverture du chat. J'aurais besoin de détecter le moment où le joueur commence à taper quelque chose dans le chat.


  • Il y a aussi l'event "ServerChatEvent" Qui s'enclenche quand un joueur écrit un message dans le chat 😉 (Je sais pas si c'est ça que tu cherchais ^^)