MFF

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

    Uncmlaim finder en 1.12.2

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    1.12.2
    40 Messages 5 Publieurs 2.4k Vues 5 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.
    • D Hors-ligne
      Drastic
      dernière édition par

      @robin4002 a dit dans Uncmlaim finder en 1.12.2 :

      Pour ce cas (et la majorité d

      Merci ! Ca marche !
      Dernier soucis : je veux ajouter une durabilité mais il se casse instantanément…

      package com.avonia.mod.init.objects;
      
      import com.avonia.mod.Main;
      import com.avonia.mod.init.ItemInit;
      import com.avonia.mod.util.IHasModel;
      
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.ActionResult;
      import net.minecraft.util.EnumActionResult;
      import net.minecraft.util.EnumHand;
      import net.minecraft.world.World;
      import net.minecraftforge.fml.relauncher.Side;
      import net.minecraftforge.fml.relauncher.SideOnly;
      
      public class ItemRadar extends Item implements IHasModel
      {
          private static EntityPlayer player;
          public static int durabilité = 90*20*60*60;
          public ItemRadar(String name)
          {
              setUnlocalizedName(name);
              setRegistryName(name);
              setCreativeTab(CreativeTabs.COMBAT);
              setMaxDamage(durabilité);
              setMaxStackSize(1);       
              ItemInit.ITEMS.add(this);
          }
          
          @Override
          public void registerModels()
          {
              Main.proxy.registerItemRederer(this, 0);
          }
          
          @Override
          public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected)
          {
              player = (EntityPlayer)entityIn;
              
              if(player.getHeldItem(EnumHand.MAIN_HAND).getItem() instanceof ItemRadar)
              {
                  for(int dura = 90*20*60*60; dura >= 0; dura--)
                  {
                      stack.damageItem(1, player);
                  }
              }
              super.onUpdate(stack, worldIn, entityIn, itemSlot, isSelected);
          }
      }
      
      

      Encore merci et désolé du dérangement.

      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

        Retires la double for à la ligne 47, elle n’a rien à faire là.
        Si tu bocule sur toute la durabilité c’est normal de tomber à 0.

        D 1 réponse Dernière réponse Répondre Citer 1
        • D Hors-ligne
          Drastic @robin4002
          dernière édition par

          @robin4002 merci je vais tester. En plus c’est bête car onUpdate fais deja une update par tick

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

            pas le temps de répondre, trop rapide @robin4002 …

            Mes créations :

            Mod en cours de développement : Personal Robot (1.15.2)

            Datapacks : DailyCraft's Craft (beta)

            Je suis un membre apprécié et joueur, j'ai déjà obtenu 2 point(s) de réputation.

            1 réponse Dernière réponse Répondre Citer 1
            • D Hors-ligne
              Drastic
              dernière édition par robin4002

              @robin4002 désolé de te déranger encore mais j’ai un dernier soucis :
              je veux créer une durabilité (ce qui est fait ) et l’afficher sous format h:m:s mais je ne sais pas exactement comment.

              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 robin4002

                https://www.google.com/search?q=java+duration+format

                D 1 réponse Dernière réponse Répondre Citer 1
                • D Hors-ligne
                  Drastic @robin4002
                  dernière édition par

                  @robin4002 merci. Mais juste, je sais pas si c’est moi qui suis bête mais je n’arrive pas à récupérer la durabilité…

                  Mon code:

                  package com.avonia.mod.util.handlers;
                  
                  import java.time.Duration;
                  import java.time.LocalTime;
                  
                  import org.jline.utils.PumpReader;
                  import org.lwjgl.opengl.GL11;
                  
                  import com.avonia.mod.init.ItemInit;
                  import com.avonia.mod.init.objects.ItemRadar;
                  import com.avonia.mod.util.Reference;
                  
                  import net.minecraft.block.BlockDoublePlant.EnumPlantType;
                  import net.minecraft.client.Minecraft;
                  import net.minecraft.client.gui.FontRenderer;
                  import net.minecraft.client.gui.Gui;
                  import net.minecraft.client.renderer.ItemRenderer;
                  import net.minecraft.client.renderer.RenderItem;
                  import net.minecraft.client.renderer.block.model.ModelManager;
                  import net.minecraft.client.renderer.color.ItemColors;
                  import net.minecraft.client.renderer.texture.TextureManager;
                  import net.minecraft.client.resources.IResourceManager;
                  import net.minecraft.entity.player.EntityPlayer;
                  import net.minecraft.init.Blocks;
                  import net.minecraft.item.ItemStack;
                  import net.minecraft.util.EnumHand;
                  import net.minecraft.util.ResourceLocation;
                  import net.minecraftforge.client.event.RenderGameOverlayEvent;
                  import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
                  import net.minecraftforge.fml.relauncher.Side;
                  import net.minecraftforge.fml.relauncher.SideOnly;
                  
                  public class RadarHandler extends Gui
                  {
                      private static Minecraft mc;
                          
                      public static int amountTiles = 0;
                          
                      public static int damage = ItemRadar.maxD - (ItemRadar.maxD - ItemRadar.itemD);
                      
                      ItemRenderer itemRenderer = Minecraft.getMinecraft().getItemRenderer();
                      
                      FontRenderer fontRender;
                      
                      final ResourceLocation bg = new ResourceLocation(Reference.MODID + ":textures/items/radar.png");
                  
                      public RadarHandler()
                      {
                          this.mc = Minecraft.getMinecraft();
                          this.fontRender = this.mc.fontRenderer;
                      }
                      
                      @SideOnly(Side.CLIENT)
                      @SubscribeEvent
                      public void onRenderPre(RenderGameOverlayEvent.Pre event)
                      {
                        
                          if(event.getType() == RenderGameOverlayEvent.ElementType.HELMET && mc.player.getHeldItem(EnumHand.MAIN_HAND).getItem() == ItemInit.radar /*&& ItemRadar.isUsed == 1*/)
                          {
                               mc.getTextureManager().bindTexture(this.bg);
                                  
                               drawModalRectWithCustomSizedTexture(5,5,0,0,32,32,32,32);        
                                  
                               amountTiles = mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                                          mc.player.chunkCoordZ + 0).getTileEntityMap().values().size();
                                  
                               amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                                          mc.player.chunkCoordZ + 1).getTileEntityMap().values().size();
                                  
                               amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                                          mc.player.chunkCoordZ - 1).getTileEntityMap().values().size();
                                  
                               amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 1,
                                          mc.player.chunkCoordZ).getTileEntityMap().values().size();
                                  
                               amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX - 1,
                                          mc.player.chunkCoordZ).getTileEntityMap().values().size();   
                  
                               drawCenteredString(this.mc.fontRenderer, this.amountTiles + "%", 23, 50, -1);
                               drawCenteredString(this.mc.fontRenderer, this.formatDuration(), 23, 58, -1);
                  
                               
                               event.setCanceled(true);
                          }
                      }
                      
                      public static String formatDuration()
                      {
                          Duration duration = Duration.ofSeconds(damage / 20);
                          long seconds = duration.getSeconds();
                          long absSeconds = Math.abs(seconds);
                          String positive = String.format(
                              "%d:%02d:%02d",
                              absSeconds / 3600,
                              (absSeconds % 3600) / 60,
                              absSeconds % 60);
                          return seconds < 0 ? "-" + positive : positive;
                      }
                       
                  }
                  
                  
                  package com.avonia.mod.init.objects;
                  
                  import com.avonia.mod.Main;
                  import com.avonia.mod.init.ItemInit;
                  import com.avonia.mod.util.IHasModel;
                  
                  import net.minecraft.client.Minecraft;
                  import net.minecraft.creativetab.CreativeTabs;
                  import net.minecraft.entity.Entity;
                  import net.minecraft.entity.EntityLivingBase;
                  import net.minecraft.entity.player.EntityPlayer;
                  import net.minecraft.item.Item;
                  import net.minecraft.item.ItemStack;
                  import net.minecraft.util.ActionResult;
                  import net.minecraft.util.EnumActionResult;
                  import net.minecraft.util.EnumHand;
                  import net.minecraft.world.World;
                  import net.minecraftforge.fml.relauncher.Side;
                  import net.minecraftforge.fml.relauncher.SideOnly;
                  import scala.deprecated;
                  
                  public class ItemRadar extends Item implements IHasModel
                  {
                     private static EntityPlayer player;
                     
                     public static int durabilité = 90*20*60;
                  
                     public static int maxD = 0;
                     public static int itemD = 0;
                     
                     public ItemRadar(String name)
                      {
                          setUnlocalizedName(name);
                          setRegistryName(name);
                          setCreativeTab(CreativeTabs.COMBAT);
                          setMaxDamage(durabilité);
                          setMaxStackSize(1);      
                          ItemInit.ITEMS.add(this);
                      }
                      
                      @Override
                      public void registerModels()
                      {
                          Main.proxy.registerItemRederer(this, 0);
                      }
                      
                      @Override
                      public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected)
                      {
                          player = (EntityPlayer)entityIn;
                          
                          stack = player.getHeldItem(EnumHand.MAIN_HAND);
                          
                          if(player.getHeldItem(EnumHand.MAIN_HAND).getItem() instanceof ItemRadar)
                          {
                                  if(durabilité >= 0)
                                  {
                                      durabilité --;
                                      stack.damageItem(1, player);
                                      itemD = stack.getItemDamage();
                                      maxD = stack.getMaxDamage();
                                  }
                                      
                          }
                          super.onUpdate(stack, worldIn, entityIn, itemSlot, isSelected);
                      }
                      
                  }
                  
                  
                  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

                    en utilisant la fonction getItemDamage() de ton itemstack.

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

                      Quand je fais ca :

                      package com.avonia.mod.util.handlers;
                      
                      import java.time.Duration;
                      import java.time.LocalTime;
                      
                      import org.jline.utils.PumpReader;
                      import org.lwjgl.opengl.GL11;
                      
                      import com.avonia.mod.init.ItemInit;
                      import com.avonia.mod.init.objects.ItemRadar;
                      import com.avonia.mod.util.Reference;
                      
                      import net.minecraft.block.BlockDoublePlant.EnumPlantType;
                      import net.minecraft.client.Minecraft;
                      import net.minecraft.client.gui.FontRenderer;
                      import net.minecraft.client.gui.Gui;
                      import net.minecraft.client.renderer.ItemRenderer;
                      import net.minecraft.client.renderer.RenderItem;
                      import net.minecraft.client.renderer.block.model.ModelManager;
                      import net.minecraft.client.renderer.color.ItemColors;
                      import net.minecraft.client.renderer.texture.TextureManager;
                      import net.minecraft.client.resources.IResourceManager;
                      import net.minecraft.entity.player.EntityPlayer;
                      import net.minecraft.init.Blocks;
                      import net.minecraft.item.ItemStack;
                      import net.minecraft.util.EnumHand;
                      import net.minecraft.util.ResourceLocation;
                      import net.minecraftforge.client.event.RenderGameOverlayEvent;
                      import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
                      import net.minecraftforge.fml.relauncher.Side;
                      import net.minecraftforge.fml.relauncher.SideOnly;
                      
                      public class RadarHandler extends Gui
                      {
                          private static Minecraft mc;
                              
                          public static int amountTiles = 0;
                              
                          public static ItemStack stack = mc.player.getHeldItem(EnumHand.MAIN_HAND);
                          
                          public static int maxD = stack.getMaxDamage(), itemD = stack.getItemDamage();
                          
                          public static int damage = maxD - (maxD - itemD);
                          
                          ItemRenderer itemRenderer = Minecraft.getMinecraft().getItemRenderer();
                          
                          FontRenderer fontRender;
                          
                          final ResourceLocation bg = new ResourceLocation(Reference.MODID + ":textures/items/radar.png");
                      
                          public RadarHandler()
                          {
                              this.mc = Minecraft.getMinecraft();
                              this.fontRender = this.mc.fontRenderer;
                          }
                          
                          @SideOnly(Side.CLIENT)
                          @SubscribeEvent
                          public void onRenderPre(RenderGameOverlayEvent.Pre event)
                          {
                            
                              if(event.getType() == RenderGameOverlayEvent.ElementType.HELMET && mc.player.getHeldItem(EnumHand.MAIN_HAND).getItem() == ItemInit.radar /*&& ItemRadar.isUsed == 1*/)
                              {
                                   mc.getTextureManager().bindTexture(this.bg);
                                      
                                   drawModalRectWithCustomSizedTexture(5,5,0,0,32,32,32,32);        
                                      
                                   amountTiles = mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                                              mc.player.chunkCoordZ + 0).getTileEntityMap().values().size();
                                      
                                   amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                                              mc.player.chunkCoordZ + 1).getTileEntityMap().values().size();
                                      
                                   amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                                              mc.player.chunkCoordZ - 1).getTileEntityMap().values().size();
                                      
                                   amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 1,
                                              mc.player.chunkCoordZ).getTileEntityMap().values().size();
                                      
                                   amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX - 1,
                                              mc.player.chunkCoordZ).getTileEntityMap().values().size();   
                      
                                   drawCenteredString(this.mc.fontRenderer, this.amountTiles + "%", 23, 50, -1);
                                   drawCenteredString(this.mc.fontRenderer, this.formatDuration(), 23, 58, -1);
                      
                                   
                                   event.setCanceled(true);
                              }
                          }
                          
                          public static String formatDuration()
                          {
                              Duration duration = Duration.ofSeconds(damage / 20);
                              long seconds = duration.getSeconds();
                              long absSeconds = Math.abs(seconds);
                              String positive = String.format(
                                  "%d:%02d:%02d",
                                  absSeconds / 3600,
                                  (absSeconds % 3600) / 60,
                                  absSeconds % 60);
                              return seconds < 0 ? "-" + positive : positive;
                          }
                           
                      }
                      
                      

                      Ca crash… 😕

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

                        Bon, après de lonnnngues recherches voici le code de l’unclaim finder en 1.12.2 avec 1h30 de durabilité :
                        Classe de l’item :

                        public class ItemRadar extends Item implements IHasModel
                        {
                           private static EntityPlayer player;
                           
                           public static int durabilité = 90*20*60;
                           
                           public ItemRadar(String name)
                            {
                                setUnlocalizedName(name);
                                setRegistryName(name);
                                setCreativeTab(CreativeTabs.COMBAT);
                                setMaxDamage(durabilité);
                                setMaxStackSize(1);      
                                ItemInit.ITEMS.add(this);
                            }
                            
                            @Override
                            public void registerModels()
                            {
                                Main.proxy.registerItemRederer(this, 0);
                            }
                            
                            @Override
                            public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected)
                            {
                                player = (EntityPlayer)entityIn;
                                
                                stack = player.getHeldItem(EnumHand.MAIN_HAND);
                                
                                if(player.getHeldItem(EnumHand.MAIN_HAND).getItem() instanceof ItemRadar)
                                {
                                        if(durabilité >= 0)
                                        {
                                            durabilité --;
                                            stack.damageItem(1, player);
                                        }
                                            
                                }
                                super.onUpdate(stack, worldIn, entityIn, itemSlot, isSelected);
                            }
                            
                        }
                        

                        Classe du GUI :

                        public class RadarHandler extends Gui
                        {
                            private static Minecraft mc;
                                
                            public static int amountTiles = 0;
                                          
                            ItemRenderer itemRenderer = Minecraft.getMinecraft().getItemRenderer();
                            
                            FontRenderer fontRender;
                            
                            final ResourceLocation bg = new ResourceLocation(Reference.MODID + ":textures/items/radar.png");
                        
                            public RadarHandler()
                            {
                                this.mc = Minecraft.getMinecraft();
                                this.fontRender = this.mc.fontRenderer;
                            }
                            
                            @SideOnly(Side.CLIENT)
                            @SubscribeEvent
                            public void onRenderPre(RenderGameOverlayEvent.Pre event)
                            {
                              
                                if(event.getType() == RenderGameOverlayEvent.ElementType.HELMET && mc.player.getHeldItem(EnumHand.MAIN_HAND).getItem() == ItemInit.radar /*&& ItemRadar.isUsed == 1*/)
                                {
                                     mc.getTextureManager().bindTexture(this.bg);
                                        
                                     drawModalRectWithCustomSizedTexture(5,5,0,0,32,32,32,32);        
                                        
                                     amountTiles = mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                                                mc.player.chunkCoordZ + 0).getTileEntityMap().values().size();
                                        
                                     amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                                                mc.player.chunkCoordZ + 1).getTileEntityMap().values().size();
                                        
                                     amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                                                mc.player.chunkCoordZ - 1).getTileEntityMap().values().size();
                                        
                                     amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 1,
                                                mc.player.chunkCoordZ).getTileEntityMap().values().size();
                                        
                                     amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX - 1,
                                                mc.player.chunkCoordZ).getTileEntityMap().values().size();   
                        
                                     drawCenteredString(this.mc.fontRenderer, this.amountTiles + "%", 23, 39, -1);
                                     drawCenteredString(this.mc.fontRenderer, this.formatDuration(), 23, 48, -1);
                        
                                     
                                     event.setCanceled(true);
                                }
                            }
                            
                            public static String formatDuration()
                            {
                                ItemStack stack = mc.player.getHeldItem(EnumHand.MAIN_HAND);
                                
                                int maxD = stack.getMaxDamage();
                                int itemD = stack.getItemDamage();                
                                
                                int damage = maxD - itemD;
                                
                                Duration duration = Duration.ofSeconds(damage / 20);
                                long seconds = duration.getSeconds();
                                long absSeconds = Math.abs(seconds);
                                String positive = String.format(
                                    "%d:%02d:%02d",
                                    absSeconds / 3600,
                                    (absSeconds % 3600) / 60,
                                    absSeconds % 60);
                                return seconds < 0 ? "-" + positive : positive;
                            }
                             
                        }
                        

                        Client proxy :

                        public class ClientProxy extends CommonProxy
                        {
                            @Override
                            public void registerItemRederer(Item item, int meta)
                            {
                                ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), "inventory"));
                                MinecraftForge.EVENT_BUS.register(new RadarHandler());
                            }
                        }
                        

                        Bonne journée et merci à @DailyCraft et @robin4002 pour leur aide !

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

                          A tu fait un mod que je peux telecharger avec ? car j’en aurai besoin pour 1 PvP fac

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

                          MINECRAFT FORGE FRANCE © 2024

                          Powered by NodeBB