• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Problème de GUI / Commandes / Packets

    Sans suite
    1.7.10
    2
    2
    531
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • AzTick_
      AzTick_ last edited by

      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 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

        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 Reply Last reply Reply Quote 0
        • 1 / 1
        • First post
          Last post
        Design by Woryk
        Contact / Mentions Légales

        MINECRAFT FORGE FRANCE © 2018

        Powered by NodeBB