MFF

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

    Problème avec un item sous spongeforge

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.11.x
    3 Messages 2 Publieurs 898 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.
    • F Hors-ligne
      Fury
      dernière édition par

      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 réponse Dernière réponse Répondre Citer 0
      • AymericRedA Hors-ligne
        AymericRed
        dernière édition par

        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;
        }
        

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

          Ça fait encore et ce passe avec spongeforge seulement .

          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