MFF

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

    Problème de GUI / Commandes / Packets

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    2 Messages 2 Publieurs 682 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.
    • AzTick_A Hors-ligne
      AzTick_
      dernière édition par

      Bonsoir,

      Je ne comprend pas, j’ai un soucis que je n’arrive pas à règler, j’ai créer un gui avec un bouton, lorsque l’on clique dessus,
      cela ferme le Gui et execute une commande dans la console avec un packet, alors cela marche avec le debugger (serveur + client)
      mais sur mon serveur cela ne fonctionne pas et je ne comprend pas pourquoi

      Voici mes classe:

      Classe GuiJobs :

      package fr.askip.testing.gui.f4menu.jobs;
      
      import org.lwjgl.opengl.GL11;
      
      import com.mojang.realmsclient.gui.ChatFormatting;
      
      import fr.askip.testing.Main;
      import fr.askip.testing.gui.CustomButton;
      import fr.askip.testing.gui.f4menu.F4Menu;
      import fr.askip.testing.gui.f4menu.achat.GuiAchats;
      import fr.askip.testing.gui.f4menu.commands.GuiCommands;
      import fr.askip.testing.gui.f4menu.regles.GuiRegles;
      import fr.askip.testing.packets.PacketCmdServer;
      import fr.askip.testing.utils.Refs;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.gui.GuiButton;
      import net.minecraft.client.gui.GuiScreen;
      import net.minecraft.server.MinecraftServer;
      import net.minecraft.util.ResourceLocation;
      
      public class GuiJobs extends GuiScreen {
      
      int guiWidth = 250;
      int guiHeight = 250;
      
      private ResourceLocation ressource = new ResourceLocation(Refs.MODID + ":textures/gui/menuf4.png");
      
      private int citoyen;
      
      @Override
      public void initGui() {
      
          this.citoyen = 1;
      
      this.buttonList.add(new CustomButton(this.citoyen, this.width / 2 - 19, this.height / 2 - 50, 40, 20, ChatFormatting.GREEN + "- Citoyen"));
      
      }
      
      @Override
      protected void actionPerformed(GuiButton button) {
      
      if(button.id == this.citoyen) {
      Minecraft.getMinecraft().displayGuiScreen(null);
      Main.network.sendToServer(new PacketCmdServer(0));
      
      } 
      
      super.actionPerformed(button);
      }
      
      @Override
      public void drawScreen(int x, int y, float ticks) {
      
      int guiX = (width - guiWidth) / 2;
      int guiY = (height - guiHeight) / 2;
      GL11.glColor4f(1, 1, 1, 1);
      drawDefaultBackground();
      mc.renderEngine.bindTexture(ressource);
      drawTexturedModalRect(guiX, guiY, 0, 0, guiWidth, guiHeight);
      
      super.drawScreen(x, y, ticks);
      }
      
      }
      

      Classe Main :

      package fr.askip.testing;
      
      import cpw.mods.fml.common.Mod;
      import cpw.mods.fml.common.SidedProxy;
      import cpw.mods.fml.common.event.FMLInitializationEvent;
      import cpw.mods.fml.common.event.FMLPostInitializationEvent;
      import cpw.mods.fml.common.event.FMLPreInitializationEvent;
      import cpw.mods.fml.common.event.FMLServerStartingEvent;
      import cpw.mods.fml.common.network.NetworkRegistry;
      import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
      import cpw.mods.fml.relauncher.Side;
      import fr.askip.testing.init.CombinedBlocks;
      import fr.askip.testing.listeners.Events;
      import fr.askip.testing.packets.PacketCmdServer;
      import fr.askip.testing.proxy.CommonProxy;
      import fr.askip.testing.utils.Refs;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.init.Items;
      import net.minecraft.item.Item;
      import net.minecraftforge.common.MinecraftForge;
      
      @Mod(modid = Refs.MODID, name = Refs.MOD_NAME, version = Refs.VERSION)
      public class Main {
      
      @SidedProxy(clientSide = Refs.CLIENT_PROXY, serverSide = Refs.SERVER_PROXY)
      public static CommonProxy proxy;
      public static SimpleNetworkWrapper network;
      
      public static CreativeTabs CombinedTabs = new CreativeTabs("Combined RP") {
      @Override
      public Item getTabIconItem() {
      return Items.apple;
      }
      };
      
      @Mod.EventHandler
      public void onServerStarting(FMLServerStartingEvent e) {
      
      }
      
      @Mod.EventHandler
      public void preInit(FMLPreInitializationEvent e) {
      proxy.preInit(e.getSuggestedConfigurationFile());
      
      CombinedBlocks.init();
      CombinedBlocks.register();
      
      network = NetworkRegistry.INSTANCE.newSimpleChannel("combinedrp:");
      network.registerMessage(PacketCmdServer.Handler.class, PacketCmdServer.class, 0, Side.SERVER);
      }
      
      @Mod.EventHandler
      public void init(FMLInitializationEvent e) {
      proxy.init();
      MinecraftForge.EVENT_BUS.register(new Events());
      }
      
      @Mod.EventHandler
      public void postInit(FMLPostInitializationEvent e) {
      
      }
      
      }
      
      

      Classe PacketCmdServer:

      package fr.askip.testing.packets;
      
      import cpw.mods.fml.common.network.simpleimpl.IMessage;
      import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
      import cpw.mods.fml.common.network.simpleimpl.MessageContext;
      import io.netty.buffer.ByteBuf;
      import net.minecraft.server.MinecraftServer;
      
      public class PacketCmdServer implements IMessage {
      
      private Integer integer;
      
      public PacketCmdServer() {
      }
      
      public PacketCmdServer(Integer i) {
      this.integer = i;
      }
      
      @Override
      public void fromBytes(ByteBuf buf) {
      this.integer = Integer.valueOf(buf.readInt());
      }
      
      @Override
      public void toBytes(ByteBuf buf) {
      buf.writeInt(this.integer.intValue());
      }
      
      public static class Handler implements IMessageHandler <packetcmdserver, imessage="">{
      
      @Override
      public IMessage onMessage(PacketCmdServer message, MessageContext ctx) {
      switch (message.integer.intValue()) {
      
      //GUI JOBS 1
      
      case 0:
      ctx.getServerHandler().playerEntity.mcServer.getCommandManager().executeCommand(ctx.getServerHandler().playerEntity.mcServer, "citoyen_job " + ctx.getServerHandler().playerEntity.getDisplayName());
      ctx.getServerHandler().playerEntity.mcServer.getCommandManager().executeCommand(ctx.getServerHandler().playerEntity.mcServer, "say Salut " + ctx.getServerHandler().playerEntity.getDisplayName());
      break;
      
      }
      return null;
      }
      
      }
      
      }
      
      

      Cordialement AzTick_</packetcmdserver,>

      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

        Salut,
        J’imagine que ton serveur en prod est sous Thermos ou Caudron ?

        Si oui, le système d’exécution de commande n’est pas le même et il n’y a rien qui gère la compatibilité entre le système de base de mc et celui de bukkit.

        Plutôt qu’utiliser un paquet et tenter d’exécuter la commande, envoies un simple message de chat directement depuis le client (avec la même fonction que celle utilisé dans GuiChat).

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

        MINECRAFT FORGE FRANCE © 2024

        Powered by NodeBB