From 8beb42f513707539ce73663bc651d339da578fd1 Mon Sep 17 00:00:00 2001 From: Anthony Mendez Date: Sat, 10 Aug 2024 18:03:13 -0700 Subject: [PATCH] Fixed NeoForge not loading via proper Supplier use Suppliers can not be provided an already created object instance. It must created within the Supplier. --- .../com/anthonymendez/ToekneeSimpleTools.java | 7 ---- .../com/anthonymendez/init/ModItemGroups.java | 36 +++++++++++-------- .../java/com/anthonymendez/init/ModItems.java | 10 +++--- .../items/SimplePickaxeTool.java | 1 - .../items/SimpleToolMaterials.java | 14 ++++---- .../com/anthonymendez/items/SimpleTools.java | 21 ++++++----- .../neoforge/ToekneeSimpleToolsNeoForge.java | 2 -- 7 files changed, 46 insertions(+), 45 deletions(-) diff --git a/common/src/main/java/com/anthonymendez/ToekneeSimpleTools.java b/common/src/main/java/com/anthonymendez/ToekneeSimpleTools.java index 4989cfe..5373990 100644 --- a/common/src/main/java/com/anthonymendez/ToekneeSimpleTools.java +++ b/common/src/main/java/com/anthonymendez/ToekneeSimpleTools.java @@ -2,9 +2,6 @@ import com.anthonymendez.init.ModItemGroups; import com.anthonymendez.init.ModItems; -import com.google.common.base.Suppliers; -import dev.architectury.registry.registries.RegistrarManager; -import java.util.function.Supplier; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -12,10 +9,6 @@ public final class ToekneeSimpleTools { public static final String MOD_ID = "toeknees_simple_tools"; public static final Logger LOGGER = LogManager.getLogger(MOD_ID); - /** Registry manager for handling anything relating to the Minecraft registry. */ - public static final Supplier MANAGER = - Suppliers.memoize(() -> RegistrarManager.get(MOD_ID)); - /** Initializes the mod. */ public static void init() { LOGGER.info("Initializing Toeknee's Simple Tools :)"); diff --git a/common/src/main/java/com/anthonymendez/init/ModItemGroups.java b/common/src/main/java/com/anthonymendez/init/ModItemGroups.java index 4c3b4e5..e6358df 100644 --- a/common/src/main/java/com/anthonymendez/init/ModItemGroups.java +++ b/common/src/main/java/com/anthonymendez/init/ModItemGroups.java @@ -2,8 +2,10 @@ import com.anthonymendez.ToekneeSimpleTools; import com.anthonymendez.items.SimpleTools; +import com.google.common.base.Suppliers; import dev.architectury.registry.registries.DeferredRegister; import dev.architectury.registry.registries.RegistrySupplier; +import java.util.function.Supplier; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; @@ -17,22 +19,26 @@ public final class ModItemGroups { public static final DeferredRegister ITEM_GROUPS = DeferredRegister.create(ToekneeSimpleTools.MOD_ID, RegistryKeys.ITEM_GROUP); - public static RegistrySupplier register(ItemGroup itemGroup, String name) { - return ITEM_GROUPS.register(name, () -> itemGroup); + /** Registers the given {@link ItemGroup} to the Simple Tools tab. */ + public static RegistrySupplier register( + Supplier itemGroupSupplier, String name) { + return ITEM_GROUPS.register(name, itemGroupSupplier); } - public static final ItemGroup SIMPLE_TOOLS_ITEM_GROUP = - new ItemGroup.Builder(null, -1) - .displayName(Text.of(CREATIVE_TAB_DISPLAY_NAME)) - .icon(() -> new ItemStack(SimpleTools.EMERALD_PICKAXE)) - .entries( - (displayContext, entries) -> { - for (Item item : SimpleTools.ALL_TOOLS) { - entries.add(item); - } - }) - .build(); + public static final Supplier SIMPLE_TOOLS_ITEM_GROUP_SUPPLIER = + Suppliers.memoize( + () -> + new ItemGroup.Builder(null, -1) + .displayName(Text.of(CREATIVE_TAB_DISPLAY_NAME)) + .icon(() -> new ItemStack(ModItems.EMERALD_PICKAXE_SUPPLIER.get())) + .entries( + (displayContext, entries) -> { + for (Supplier s : SimpleTools.ALL_TOOLS) { + entries.add(s.get()); + } + }) + .build()); - public static final RegistrySupplier SIMPLE_TOOLS_ITEM_GROUP_SUPPLIER = - register(SIMPLE_TOOLS_ITEM_GROUP, ITEM_GROUP_NAME); + public static final RegistrySupplier SIMPLE_TOOLS_ITEM_GROUP_SUPPLIER_REGISTERED = + register(SIMPLE_TOOLS_ITEM_GROUP_SUPPLIER, ITEM_GROUP_NAME); } diff --git a/common/src/main/java/com/anthonymendez/init/ModItems.java b/common/src/main/java/com/anthonymendez/init/ModItems.java index c4216af..e7a9944 100644 --- a/common/src/main/java/com/anthonymendez/init/ModItems.java +++ b/common/src/main/java/com/anthonymendez/init/ModItems.java @@ -4,6 +4,7 @@ import com.anthonymendez.items.SimpleTools; import dev.architectury.registry.registries.DeferredRegister; import dev.architectury.registry.registries.RegistrySupplier; +import java.util.function.Supplier; import net.minecraft.item.Item; import net.minecraft.registry.RegistryKeys; @@ -12,13 +13,14 @@ public final class ModItems { public static final DeferredRegister ITEMS = DeferredRegister.create(ToekneeSimpleTools.MOD_ID, RegistryKeys.ITEM); - public static RegistrySupplier register(Item item, String name) { - return ITEMS.register(name, () -> item); + /** Registers the given {@link Item} to the deferred mod registry. */ + public static RegistrySupplier register(Supplier itemSupplier, String name) { + return ITEMS.register(name, itemSupplier); } public static final RegistrySupplier EMERALD_PICKAXE_SUPPLIER = register(SimpleTools.EMERALD_PICKAXE, "emerald_pickaxe"); - public static final RegistrySupplier NETHER_QUARTZ_PICKAXE = - register(SimpleTools.NETHER_QUARTZ_PICKAXE, "nether_quartz_pickaxe"); + public static final RegistrySupplier QUARTZ_PICKAXE_SUPPLIER = + register(SimpleTools.QUARTZ_PICKAXE, "quartz_pickaxe"); } diff --git a/common/src/main/java/com/anthonymendez/items/SimplePickaxeTool.java b/common/src/main/java/com/anthonymendez/items/SimplePickaxeTool.java index 152fd07..afa9918 100644 --- a/common/src/main/java/com/anthonymendez/items/SimplePickaxeTool.java +++ b/common/src/main/java/com/anthonymendez/items/SimplePickaxeTool.java @@ -3,7 +3,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.PickaxeItem; import net.minecraft.item.ToolMaterial; -import net.minecraft.item.ToolMaterials; /** Extension of {@link PickaxeItem} to allow for more customization and behaviour in the future. */ public class SimplePickaxeTool extends PickaxeItem { diff --git a/common/src/main/java/com/anthonymendez/items/SimpleToolMaterials.java b/common/src/main/java/com/anthonymendez/items/SimpleToolMaterials.java index ee2c4c5..b2846af 100644 --- a/common/src/main/java/com/anthonymendez/items/SimpleToolMaterials.java +++ b/common/src/main/java/com/anthonymendez/items/SimpleToolMaterials.java @@ -1,17 +1,15 @@ package com.anthonymendez.items; import com.google.common.base.Suppliers; +import java.util.Arrays; +import java.util.Objects; +import java.util.function.Supplier; import net.minecraft.block.Block; import net.minecraft.item.*; import net.minecraft.recipe.Ingredient; import net.minecraft.registry.tag.BlockTags; -import net.minecraft.registry.tag.ItemTags; import net.minecraft.registry.tag.TagKey; -import java.util.Arrays; -import java.util.Objects; -import java.util.function.Supplier; - /** * Enum describing {@link ToolMaterial}s. Similar in structure to {@link * net.minecraft.item.ToolMaterials}. @@ -27,7 +25,7 @@ public enum SimpleToolMaterials implements ToolMaterial { 25, createRepairIngredientSupplier(Items.EMERALD)), // Faster and more durable than iron. - NETHER_QUARTZ( + QUARTZ( BlockTags.INCORRECT_FOR_IRON_TOOL, 750, 7F, @@ -42,7 +40,7 @@ public enum SimpleToolMaterials implements ToolMaterial { private final int enchantability; private final Supplier repairIngredient; - private SimpleToolMaterials( + SimpleToolMaterials( final TagKey inverseTag, final int itemDurability, final float miningSpeed, @@ -87,6 +85,6 @@ public int getEnchantability() { } public Ingredient getRepairIngredient() { - return (Ingredient) this.repairIngredient.get(); + return this.repairIngredient.get(); } } diff --git a/common/src/main/java/com/anthonymendez/items/SimpleTools.java b/common/src/main/java/com/anthonymendez/items/SimpleTools.java index 1d81ff3..f3acb75 100644 --- a/common/src/main/java/com/anthonymendez/items/SimpleTools.java +++ b/common/src/main/java/com/anthonymendez/items/SimpleTools.java @@ -1,17 +1,22 @@ package com.anthonymendez.items; -import com.google.common.base.Supplier; import com.google.common.base.Suppliers; +import com.google.common.collect.ImmutableList; +import java.util.List; +import java.util.function.Supplier; import net.minecraft.item.Item; -import net.minecraft.item.ItemGroup; public class SimpleTools { - public static final SimplePickaxeTool EMERALD_PICKAXE = - new SimplePickaxeTool(SimpleToolMaterials.EMERALD); - public static final SimplePickaxeTool NETHER_QUARTZ_PICKAXE = - new SimplePickaxeTool(SimpleToolMaterials.NETHER_QUARTZ); + public static final Supplier EMERALD_PICKAXE = + Suppliers.memoize(() -> new SimplePickaxeTool(SimpleToolMaterials.EMERALD)); - /** Contains a list of all {@link SimpleTools}. */ - public static final Item[] ALL_TOOLS = {EMERALD_PICKAXE, NETHER_QUARTZ_PICKAXE}; + public static final Supplier QUARTZ_PICKAXE = + Suppliers.memoize(() -> new SimplePickaxeTool(SimpleToolMaterials.QUARTZ)); + /** Contains a list of all {@link SimpleTools}. */ + public static final List> ALL_TOOLS = + ImmutableList.>builder() + .add(EMERALD_PICKAXE) + .add(QUARTZ_PICKAXE) + .build(); } diff --git a/neoforge/src/main/java/com/anthonymendez/neoforge/ToekneeSimpleToolsNeoForge.java b/neoforge/src/main/java/com/anthonymendez/neoforge/ToekneeSimpleToolsNeoForge.java index c8ff5c2..1bf7c54 100644 --- a/neoforge/src/main/java/com/anthonymendez/neoforge/ToekneeSimpleToolsNeoForge.java +++ b/neoforge/src/main/java/com/anthonymendez/neoforge/ToekneeSimpleToolsNeoForge.java @@ -2,7 +2,6 @@ import com.anthonymendez.ToekneeSimpleTools; import net.neoforged.fml.common.Mod; -import net.neoforged.fml.event.IModBusEvent; @Mod(ToekneeSimpleTools.MOD_ID) public final class ToekneeSimpleToolsNeoForge { @@ -10,6 +9,5 @@ public final class ToekneeSimpleToolsNeoForge { public ToekneeSimpleToolsNeoForge() { // Run our common setup. ToekneeSimpleTools.init(); - } }