Skip to content

Commit 5249782

Browse files
committed
Refactor NeoForge platform integration and data providers
- Replace deprecated NetworkManager side constants with explicit enums - Use explicit type in ManualTagHolder - Add felnull-java-library as implementation dependency - Fix model loading using ModelResourceLocation with variant "inventory" - Replace reflection utility with direct constructor invocation - Implement custom Tier interface instead of deprecated SimpleTier - Replace vanilla Tags references with OEForgeItemTags wrappers - Update mod initialization for NeoForge event bus - Fix client renderer layer addLayer method cast - Improve model registration to use ModelResourceLocation with "inventory" - Add new overloaded data provider constructors with HolderLookup.Provider - Update loot table provider to support async lookup provider - Update recipe provider to support async lookup and RecipeOutput consumer - Migrate item attribute modifiers to new ItemAttributeModifiers API - Add new OEForgeItemTags entries for shears, bows, stone, glass_blocks, etc.
1 parent 85ca0de commit 5249782

File tree

16 files changed

+163
-61
lines changed

16 files changed

+163
-61
lines changed

common/src/main/java/org/modsauce/otyacraftenginerenewed/networking/OEPackets.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public class OEPackets {
3636

3737
public static void init() {
3838
NetworkManager.registerReceiver(
39-
NetworkManager.c2s(),
39+
NetworkManager.Side.C2S,
4040
BLOCK_ENTITY_INSTRUCTION,
4141
(friendlyByteBuf, packetContext) ->
4242
ServerMessageHandler.onBlockEntityInstructionMessage(
@@ -45,7 +45,7 @@ public static void init() {
4545
)
4646
);
4747
NetworkManager.registerReceiver(
48-
NetworkManager.c2s(),
48+
NetworkManager.Side.C2S,
4949
ITEM_INSTRUCTION,
5050
(friendlyByteBuf, packetContext) ->
5151
ServerMessageHandler.onItemInstructionMessage(
@@ -57,7 +57,7 @@ public static void init() {
5757

5858
public static void clientInit() {
5959
NetworkManager.registerReceiver(
60-
NetworkManager.s2c(),
60+
NetworkManager.Side.S2C,
6161
BLOCK_ENTITY_INSTRUCTION_RETURN,
6262
(friendlyByteBuf, packetContext) ->
6363
ClientMessageHandler.onBlockEntityInstructionReturn(
@@ -66,7 +66,7 @@ public static void clientInit() {
6666
)
6767
);
6868
NetworkManager.registerReceiver(
69-
NetworkManager.s2c(),
69+
NetworkManager.Side.S2C,
7070
ITEM_INSTRUCTION_RETURN,
7171
(friendlyByteBuf, packetContext) ->
7272
ClientMessageHandler.onItemInstructionReturn(

common/src/main/java/org/modsauce/otyacraftenginerenewed/tag/ManualTagHolder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ static <T> ManualTagHolder<T> of(@NotNull TagKey<T> tagKey) {
2121

2222
@NotNull
2323
static <T> ManualTagHolder<T> of(@NotNull Supplier<TagKey<T>> tagKey) {
24-
return new ManualTagHolder<>() {
24+
return new ManualTagHolder<T>() {
2525
@Override
2626
public @NotNull TagKey<T> getKey() {
2727
return tagKey.get();

neoforge/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ dependencies {
3939
modApi "me.shedaniel.cloth:cloth-config-neoforge:${rootProject.cloth_config_version}"
4040
modRuntimeOnly "me.shedaniel:RoughlyEnoughItems-neoforge:${rootProject.rei_version}"
4141

42+
implementation "dev.felnull:felnull-java-library:${rootProject.felnull_version}"
4243
shadowIn "dev.felnull:felnull-java-library:${rootProject.felnull_version}"
4344
shadowIn 'com.madgag:animated-gif-lib:1.4'
4445
}

neoforge/src/main/java/org/modsauce/otyacraftenginerenewed/explatform/client/neoforge/OEClientExpectPlatformImpl.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.minecraft.client.KeyMapping;
55
import net.minecraft.client.Minecraft;
66
import net.minecraft.client.resources.model.BakedModel;
7+
import net.minecraft.client.resources.model.ModelResourceLocation;
78
import net.minecraft.resources.ResourceLocation;
89
import net.minecraft.world.level.ItemLike;
910
import org.modsauce.otyacraftenginerenewed.client.renderer.item.BEWLItemRenderer;
@@ -18,11 +19,12 @@ public static InputConstants.Key getKey(KeyMapping key) {
1819
}
1920

2021
public static BakedModel getModel(ResourceLocation location) {
21-
return mc.getModelManager().getModel(location);
22+
ModelResourceLocation modelLocation = new ModelResourceLocation(location, "inventory");
23+
return mc.getModelManager().getModel(modelLocation);
2224
}
2325

2426
public static float getPartialTicks() {
25-
return mc.getPartialTick();
27+
return mc.getTimer().getGameTimeDeltaPartialTick(mc.isPaused());
2628
}
2729

2830
public static void registerItemRenderer(

neoforge/src/main/java/org/modsauce/otyacraftenginerenewed/explatform/neoforge/OEExpectPlatformImpl.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.modsauce.otyacraftenginerenewed.explatform.neoforge;
22

3-
import dev.felnull.fnjl.util.FNReflectionUtil;
43
import java.util.ArrayList;
54
import java.util.Collection;
65
import java.util.List;
@@ -52,7 +51,10 @@ public static <T> List<T> getCallPoints(
5251
cls = Class.forName(n.clazz().getClassName());
5352
} catch (Exception ignored) {}
5453
if (cls == null) return;
55-
var inst = FNReflectionUtil.newInstance(cls);
54+
Object inst = null;
55+
try {
56+
inst = cls.getDeclaredConstructor().newInstance();
57+
} catch (Exception ignored) {}
5658
if (interfaceClass.isInstance(inst)) lst.add((T) inst);
5759
});
5860
return lst;

neoforge/src/main/java/org/modsauce/otyacraftenginerenewed/explatform/neoforge/OERegisterExpectPlatformImpl.java

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import net.minecraft.world.level.block.entity.BlockEntity;
1111
import net.minecraft.world.level.block.entity.BlockEntityType;
1212
//import net.minecraftforge.common.TierSortingRegistry;
13-
import net.neoforged.neoforge.common.SimpleTier;
1413
import org.jetbrains.annotations.NotNull;
1514
import org.modsauce.otyacraftenginerenewed.blockentity.BlockEntityCreateSupplier;
1615

@@ -41,14 +40,36 @@ public static Tier createTier(
4140
@NotNull Supplier<Ingredient> repairIngredient
4241
) {
4342
// TierSortingRegistry.registerTier()
44-
return new SimpleTier(
45-
level,
46-
uses,
47-
speed,
48-
attackDamageBonus,
49-
enchantmentValue,
50-
tag,
51-
repairIngredient
52-
);
43+
return new Tier() {
44+
@Override
45+
public int getUses() {
46+
return uses;
47+
}
48+
49+
@Override
50+
public float getSpeed() {
51+
return speed;
52+
}
53+
54+
@Override
55+
public float getAttackDamageBonus() {
56+
return attackDamageBonus;
57+
}
58+
59+
@Override
60+
public TagKey<Block> getIncorrectBlocksForDrops() {
61+
return tag;
62+
}
63+
64+
@Override
65+
public int getEnchantmentValue() {
66+
return enchantmentValue;
67+
}
68+
69+
@Override
70+
public Ingredient getRepairIngredient() {
71+
return repairIngredient.get();
72+
}
73+
};
5374
}
5475
}

neoforge/src/main/java/org/modsauce/otyacraftenginerenewed/explatform/neoforge/OETagsExpectPlatformImpl.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ public static Optional<TagKey<Item>> axes() {
2828
}
2929

3030
public static TagKey<Item> shears() {
31-
return Tags.Items.SHEARS;
31+
return OEForgeItemTags.SHEARS.get();
3232
}
3333

3434
public static Optional<TagKey<Item>> swords() {
3535
return Optional.empty();
3636
}
3737

3838
public static TagKey<Item> bows() {
39-
return Tags.Items.TOOLS_BOWS;
39+
return OEForgeItemTags.BOWS.get();
4040
}
4141

4242
public static TagKey<Item> ironIngots() {
@@ -52,7 +52,7 @@ public static TagKey<Item> copperIngots() {
5252
}
5353

5454
public static TagKey<Item> netheriteIngots() {
55-
return Tags.Items.INGOTS_NETHER_BRICK;
55+
return Tags.Items.INGOTS_NETHERITE;
5656
}
5757

5858
public static TagKey<Item> redstoneDusts() {
@@ -64,7 +64,7 @@ public static TagKey<Item> diamonds() {
6464
}
6565

6666
public static TagKey<Item> glassBlocks() {
67-
return Tags.Items.GLASS;
67+
return OEForgeItemTags.GLASS_BLOCKS.get();
6868
}
6969

7070
public static TagKey<Item> glassPanes() {
@@ -84,7 +84,7 @@ public static ManualTagHolder<Item> enderPearls() {
8484
}
8585

8686
public static ManualTagHolder<Item> stone() {
87-
return ManualTagHolder.of(() -> Tags.Items.STONE);
87+
return OEForgeItemTags.STONE.get();
8888
}
8989

9090
public static ManualTagHolder<Item> redstoneBlocks() {
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
package org.modsauce.otyacraftenginerenewed.neoforge;
22

3-
import dev.architectury.platform.forge.EventBuses;
43
import org.modsauce.otyacraftenginerenewed.OtyacraftEngine;
54
import org.modsauce.otyacraftenginerenewed.neoforge.handler.CommonHandlerForge;
6-
import net.minecraftforge.common.MinecraftForge;
7-
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
5+
import net.neoforged.fml.ModContainer;
86
import net.neoforged.fml.common.Mod;
97
import net.neoforged.neoforge.common.NeoForge;
108

119
@Mod(OtyacraftEngine.MODID)
1210
public class OtyacraftEngineForge {
13-
public OtyacraftEngineForge() {
11+
public OtyacraftEngineForge(ModContainer modContainer) {
1412
NeoForge.EVENT_BUS.register(CommonHandlerForge.class);
15-
EventBuses.registerModEventBus(OtyacraftEngine.MODID, FMLJavaModLoadingContext.get().getModEventBus());
1613
OtyacraftEngine.init();
1714
}
1815
}

neoforge/src/main/java/org/modsauce/otyacraftenginerenewed/neoforge/client/handler/ClientBusHandler.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@
1212
import net.minecraft.world.entity.EntityType;
1313
import net.minecraft.world.entity.LivingEntity;
1414
import net.neoforged.api.distmarker.Dist;
15-
import net.neoforged.fml.common.Mod;
15+
import net.neoforged.fml.common.EventBusSubscriber;
1616
import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent;
1717
import net.neoforged.bus.api.SubscribeEvent;
1818
import net.neoforged.neoforge.common.NeoForge;
1919
import net.neoforged.neoforge.client.event.EntityRenderersEvent;
2020

21-
@Mod.EventBusSubscriber(modid = OtyacraftEngine.MODID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
21+
@EventBusSubscriber(modid = OtyacraftEngine.MODID, value = Dist.CLIENT)
2222
public class ClientBusHandler {
2323
@SubscribeEvent
2424
public static void onClientSetup(FMLClientSetupEvent event) {
@@ -35,9 +35,11 @@ public <T extends LivingEntity, M extends EntityModel<T>> void addLayerV2(Entity
3535
if (entityType == EntityType.PLAYER) {
3636
for (PlayerSkin.Model skin : e.getSkins()) {
3737
var renderer = e.getSkin(PlayerSkin.Model.valueOf(String.valueOf(skin)));
38-
if (renderer != null) {
39-
RenderLayer theLayer = layer.create((RenderLayerParent<T, M>) renderer, e.getEntityModels());
40-
renderer.addLayer(theLayer);
38+
if (renderer instanceof LivingEntityRenderer<?, ?> livingRenderer) {
39+
RenderLayer<T, M> theLayer = layer.create((RenderLayerParent<T, M>) renderer, e.getEntityModels());
40+
@SuppressWarnings("unchecked")
41+
LivingEntityRenderer<T, M> typedRenderer = (LivingEntityRenderer<T, M>) livingRenderer;
42+
typedRenderer.addLayer(theLayer);
4143
}
4244
}
4345
} else {
Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,26 @@
11
package org.modsauce.otyacraftenginerenewed.neoforge.client.handler;
22

3+
import org.modsauce.otyacraftenginerenewed.OtyacraftEngine;
34
import org.modsauce.otyacraftenginerenewed.client.callpoint.ClientCallPointManager;
5+
import org.modsauce.otyacraftenginerenewed.client.callpoint.ModelRegister;
46
import net.neoforged.neoforge.client.event.ModelEvent;
57
import net.neoforged.bus.api.SubscribeEvent;
6-
import net.neoforged.fml.common.Mod;
8+
import net.neoforged.fml.common.EventBusSubscriber;
79
import net.neoforged.api.distmarker.Dist;
10+
import net.minecraft.resources.ResourceLocation;
11+
import net.minecraft.client.resources.model.ModelResourceLocation;
812

9-
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
13+
@EventBusSubscriber(modid = OtyacraftEngine.MODID, bus = EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
1014
public class ModelHandler {
1115

1216
@SubscribeEvent
1317
public static void onModelRegistry(ModelEvent.RegisterAdditional e) {
14-
ClientCallPointManager.getInstance().call().onModelRegistry(e::register);
18+
ClientCallPointManager.getInstance().call().onModelRegistry(new ModelRegister() {
19+
@Override
20+
public void addModelLoad(ResourceLocation location) {
21+
ModelResourceLocation modelLocation = new ModelResourceLocation(location, "inventory");
22+
e.register(modelLocation);
23+
}
24+
});
1525
}
1626
}

0 commit comments

Comments
 (0)