MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Envoyer commande en jeu en cliquant sur un bouton

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.2
    36 Messages 7 Publieurs 7.8k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Car 1.7.2 il n’y a pas encore le système de game profile, la méthode s’appelle surement autrement.

      1 réponse Dernière réponse Répondre Citer 0
      • R Hors-ligne
        roideseaux
        dernière édition par

        d’accord, je viens de voir que cette méthode était pour la 1.7.10 !
        du coup, j’ai trouvé une autre ligne qui fait la meme chose mais avec une autre méthode :

        if ( MinecraftServer.getServer().getConfigurationManager().isPlayerOpped(player.getDisplayName()) )
        

        mais le problème est le même au niveau du “player” !

        1 réponse Dernière réponse Répondre Citer 0
        • FlowF Hors-ligne
          Flow
          dernière édition par

          Tu sais envoyer la classe dans la qu’elle tu met cela s’il te plait je pense savoir 🙂

          Oui ce gif est drôle.

          1 réponse Dernière réponse Répondre Citer 0
          • R Hors-ligne
            roideseaux
            dernière édition par

            C’est une classe modifiée et qui n’est pas finie mais voici la partie intéressante :

            
            package fr.used2craft.launcher.proxy;
            
            import net.minecraft.client.gui.GuiButton;
            import net.minecraft.client.gui.GuiMainMenu;
            import net.minecraft.client.gui.GuiOptions;
            import net.minecraft.client.gui.GuiScreen;
            import net.minecraft.client.gui.GuiShareToLan;
            import net.minecraft.client.gui.achievement.GuiAchievements;
            import net.minecraft.client.gui.achievement.GuiStats;
            import net.minecraft.client.multiplayer.WorldClient;
            import net.minecraft.client.resources.I18n;
            import net.minecraft.server.MinecraftServer;
            import cpw.mods.fml.relauncher.Side;
            import cpw.mods.fml.relauncher.SideOnly;
            
            @SideOnly(Side.CLIENT)
            public class GuiCustomInGameMenu extends GuiScreen
            {
            private int field_146445_a;
            private int field_146444_f;
            private static final String __OBFID = "CL_00000703";
            private int niveau = 0
            
            /**
            * Adds the buttons (and other controls) to the screen in question.
            */
            public void initGui()
            {
            this.buttonList.clear();
            if (niveau == 0)
            {
            this.field_146445_a = 0;
            byte b0 = -16;
            boolean flag = true;
            this.buttonList.add(new GuiButton(1, this.width / 2 - 100, this.height / 4 + 120 + b0, I18n.format("menu.returnToMenu", new Object[0])));
            
            if (!this.mc.isIntegratedServerRunning())
            {
            ((GuiButton)this.buttonList.get(0)).displayString = I18n.format("menu.disconnect", new Object[0]);
            }
            
            this.buttonList.add(new GuiButton(4, this.width / 2 - 100, this.height / 4 + 24 + b0, I18n.format("menu.returnToGame", new Object[0])));
            this.buttonList.add(new GuiButton(0, this.width / 2 - 100, this.height / 4 + 96 + b0, 98, 20, I18n.format("menu.options", new Object[0])));
            //this.buttonList.add(new GuiButton(12, this.width / 2 + 2, this.height / 4 + 96 + b0, 98, 20, "Mod Options…"));
            GuiButton guibutton;
            this.buttonList.add(guibutton = new GuiButton(7, this.width / 2 - 100, this.height / 4 + 72 + b0, 200, 20, I18n.format("menu.shareToLan", new Object[0])));
            this.buttonList.add(new GuiButton(5, this.width / 2 - 100, this.height / 4 + 48 + b0, 98, 20, I18n.format("gui.achievements", new Object[0])));
            this.buttonList.add(new GuiButton(6, this.width / 2 + 2, this.height / 4 + 48 + b0, 98, 20, I18n.format("gui.stats", new Object[0])));
            guibutton.enabled = this.mc.isSingleplayer() && !this.mc.getIntegratedServer().getPublic();
            
            }
            this.newMenu();
            }
            
            public void newMenu()
            {
            if ( MinecraftServer.getServer().getConfigurationManager().isPlayerOpped(player.getDisplayName()) )
            {
            //Ici le code a exécuter si le joueur est op
            }
            }
            
            protected void actionPerformed(GuiButton p_146284_1_)
            {
            switch (p_146284_1_.id)
            {
            case 0:
            this.mc.displayGuiScreen(new GuiOptions(this, this.mc.gameSettings));
            break;
            case 1:
            p_146284_1_.enabled = false;
            this.mc.theWorld.sendQuittingDisconnectingPacket();
            this.mc.loadWorld((WorldClient)null);
            this.mc.displayGuiScreen(new GuiMainMenu());
            case 2:
            case 3:
            default:
            break;
            case 4:
            this.mc.displayGuiScreen((GuiScreen)null);
            this.mc.setIngameFocus();
            break;
            case 5:
            if (this.mc.thePlayer != null)
            this.mc.displayGuiScreen(new GuiAchievements(this, this.mc.thePlayer.getStatFileWriter()));
            break;
            case 6:
            if (this.mc.thePlayer != null)
            this.mc.displayGuiScreen(new GuiStats(this, this.mc.thePlayer.getStatFileWriter()));
            break;
            case 7:
            this.mc.displayGuiScreen(new GuiShareToLan(this));
            break;
            //case 12:
            //FMLClientHandler.instance().showInGameModOptions(this);
            //break;
            case 8:
            mc.thePlayer.sendChatMessage((new StringBuilder()).append("/gm 1").toString()); //Envoie une commande dans le chat qui est /gm
            mc.thePlayer.closeScreen(); //Ferme le gui
            break;
            
            }
            }
            
            /**
            * Called from the main game loop to update the screen.
            */
            public void updateScreen()
            {
            super.updateScreen();
            ++this.field_146444_f;
            }
            
            /**
            * Draws the screen and all the components in it.
            */
            public void drawScreen(int par1, int par2, float par3)
            {
            String test = String.valueOf(niveau);
            this.drawDefaultBackground();
            if (niveau == 0)
            this.drawCenteredString(this.fontRendererObj, "Game menu", this.width / 2, 40, 16777215);
            super.drawScreen(par1, par2, par3);
            }
            }
            
            

            Je pense qu’il faut mettre le nom du joueur en string dans la variable player mais je cherche le code pour le récupérer…

            1 réponse Dernière réponse Répondre Citer 0
            • FlowF Hors-ligne
              Flow
              dernière édition par

              Je ne suis pas un pro pro , donc j’essaye d’aider mais je ne garantie rien , si tu change cette ligne :

              
              public void newMenu()
              
              

              par

              
              public void newMenu(Player player)
              
              

              et import le Player est-ce que tout est résolu niveau erreurs ?

              Je ne garantis rien 😕 J’essaye de moi même trouver les erreurs et j’essaye de corriger… 🙂

              Oui ce gif est drôle.

              1 réponse Dernière réponse Répondre Citer 0
              • R Hors-ligne
                roideseaux
                dernière édition par

                effectivement, ça fonctionne mieux mais maintenant c’est la méthode getDisplayName qui n’est pas reconnue parce qu’il me semble que ce n’est plus celle la, mais j’arrive pas à retrouver la méthode qui récupère le nom du joueur

                1 réponse Dernière réponse Répondre Citer 0
                • FlowF Hors-ligne
                  Flow
                  dernière édition par

                  Esssaye de remplacer le code par celui-ci:

                  
                  public void newMenu(EntityPlayer entityplayer)
                  {
                  byte b0 = -16;
                  
                  if ( MinecraftServer.getServer().getConfigurationManager().isPlayerOpped((entityplayer.getDisplayName())))
                  {
                  
                  }
                  
                  }
                  

                  Cher moi je n’ai plus d’erreur , j’espère ne pas te faire perdre ton temps ^^

                  Oui ce gif est drôle.

                  1 réponse Dernière réponse Répondre Citer 0
                  • R Hors-ligne
                    roideseaux
                    dernière édition par

                    Ouep, j’ai plus d’erreur !! 🙂

                    Merci grandement ^^

                    par contre, j’ai un souci au niveau de l’appel de la méthode dans mon autre méthode mais je pense pouvoir régler ce problème…
                    je m’y remettrai demain 😉

                    merci encore 🙂

                    1 réponse Dernière réponse Répondre Citer 0
                    • FlowF Hors-ligne
                      Flow
                      dernière édition par

                      Pas de soucis content que ca marche , n’hésite pas tester sur ton serveur avec une bête fonction du genre drop d’item pour voir si le bouton marche bien pour vérifier si le joueur est op etc , fin pour que tous soit ok 🙂

                      De rien 🙂

                      Oui ce gif est drôle.

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002R Hors-ligne
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                        dernière édition par

                        Ça ne fonctionnera pas.
                        MinecraftServer.getServer() n’existe que côté serveur, sur un gui ça va crasher.
                        Il n’est pas possible de savoir si un joueur est op depuis le menu principal.

                        1 réponse Dernière réponse Répondre Citer 0
                        • R Hors-ligne
                          roideseaux
                          dernière édition par

                          Arf, ok
                          J’aurais essayé !
                          Merci quand même pour le coup de main !

                          1 réponse Dernière réponse Répondre Citer 0
                          • isadorI Hors-ligne
                            isador Moddeurs confirmés Modérateurs
                            dernière édition par

                            si il y a un moyen, faut que tu fasse un mod serveur qui check la liste des op et l’écris sur ton site internet, et la tu pourra ensuite récupérer la liste et regarder si le joueur est dedans

                            1 réponse Dernière réponse Répondre Citer 0
                            • kevin_68K Hors-ligne
                              kevin_68 Moddeurs confirmés
                              dernière édition par

                              Ou tu utilise un packet …., le client demande si le joueur est op et le serveur lui répond.


                              Mettez à jours vers la dernière version stable (1.8.9 voir même…

                              1 réponse Dernière réponse Répondre Citer 0
                              • R Hors-ligne
                                roideseaux
                                dernière édition par

                                Mouai, je m’y remettrai peut être plus tard, mais pour le moment, je pense que je vais laisser tomber !

                                Je chercherais du coté des packets quand je m’y remettrais (si je m’y remet ^^)

                                Merci encore 🙂

                                1 réponse Dernière réponse Répondre Citer 0
                                • 1
                                • 2
                                • 2 / 2
                                • Premier message
                                  Dernier message
                                Design by Woryk
                                ContactMentions Légales

                                MINECRAFT FORGE FRANCE © 2024

                                Powered by NodeBB