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

      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 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
                            • 2 / 2
                            • Premier message
                              Dernier message
                            Design by Woryk
                            ContactMentions Légales

                            MINECRAFT FORGE FRANCE © 2024

                            Powered by NodeBB