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.
    • robin4002R En ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Je pense que tu n’as pas bien lu mon message.
      J’ai dit que cela dépend de ce qu’on veut faire.

      1 réponse Dernière réponse Répondre Citer 0
      • 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 En 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 En 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 En 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
                            • 2 / 2
                            • Premier message
                              Dernier message
                            Design by Woryk
                            ContactMentions Légales

                            MINECRAFT FORGE FRANCE © 2024

                            Powered by NodeBB