Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

User Submitted Tutorials

Tutorials for creating Forge mods by users, for users!


64 topics in this forum

    • 2 replies
    • 15.7k views
    • 5 replies
    • 15.6k views
    • 6 replies
    • 15k views
    • 2 replies
    • 14.9k views
    • 0 replies
    • 14.4k views
    • 2 replies
    • 14.3k views
    • 0 replies
    • 14.2k views
    • 2 replies
    • 14k views
  1. [1.16.3] Modding Tutorial

    • 3 replies
    • 13.8k views
    • 3 replies
    • 13.1k views
    • 4 replies
    • 12.9k views
    • 0 replies
    • 12.8k views
    • 2 replies
    • 12.4k views
    • 3 replies
    • 12.4k views
  2. Anon10W1z's tutorials

    • 7 replies
    • 12.2k views
    • 0 replies
    • 12.1k views
    • 2 replies
    • 11.6k views
    • 0 replies
    • 11.1k views
    • 4 replies
    • 11k views
    • 2 replies
    • 10.5k views
    • 0 replies
    • 10.1k views
    • 2 replies
    • 10.1k views
    • 2 replies
    • 9.2k views
    • 13 replies
    • 8.9k views
    • 6 replies
    • 8.1k views


  • Posts

    • What's then the problem? As uSkizzik already mentioned Forge has their own SpawnEggItem use it
    • I think the error comes from this java class even though it dosen't show any error -  package com.mahidhoni123.forgemod.items; import net.minecraft.core.BlockSource; import net.minecraft.core.Direction; import net.minecraft.core.dispenser.DefaultDispenseItemBehavior; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.SpawnEggItem; import net.minecraft.world.level.block.DispenserBlock; import net.minecraftforge.common.util.Lazy; import net.minecraftforge.fml.util.ObfuscationReflectionHelper; import net.minecraftforge.fmllegacy.RegistryObject; import java.util.ArrayList; import java.util.List; import java.util.Map; public class ModSpawnEggItem extends SpawnEggItem { protected static final List<ModSpawnEggItem> UNADDED_EGGS = new ArrayList<>(); private final Lazy<? extends EntityType<?>> entityTypeSupplier; public ModSpawnEggItem(final RegistryObject<? extends EntityType<?>> entityTypeSupplier, int p_43208_, int p_43209_, Properties p_43210_) { super(null, p_43208_, p_43209_, p_43210_); this.entityTypeSupplier = Lazy.of(entityTypeSupplier::get); UNADDED_EGGS.add(this); } public static void initSpawnEggs(){ final Map<EntityType<?>, SpawnEggItem> EGGS = ObfuscationReflectionHelper.getPrivateValue(SpawnEggItem.class, null, "field_195987_b"); DefaultDispenseItemBehavior dispenseBehavior = new DefaultDispenseItemBehavior() { @Override protected ItemStack execute(BlockSource p_123385_, ItemStack p_123386_) { Direction direction = p_123385_ .getBlockState().getValue(DispenserBlock.FACING); EntityType<?> type = ((SpawnEggItem) p_123386_.getItem()).getType(p_123386_.getTag()); type.spawn(p_123385_.getLevel(), p_123386_, null, p_123385_.getPos(), MobSpawnType.DISPENSER, direction != Direction.UP, false); p_123386_.shrink(1); return p_123386_; } }; for (final SpawnEggItem spawnEgg : UNADDED_EGGS) { EGGS.put(spawnEgg.getType(null ), spawnEgg); DispenserBlock.registerBehavior(spawnEgg, dispenseBehavior); } UNADDED_EGGS.clear(); } @Override public EntityType<?> getType(CompoundTag nbt) { return this.entityTypeSupplier.get(); } }  
    • First off, what's the error? Second, can you show your ModSpawnEggItem class?  And third, is that class really needed? Forge provides a spawn egg class, you don't need a custom one unless you want additional behavior.
    • I tried this code but I got an error while making custom spawn egg for a skeleton(this skeleton is a vanilla minecraft entity) I think I know why this error is coming, but I don't know how to solve it, can you please help, I am sharing the code -  package com.anirudh.forgemod.init; import com.anirudh.forgemod.ForgeMod; import com.anirudh.forgemod.items.ItemBase; import com.anirudh.forgemod.items.ModSpawnEggItem; import com.anirudh.forgemod.items.StrongestApple; import com.anirudh.forgemod.util.enums.ModArmorMaterial; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.ArmorItem; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; import net.minecraftforge.fmllegacy.RegistryObject; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; public class ModItems { public static DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, ForgeMod.MOD_ID); //Items public static final RegistryObject<Item> RUBY = ITEMS.register("ruby", ItemBase::new); public static final RegistryObject<StrongestApple> POISON_APPLE = ITEMS.register("strongest_apple", StrongestApple::new); public static final RegistryObject<ModSpawnEggItem> SKELETON_SPAWN_EGG = ITEMS.register("skeleton_spawn_egg", () -> new ModSpawnEggItem(EntityType.SKELETON, 0x00FFA8, 0x326D59, new Item.Properties().tab(CreativeModeTab.TAB_MATERIALS))); //Armor public static final RegistryObject<ArmorItem> RUBY_HELMET = ITEMS.register("ruby_helmet", () -> new ArmorItem(ModArmorMaterial.RUBY, EquipmentSlot.HEAD, new Item.Properties().tab(CreativeModeTab.TAB_COMBAT))); public static final RegistryObject<ArmorItem> RUBY_CHESTPLATE = ITEMS.register("ruby_chestplate", () -> new ArmorItem(ModArmorMaterial.RUBY, EquipmentSlot.CHEST, new Item.Properties().tab(CreativeModeTab.TAB_COMBAT))); public static final RegistryObject<ArmorItem> RUBY_LEGGINGS = ITEMS.register("ruby_leggings", () -> new ArmorItem(ModArmorMaterial.RUBY, EquipmentSlot.LEGS, new Item.Properties().tab(CreativeModeTab.TAB_COMBAT))); public static final RegistryObject<ArmorItem> RUBY_BOOTS = ITEMS.register("ruby_boots", () -> new ArmorItem(ModArmorMaterial.RUBY, EquipmentSlot.FEET, new Item.Properties().tab(CreativeModeTab.TAB_COMBAT))); }  
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.