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 robin4002

      Parcequ’il ne faut pas comparer des itemstack avec ==
      L’opérateur == vérifies uniquement le contenu dans le stack (je parle l’espace mémoire, pas de l’itemstack).
      Donc ça fonctionne très bien pour les types primitifs (int, boolean, float, double, short, long, char) mais sur les objets, cela compare uniquement s’il s’agit de la même référence.
      En conséquence un objet == new Quelquechose sera toujours false, car ce sont forcément deux références différentes.
      == ne renvoie que vrai avec des objets s’il s’agit de la même référence. Typiquement dans Minecraft les blocs ou items sont des singletons, donc on peut les comparer avec un ==.

      Pour comparer le contenu des objets, il existe souvent une méthode .equals.
      Par exemple stack.equals(new ItemStack(ItemInit.radar)). Mais cette méthode compare de façon profonde le contenu, ce qui nécessite plus de perf et surtout va aussi vérifier la quantité de l’itemstack, le tag NBT, etc. Donc par exemple ici, si stack est enchanté ou si on a 2 item en main au lieu d’un, ça ne fonctionne plus.

      Pour ce cas (et la majorité des comparaisons d’item / bloc dans le jeu), il faut comparer l’item qui se trouve dans l’itemstack : mc.player.getHeldItem(EnumHand.MAIN_HAND).getItem() == ItemInit.radar

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

        En gros faut oublier == et mettre que des .equals() ?

        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 0
        • 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