Navigation

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

    Problème avec un item sous spongeforge

    Sans suite
    1.11.x
    2
    3
    677
    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.
    • F
      Fury last edited by

      Bonjours j’ai actuellement un problème avec un item qui permet d’ouvrir des coffre il fonctionne très bien mais le petit hic
      sais que sous serveur spongeforge 1.11.2 l’item fonctionne mais le gui lui ce ferme automatiquement des que je Click sur le coffre que je veux ouvrir avec mon item.
      la classe de l’item en question

      
      import com.fury.tts.test;
      
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.inventory.IInventory;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.tileentity.TileEntity;
      import net.minecraft.tileentity.TileEntityChest;
      import net.minecraft.util.ActionResult;
      import net.minecraft.util.EnumActionResult;
      import net.minecraft.util.EnumFacing;
      import net.minecraft.util.EnumHand;
      import net.minecraft.util.math.BlockPos;
      import net.minecraft.world.World;
      import net.minecraftforge.fml.relauncher.Side;
      import net.minecraftforge.fml.relauncher.SideOnly;
      
      public class ChestOpen extends Item {
      
      public ChestOpen() {
      setMaxStackSize(1);
      }
      /*@Override
          public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
          {
      if (!world.isRemote) {
      TileEntity tile = world.getTileEntity(pos);
      System.out.println(tile); //renvoie toujours null
      
      if (tile == null) {
      return EnumActionResult.PASS;
      }
      if(tile instanceof TileEntityChest) {
      System.out.println("on lance le gui");
      player.openGui(Main.instance, 0, world, pos.getX(), pos.getY(), pos.getZ());
      return EnumActionResult.FAIL;
      }
      }
      return EnumActionResult.PASS;
          }*/
      }
      
      

      ma class EventPlayerUseItem

      
      import com.fury.tts.test;
      import com.fury.tts.init.ModItems;
      
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.gui.inventory.GuiChest;
      import net.minecraft.client.gui.inventory.GuiContainer;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.init.Items;
      import net.minecraft.inventory.EntityEquipmentSlot;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.world.World;
      import net.minecraftforge.client.event.GuiOpenEvent;
      import net.minecraftforge.event.entity.player.PlayerInteractEvent;
      import net.minecraftforge.fml.common.eventhandler.EventPriority;
      import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
      import net.minecraftforge.fml.relauncher.Side;
      import net.minecraftforge.fml.relauncher.SideOnly;
      public class EventPlayerUseItem {
      
      @SubscribeEvent
      public void onRightClick(PlayerInteractEvent.RightClickBlock event) {
      
          if (event.getEntityPlayer().getItemStackFromSlot(EntityEquipmentSlot.MAINHAND).getItem() == ModItems.chestOpen) {
              if (event.getWorld().getTileEntity(event.getPos()) != null) {
                  event.setCanceled(true);
                  event.getEntityPlayer().openGui(eminent57pvpmods.instance, 0, event.getWorld(), event.getPos().getX(), event.getPos().getY(), event.getPos().getZ());
              }
          }
      }}
      
      

      je sais pas comment régler ce pépin avec sponge.

      1 Reply Last reply Reply Quote 0
      • AymericRed
        AymericRed last edited by

        Bonjour,

        Pourquoi tu as commenté le code que tu as fait dans ton Item ? A part deux problèmes il était bon ^^
        Evites d’utiliser une event pour un item dont tu peux modifier le code.
        Voici ce que ta fonction onItemUse devrait être :

        @Override
        public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
        {
        if (!world.isRemote) {
        TileEntity tile = world.getTileEntity(pos);
        
        if(tile instanceof TileEntityChest) {
        System.out.println("on lance le gui");
        player.openGui(Main.instance, 0, world, pos.getX(), pos.getY(), pos.getZ());
        return EnumActionResult.SUCCESS;
        }
        }
        return EnumActionResult.PASS;
        }
        
        1 Reply Last reply Reply Quote 0
        • F
          Fury last edited by

          Ça fait encore et ce passe avec spongeforge seulement .

          1 Reply Last reply Reply Quote 0
          • 1 / 1
          • First post
            Last post
          Design by Woryk
          Contact / Mentions Légales / Faire un don

          MINECRAFT FORGE FRANCE © 2018

          Powered by NodeBB