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.2k 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.
    • 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