SOLVED Champ de texte et boutons


  • Bonjour/bonsoir,
    ce soir j’ai essayé de faire quelque chose de beau en faisant un gui avec champ de texte et bouton pour parvenir à plusieurs choses.
    J’ai d’abord crée des boutons qui utilise la commande /tp et un bouton qui ferme la fenêtre. Après des que j’ai crée le champ de texte avec lequel on écrirai des coordonnées, les boutons ne fonctionne plus et il m’est impossible de fermer le gui.

    Voici ma classe

    package tarael.gui;
    
    import org.lwjgl.opengl.GL11;
    
    import tarael.Common.TutorialItems;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.entity.EntityPlayerSP;
    import net.minecraft.client.gui.GuiButton;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraft.client.gui.GuiTextField;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.ItemStack;
    import net.minecraft.util.ResourceLocation;
    import net.minecraft.world.World;
    
    public class GuiTest extends GuiScreen {
    
    public String m;
    
    public GuiTest(EntityPlayer player) {
    
    }
    
    private ResourceLocation backgroundimage = new ResourceLocation(
    "tm:textures/client/gui/gui2.png");
    private GuiTextField tutoTextField;
    public final int xSizeOfTexture = 222;
    public final int ySizeOfTexture = 218;
    
    @Override
    public void drawScreen(int x, int y, float f) {
    drawDefaultBackground();
    
    GL11.glColor4f(1F, 1F, 1F, 1F);
    
    this.mc.getTextureManager().bindTexture(backgroundimage);
    int x1 = (this.width - xSizeOfTexture) / 2;
    int y1 = (this.height - ySizeOfTexture) / 2;
    drawTexturedModalRect(x1, y1, 0, 0, xSizeOfTexture, ySizeOfTexture);
    this.tutoTextField.drawTextBox();
    super.drawScreen(x, y, f);
    }
    
    @Override
    public boolean doesGuiPauseGame() {
    return false;
    }
    
    /*
    * private void drawDefaultBackground() { // TODO Auto-generated method stub
    *
    * }
    */
    
    public void initGui() {
    
    this.buttonList.clear();
    
    int posX = (this.width - xSizeOfTexture) / 2;
    int posY = (this.height - ySizeOfTexture) / 2;
    
    this.buttonList.add(new GuiButton(0, posX + 31, posY + 90, 50, 20,
    "Spawn"));
    this.buttonList
    .add(new GuiButton(10, posX + 12, posY + 195, 35, 20, "\u00a74Baal"));
    
    this.buttonList
    .add(new GuiButton(4, posX + 0, posY + 0, 30, 20, "Exit"));
    
    this.tutoTextField = new GuiTextField( 0,this.fontRendererObj, posX+ 50, posY+ 80, 60, 20);
    
    }
    
    public void actionPerformed(GuiButton button) {
    
    switch (button.id) {
    case 0: {
    Minecraft.getMinecraft().thePlayer
    .sendChatMessage("/tp -3674 140 -679 -2 4");
    Minecraft.getMinecraft().thePlayer.closeScreen();
    Minecraft.getMinecraft().thePlayer.inventory
    .consumeInventoryItem(Minecraft.getMinecraft().thePlayer
    .getHeldItem().getItem());
    }
    break;
    
    case 10: {
    Minecraft.getMinecraft().thePlayer
    .sendChatMessage("/tp -3925 95 217 0 26");
    Minecraft.getMinecraft().thePlayer.closeScreen();
    Minecraft.getMinecraft().thePlayer.inventory
    .consumeInventoryItem(Minecraft.getMinecraft().thePlayer
    .getHeldItem().getItem());
    }
    break;
    
    case 4: {
    Minecraft.getMinecraft().thePlayer.closeScreen();
    }
    break;
    // player.setPositionAndRotation((double) -3674,(double) 140,(double)
    // -679,(float) -2,(float) 4);
    default:
    }
    }
    
    public void updateScreen()
    {
    this.tutoTextField.updateCursorCounter();
    }
    
    public void keyTyped(char par1, int par2)
    {
    
    this.tutoTextField.textboxKeyTyped(par1, par2);
    }
    
    public void mouseClicked(int par1, int par2, int par3)
    {
    
    this.tutoTextField.mouseClicked(par1, par2, par3);
    }
    
    }
    

  • Je ne comprends absolument rien à ce que tu veux faire. Mis à part çà, il ne faut pas utiliser sendChatMessage avec le tp mais bien player.setRotationAndAngles ou une méthode similaire.


  • Problème régler, je passe en résolu.

    @‘SCAREX’:

    Je ne comprends absolument rien à ce que tu veux faire. Mis à part çà, il ne faut pas utiliser sendChatMessage avec le tp mais bien player.setRotationAndAngles ou une méthode similaire.

    Sinon pour le “player.setRotationAndAngles” je ne l’utilise pas car le mod que je crée est un mod pour serveur et que dans le serveur en question quand quelqu’un appui sur le bouton qui fait ce “player.setRotationAndAngles”, il est tp vers le lieu puis re tp vers sa position initial. Mais merci d’avoir essayer de m’aider ^^.

  • Administrateurs Rédacteurs Moddeurs confirmés

    Sauf que si sur ton serveur le joueur n’a pas la permission de faire /tp il ne pourra pas se tp.

    Avec setRotationAndAngles il revient à sa position car tu essayes de le bouger côté client, or il faut le faire bouger côté serveur. Donc il faut utiliser un paquet.