File tree Expand file tree Collapse file tree
common/src/main/java/com/klikli_dev/modonomicon
fabric/src/main/java/com/klikli_dev/modonomicon
forge/src/main/java/com/klikli_dev/modonomicon/platform
neo/src/main/java/com/klikli_dev/modonomicon Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66
77package com .klikli_dev .modonomicon .platform .services ;
88
9+ import com .klikli_dev .modonomicon .item .ModonomiconItem ;
10+ import net .minecraft .world .item .Item ;
11+
12+ import java .util .function .Function ;
13+
914public interface PlatformHelper {
1015
1116 /**
@@ -42,6 +47,16 @@ default String getEnvironmentName() {
4247
4348 PhysicalSide getPhysicalSide ();
4449
50+ /**
51+ * Creates a ModonomiconItem for the given properties.
52+ * On NeoForge, this returns an item that implements IItemExtension#getCreatorModId.
53+ * On Fabric, this returns an item that implements FabricItem#getCreatorNamespace.
54+ *
55+ * @param properties the item properties
56+ * @return a new ModonomiconItem instance
57+ */
58+ ModonomiconItem createModonomiconItem (Item .Properties properties );
59+
4560 enum PhysicalSide {
4661 CLIENT ,
4762 DEDICATED_SERVER
Original file line number Diff line number Diff line change 77package com .klikli_dev .modonomicon .registry ;
88
99import com .klikli_dev .modonomicon .Modonomicon ;
10- import com .klikli_dev .modonomicon .item . ModonomiconItem ;
10+ import com .klikli_dev .modonomicon .platform . Services ;
1111import net .minecraft .core .registries .Registries ;
1212import net .minecraft .resources .ResourceKey ;
1313import net .minecraft .resources .Identifier ;
14- import net .minecraft .world .item .BlockItem ;
1514import net .minecraft .world .item .Item ;
16- import net .minecraft .world .level .block .Block ;
1715
1816import java .util .function .Function ;
19- import java .util .function .Supplier ;
2017
2118public class ItemRegistry {
2219 public static final RegistrationProvider <Item > ITEMS = RegistrationProvider .get (Registries .ITEM , Modonomicon .MOD_ID );
2320
2421 public static final RegistryObject <Item > MODONOMICON =
25- register ("modonomicon" , (properties ) -> new ModonomiconItem (properties .stacksTo (1 )));
22+ register ("modonomicon" , (properties ) -> Services . PLATFORM . createModonomiconItem (properties .stacksTo (1 )));
2623
2724 //Dummy items for default models
2825 public static final RegistryObject <Item > MODONOMICON_BLUE =
Original file line number Diff line number Diff line change 1+ /*
2+ * SPDX-FileCopyrightText: 2026 klikli-dev
3+ *
4+ * SPDX-License-Identifier: MIT
5+ */
6+
7+ package com .klikli_dev .modonomicon .item ;
8+
9+ import net .minecraft .world .item .Item ;
10+ import net .minecraft .world .item .ItemStack ;
11+
12+ public class FabricModonomiconItem extends ModonomiconItem {
13+ public FabricModonomiconItem (Item .Properties properties ) {
14+ super (properties );
15+ }
16+
17+ @ Override
18+ public String getCreatorNamespace (ItemStack stack ) {
19+ var bookId = getBookId (stack );
20+ if (bookId != null ) {
21+ return bookId .getNamespace ();
22+ }
23+ return super .getCreatorNamespace (stack );
24+ }
25+ }
Original file line number Diff line number Diff line change 66
77package com .klikli_dev .modonomicon .platform ;
88
9+ import com .klikli_dev .modonomicon .item .FabricModonomiconItem ;
10+ import com .klikli_dev .modonomicon .item .ModonomiconItem ;
911import com .klikli_dev .modonomicon .platform .services .PlatformHelper ;
1012import net .fabricmc .api .EnvType ;
1113import net .fabricmc .loader .api .FabricLoader ;
14+ import net .minecraft .world .item .Item ;
1215
1316public class FabricPlatformHelper implements PlatformHelper {
1417
@@ -31,4 +34,9 @@ public boolean isDevelopmentEnvironment() {
3134 public PhysicalSide getPhysicalSide () {
3235 return FabricLoader .getInstance ().getEnvironmentType () == EnvType .CLIENT ? PhysicalSide .CLIENT : PhysicalSide .DEDICATED_SERVER ;
3336 }
37+
38+ @ Override
39+ public ModonomiconItem createModonomiconItem (Item .Properties properties ) {
40+ return new FabricModonomiconItem (properties );
41+ }
3442}
Original file line number Diff line number Diff line change 66
77package com .klikli_dev .modonomicon .platform ;
88
9+ import com .klikli_dev .modonomicon .item .ModonomiconItem ;
910import com .klikli_dev .modonomicon .platform .services .PlatformHelper ;
11+ import net .minecraft .world .item .Item ;
1012import net .minecraftforge .api .distmarker .Dist ;
1113import net .minecraftforge .fml .ModList ;
1214import net .minecraftforge .fml .loading .FMLEnvironment ;
@@ -33,4 +35,9 @@ public boolean isDevelopmentEnvironment() {
3335 public PhysicalSide getPhysicalSide () {
3436 return FMLEnvironment .dist == Dist .CLIENT ? PhysicalSide .CLIENT : PhysicalSide .DEDICATED_SERVER ;
3537 }
38+
39+ @ Override
40+ public ModonomiconItem createModonomiconItem (Item .Properties properties ) {
41+ return new ModonomiconItem (properties );
42+ }
3643}
Original file line number Diff line number Diff line change 1+ /*
2+ * SPDX-FileCopyrightText: 2026 klikli-dev
3+ *
4+ * SPDX-License-Identifier: MIT
5+ */
6+
7+ package com .klikli_dev .modonomicon .item ;
8+
9+ import net .minecraft .core .HolderLookup ;
10+ import net .minecraft .world .item .Item ;
11+ import net .minecraft .world .item .ItemStack ;
12+ import org .jetbrains .annotations .Nullable ;
13+
14+ public class NeoModonomiconItem extends ModonomiconItem {
15+ public NeoModonomiconItem (Properties properties ) {
16+ super (properties );
17+ }
18+
19+ @ Nullable
20+ public String getCreatorModId (HolderLookup .Provider registries , ItemStack itemStack ) {
21+ var bookId = getBookId (itemStack );
22+ if (bookId != null ) {
23+ return bookId .getNamespace ();
24+ }
25+ return null ;
26+ }
27+ }
Original file line number Diff line number Diff line change 66
77package com .klikli_dev .modonomicon .platform ;
88
9+ import com .klikli_dev .modonomicon .item .ModonomiconItem ;
10+ import com .klikli_dev .modonomicon .item .NeoModonomiconItem ;
911import com .klikli_dev .modonomicon .platform .services .PlatformHelper ;
12+ import net .minecraft .world .item .Item ;
1013import net .neoforged .api .distmarker .Dist ;
1114import net .neoforged .fml .ModList ;
1215import net .neoforged .fml .loading .FMLEnvironment ;
@@ -33,4 +36,9 @@ public boolean isDevelopmentEnvironment() {
3336 public PhysicalSide getPhysicalSide () {
3437 return FMLEnvironment .getDist () == Dist .CLIENT ? PhysicalSide .CLIENT : PhysicalSide .DEDICATED_SERVER ;
3538 }
39+
40+ @ Override
41+ public ModonomiconItem createModonomiconItem (Item .Properties properties ) {
42+ return new NeoModonomiconItem (properties );
43+ }
3644}
You can’t perform that action at this time.
0 commit comments