• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Problèmes avec l'item group créatif

    1.16.x
    1.16.x
    1
    2
    105
    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.
    • Krafty
      Krafty dernière édition par Krafty

      Bonjour,

      Question par rapport à mon mod Chimera.

      Je voudrais pouvoir créer mon item group mais l’icône ne s’affiche pas, on voie juste cette stupide texture noire et violette, et l’item que j’ai mis dedans a la même texture, ne fais absolument rien, ce n’est pas mon item, juste un truc buggé. Le nom de l’item est “item.minecraft.air”.

      Le code, classe principale :

      package fr.krafty.chimera;
      
      import java.util.ArrayList;
      import java.util.List;
      import java.util.stream.Collectors;
      
      import org.apache.logging.log4j.LogManager;
      import org.apache.logging.log4j.Logger;
      
      import fr.krafty.chimera.items.CrushedIceItem;
      import net.minecraft.block.Block;
      import net.minecraft.block.Blocks;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemGroup;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.NonNullList;
      import net.minecraft.util.ResourceLocation;
      import net.minecraft.util.text.StringTextComponent;
      import net.minecraftforge.api.distmarker.Dist;
      import net.minecraftforge.api.distmarker.OnlyIn;
      import net.minecraftforge.common.MinecraftForge;
      import net.minecraftforge.event.RegistryEvent;
      import net.minecraftforge.event.entity.player.PlayerEvent.PlayerLoggedInEvent;
      import net.minecraftforge.eventbus.api.SubscribeEvent;
      import net.minecraftforge.fml.InterModComms;
      import net.minecraftforge.fml.common.Mod;
      import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
      import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
      import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;
      import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
      import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
      import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
      import net.minecraftforge.fml.network.NetworkRegistry;
      import net.minecraftforge.fml.network.simple.SimpleChannel;
      
      // The value here should match an entry in the META-INF/mods.toml file
      @Mod("chimera")
      public class ChimeraMod {
      	public final static String MODID = "Chimera";
      
      	Items elements;
      
      	// Directly reference a log4j logger.
      	private static final Logger LOGGER = LogManager.getLogger();
      
      	private static final String PROTOCOL_VERSION = "1";
      
      	public static final SimpleChannel PACKET_HANDLER = NetworkRegistry.newSimpleChannel(new ResourceLocation("chimera", "chimera"),
      			() -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals);
      
      	public static ItemGroup CHIMERA_ITEM_GROUP = new ItemGroup("tabchimera") {
      		@Override
      		@OnlyIn(Dist.CLIENT)
      		public ItemStack makeIcon() {
      			return new ItemStack(new CrushedIceItem());
      		}
      
      		@Override
      		@OnlyIn(Dist.CLIENT)
      		public void fillItemList(NonNullList<ItemStack> p_78018_1_) {
      			p_78018_1_.add(new ItemStack(new CrushedIceItem()));
      		}
      	};
      
      	public ChimeraMod() {
      		elements = new Items();
      
      		// Register the setup method for modloading
      		FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
      		// Register the enqueueIMC method for modloading
      		FMLJavaModLoadingContext.get().getModEventBus().addListener(this::enqueueIMC);
      		// Register the processIMC method for modloading
      		FMLJavaModLoadingContext.get().getModEventBus().addListener(this::processIMC);
      		// Register the doClientStuff method for modloading
      		FMLJavaModLoadingContext.get().getModEventBus().addListener(this::doClientStuff);
      
      		// Register ourselves for server and other game events we are interested in
      		MinecraftForge.EVENT_BUS.register(this);
      	}
      
      	private void setup(final FMLCommonSetupEvent event) {
      		// some preinit code
      		LOGGER.info("HELLO FROM PREINIT");
      		LOGGER.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName());
      	}
      
      	private void doClientStuff(final FMLClientSetupEvent event) {
      		// do something that can only be done on the client
      		LOGGER.info("Got game settings {}", event.getMinecraftSupplier().get().options);
      	}
      
      	private void enqueueIMC(final InterModEnqueueEvent event) {
      		// some example code to dispatch IMC to another mod
      		InterModComms.sendTo("chimera", "helloworld", () -> {
      			LOGGER.info("Hello world from the MDK");
      			return "Hello world";
      		});
      	}
      
      	private void processIMC(final InterModProcessEvent event) {
      		// some example code to receive and process InterModComms from other mods
      		LOGGER.info("Got IMC {}", event.getIMCStream().map(m -> m.getMessageSupplier().get()).collect(Collectors.toList()));
      	}
      
      	// You can use SubscribeEvent and let the Event Bus discover methods to call
      	@SubscribeEvent
      	public void onServerStarting(FMLServerStartingEvent event) {
      		// do something when the server starts
      		LOGGER.info("HELLO from server starting");
      	}
      
      	public void onJoinGame(PlayerLoggedInEvent event) {
      		event.getPlayer().displayClientMessage(new StringTextComponent("Bienvenue !"), true);
      	}
      
      	@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
      	public static class Items {
      		public static List<Item> itemList = new ArrayList<Item>();
      
      		private static Item register(Item itemIn) {
      			itemList.add(itemIn);
      			return itemIn;
      		}
      
      		@SubscribeEvent
      		public static void registerItems(RegistryEvent.Register<Item> event) {
      			register(new CrushedIceItem());
      
      			for (final Item item : itemList) {
      				event.getRegistry().register(item);
      			}
      		}
      	}
      }
      
      

      Le code, classe de l’item :

      package fr.krafty.chimera.items;
      
      import fr.krafty.chimera.ChimeraMod;
      import net.minecraft.item.Item;
      import net.minecraft.item.Rarity;
      
      public class CrushedIceItem extends Item {
      
      	public CrushedIceItem() {
      		super(new Item.Properties().stacksTo(16).rarity(Rarity.COMMON));
      		setRegistryName(ChimeraMod.MODID, "crushed_ice");
      	}
      }
      
      

      Je peux me give mon item, les deux recettes liées à l’item marche, mais le truc qui se trouve dans mon item group ne correspond à rien de logique.

      Le nom de l’item group marche.

      Au cas où, je mets ce qui s’affiche sur la console.

      avant de rejoindre le monde pastebin

      après avoir rejoint le monde pastebin

      Screenshots :

      Capture d’écran 2022-05-27 à 14.17.22.png Capture d’écran 2022-05-27 à 14.17.32.png Capture d’écran 2022-05-27 à 14.17.39.png

      Ça fait très longtemps que j’ai ce problème et j’ai rien trouvé sur internet, aidez-moi s’il vous plait 🙂

      Voilà, merci d’avance ^^

      Krafty

      1 réponse Dernière réponse Répondre Citer 0
      • Cette question est désormais résolue  Krafty Krafty 
      • Krafty
        Krafty dernière édition par Krafty

        Ouaiii ça marche !!!

        J’ai fait quelques changement et, comme par magie, mon problème c’est résolu tout seul ! Je suis trop conteeeent

        Je mets mon code changé en espérant que ça puisse aider quelqu’un.

        package fr.krafty.chimera;
        
        import java.util.ArrayList;
        import java.util.List;
        import java.util.stream.Collectors;
        
        import org.apache.logging.log4j.LogManager;
        import org.apache.logging.log4j.Logger;
        
        import fr.krafty.chimera.items.CrushedIceItem;
        import fr.krafty.chimera.items.IceLauncherItem;
        import fr.krafty.chimera.items.SurgicalKnifeItem;
        import net.minecraft.block.Block;
        import net.minecraft.block.Blocks;
        import net.minecraft.item.Item;
        import net.minecraft.item.ItemGroup;
        import net.minecraft.item.ItemStack;
        import net.minecraft.util.ResourceLocation;
        import net.minecraft.util.text.StringTextComponent;
        import net.minecraftforge.api.distmarker.Dist;
        import net.minecraftforge.api.distmarker.OnlyIn;
        import net.minecraftforge.common.MinecraftForge;
        import net.minecraftforge.event.RegistryEvent;
        import net.minecraftforge.event.entity.player.PlayerEvent.PlayerLoggedInEvent;
        import net.minecraftforge.eventbus.api.SubscribeEvent;
        import net.minecraftforge.fml.InterModComms;
        import net.minecraftforge.fml.common.Mod;
        import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
        import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
        import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;
        import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
        import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
        import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
        import net.minecraftforge.fml.network.NetworkRegistry;
        import net.minecraftforge.fml.network.simple.SimpleChannel;
        
        // The value here should match an entry in the META-INF/mods.toml file
        @Mod("chimera")
        public class ChimeraMod {
        	public final static String MODID = "Chimera";
        
        	Items elements;
        
        	// Directly reference a log4j logger.
        	private static final Logger LOGGER = LogManager.getLogger();
        
        	private static final String PROTOCOL_VERSION = "1";
        
        	public static final SimpleChannel PACKET_HANDLER = NetworkRegistry.newSimpleChannel(new ResourceLocation("chimera", "chimera"),
        			() -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals);
        
        	public static final ItemGroup CHIMERA_ITEM_GROUP = new ItemGroup("tabchimera") {
        		@Override
        		@OnlyIn(Dist.CLIENT)
        		public ItemStack makeIcon() {
        			return new ItemStack(CRUSHED_ICE_ITEM);
        		}
        	};
        
        	public static final Item SURGICAL_KNIFE_ITEM = new SurgicalKnifeItem();
        	public static final Item CRUSHED_ICE_ITEM = new CrushedIceItem();
        	public static final Item ICE_LAUNCHER_ITEM = new IceLauncherItem();
        
        	public ChimeraMod() {
        		elements = new Items();
        
        		// Register the setup method for modloading
        		FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
        		// Register the enqueueIMC method for modloading
        		FMLJavaModLoadingContext.get().getModEventBus().addListener(this::enqueueIMC);
        		// Register the processIMC method for modloading
        		FMLJavaModLoadingContext.get().getModEventBus().addListener(this::processIMC);
        		// Register the doClientStuff method for modloading
        		FMLJavaModLoadingContext.get().getModEventBus().addListener(this::doClientStuff);
        
        		// Register ourselves for server and other game events we are interested in
        		MinecraftForge.EVENT_BUS.register(this);
        	}
        
        	private void setup(final FMLCommonSetupEvent event) {
        		// some preinit code
        		LOGGER.info("HELLO FROM PREINIT");
        		LOGGER.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName());
        	}
        
        	private void doClientStuff(final FMLClientSetupEvent event) {
        		// do something that can only be done on the client
        		LOGGER.info("Got game settings {}", event.getMinecraftSupplier().get().options);
        	}
        
        	private void enqueueIMC(final InterModEnqueueEvent event) {
        		// some example code to dispatch IMC to another mod
        		InterModComms.sendTo("chimera", "helloworld", () -> {
        			LOGGER.info("Hello world from the MDK");
        			return "Hello world";
        		});
        	}
        
        	private void processIMC(final InterModProcessEvent event) {
        		// some example code to receive and process InterModComms from other mods
        		LOGGER.info("Got IMC {}", event.getIMCStream().map(m -> m.getMessageSupplier().get()).collect(Collectors.toList()));
        	}
        
        	// You can use SubscribeEvent and let the Event Bus discover methods to call
        	@SubscribeEvent
        	public void onServerStarting(FMLServerStartingEvent event) {
        		// do something when the server starts
        		LOGGER.info("HELLO from server starting");
        	}
        
        	public void onJoinGame(PlayerLoggedInEvent event) {
        		event.getPlayer().displayClientMessage(new StringTextComponent("Bienvenue !"), true);
        	}
        
        	// You can use EventBusSubscriber to automatically subscribe events on the contained class (this
        	// is subscribing to the MOD
        	// Event bus for receiving Registry Events)
        	@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
        	public static class RegistryEvents {
        		@SubscribeEvent
        		public static void onBlocksRegistry(RegistryEvent.Register<Block> event) {
        			// register a new block here
        			LOGGER.info("HELLO from Register Block");
        		}
        	}
        
        	@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
        	public static class Items {
        		public static List<Item> itemList = new ArrayList<Item>();
        
        		private static Item register(Item itemIn) {
        			itemList.add(itemIn);
        			return itemIn;
        		}
        
        		@SubscribeEvent
        		public static void registerItems(RegistryEvent.Register<Item> event) {
        			register(CRUSHED_ICE_ITEM);
        			register(ICE_LAUNCHER_ITEM);
        			register(SURGICAL_KNIFE_ITEM);
        
        			for (final Item item : itemList) {
        				event.getRegistry().register(item);
        			}
        		}
        	}
        }
        
        

        Et petit screenshot de la victoire : Capture d’écran 2022-05-27 à 17.06.19.png

        Je mets donc ce sujet en résolu.

        1 réponse Dernière réponse Répondre Citer 0
        • Déplacé de Support pour les moddeurs par  robin4002 robin4002 
        • 1 / 1
        • Premier message
          Dernier message
        Design by Woryk
        Contact / Mentions Légales

        MINECRAFT FORGE FRANCE © 2018

        Powered by NodeBB