Skip to content

Commit

Permalink
Provided 1.21.2 & 1.21.3 Custom API Support for #36
Browse files Browse the repository at this point in the history
  • Loading branch information
XDPXI committed Nov 18, 2024
1 parent 36de1a9 commit 5288acc
Show file tree
Hide file tree
Showing 4 changed files with 300 additions and 67 deletions.
16 changes: 13 additions & 3 deletions src/main/java/dev/xdpxi/xdlib/XDsLibrary.java
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,19 @@ public static int whisper(ServerCommandSource source, String message, ServerPlay
}

public static void registerItems() {
Item xdlibItem = custom.Item("xdlib_item", MOD_ID);
List<Item> items = List.of(xdlibItem);
custom.ItemGroup("xdlib_group", MOD_ID, xdlibItem, items);
try {
Item xdlibItem = custom.Item("xdlib_item", MOD_ID);
if (xdlibItem == null) {
LOGGER.error("[XDLib] Failed to create xdlib_item - Item creation returned null");
}

List<Item> items = List.of(xdlibItem);
custom.ItemGroup("xdlib_group", MOD_ID, xdlibItem, items);
LOGGER.info("[XDLib] Successfully registered items and item group");
} catch (Exception e) {
LOGGER.error("[XDLib] Failed to register items: {}", e.getMessage());
e.printStackTrace();
}
}

@Override
Expand Down
127 changes: 63 additions & 64 deletions src/main/java/dev/xdpxi/xdlib/api/mod/custom.java
Original file line number Diff line number Diff line change
@@ -1,38 +1,33 @@
package dev.xdpxi.xdlib.api.mod;

import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.Block;
import net.minecraft.block.MapColor;
import dev.xdpxi.xdlib.api.mod.customClass.custom1;
import dev.xdpxi.xdlib.api.mod.customClass.custom2;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.item.*;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;

import java.util.List;

public class custom {
public static void ItemGroup(String itemGroupID, String modID, Item itemIconID, List<Item> itemsToAdd) {
itemGroupID = itemGroupID.toLowerCase();
modID = modID.toLowerCase();
RegistryKey<ItemGroup> ITEM_GROUP_KEY = RegistryKey.of(Registries.ITEM_GROUP.getKey(), Identifier.of(modID, itemGroupID));

ItemGroup ITEM_GROUP = FabricItemGroup.builder()
.displayName(Text.translatable("itemGroup." + modID + "." + itemGroupID))
.icon(() -> new ItemStack(itemIconID != null ? itemIconID : Items.STONE))
.build();
private static final String minecraftVersion = FabricLoader.getInstance().getModContainer("minecraft")
.map(container -> container.getMetadata().getVersion().getFriendlyString())
.orElse("Unknown");

Registry.register(Registries.ITEM_GROUP, ITEM_GROUP_KEY, ITEM_GROUP);
public static void ItemGroup(String itemGroupID, String modID, Item itemIconID, List<Item> itemsToAdd) {
if (itemGroupID == null || modID == null) {
throw new IllegalArgumentException("itemGroupID or modID is null");
}

ItemGroupEvents.modifyEntriesEvent(ITEM_GROUP_KEY).register(itemGroup -> {
for (Item item : itemsToAdd) {
itemGroup.add(item);
try {
if (minecraftVersion.equals("1.21") || minecraftVersion.equals("1.21.1")) {
custom1.ItemGroup(itemGroupID, modID, itemIconID, itemsToAdd);
} else if (minecraftVersion.equals("1.21.2") || minecraftVersion.equals("1.21.3")) {
//custom2.ItemGroup(itemGroupID, modID, itemIconID, itemsToAdd);
}
});
} catch (Exception e) {
throw new RuntimeException("Failed to create ItemGroup: " + e.getMessage(), e);
}
}

public static void AddToItemGroup(String itemGroupID, String modID, List<Item> itemsToAdd) {
Expand All @@ -43,80 +38,84 @@ public static Item Item(String itemID, String modID, RegistryKey<ItemGroup> item
if (itemID == null || modID == null) {
throw new IllegalArgumentException("itemID or modID is null");
}
itemID = itemID.toLowerCase();
modID = modID.toLowerCase();
Identifier identifier = Identifier.of(modID, itemID);

Item.Settings settings = new Item.Settings();
Item item = new Item(settings);
Registry.register(Registries.ITEM, identifier, item);

if (itemGroup != null) {
ItemGroupEvents.modifyEntriesEvent(itemGroup).register(entries -> entries.add(item));
try {
if (minecraftVersion.equals("1.21") || minecraftVersion.equals("1.21.1")) {
return custom1.Item(itemID, modID, itemGroup);
} else if (minecraftVersion.equals("1.21.2") || minecraftVersion.equals("1.21.3")) {
//return custom2.Item(itemID, modID, itemGroup);
}
} catch (Exception e) {
throw new RuntimeException("Failed to create Item: " + e.getMessage(), e);
}

return item;
return null;
}

public static Item Item(String itemID, String modID) {
return Item(itemID, modID, null);
}

public static BlockItem Block(String blockID, String modID, RegistryKey<ItemGroup> itemGroup) {
blockID = blockID.toLowerCase();
modID = modID.toLowerCase();
Identifier blockIdentifier = Identifier.of(modID, blockID);

Block block = new Block(AbstractBlock.Settings.create().mapColor(MapColor.STONE_GRAY).strength(1.5F, 6.0F));
Block registeredBlock = Registry.register(Registries.BLOCK, blockIdentifier, block);
BlockItem blockItem = new BlockItem(registeredBlock, new Item.Settings());

Registry.register(Registries.ITEM, blockIdentifier, blockItem);
if (blockID == null || modID == null) {
throw new IllegalArgumentException("blockID or modID is null");
}

if (itemGroup != null) {
ItemGroupEvents.modifyEntriesEvent(itemGroup).register(entries -> entries.add(blockItem));
try {
if (minecraftVersion.equals("1.21") || minecraftVersion.equals("1.21.1")) {
return custom1.Block(blockID, modID, itemGroup);
} else if (minecraftVersion.equals("1.21.2") || minecraftVersion.equals("1.21.3")) {
//return custom2.Block(blockID, modID, itemGroup);
}
} catch (Exception e) {
throw new RuntimeException("Failed to create Block: " + e.getMessage(), e);
}

return blockItem;
return null;
}

public static BlockItem Block(String blockID, String modID) {
return Block(blockID, modID, null);
}

public static Item Weapon(String weaponID, String modID, ToolMaterial material, RegistryKey<ItemGroup> itemGroup) {
weaponID = weaponID.toLowerCase();
modID = modID.toLowerCase();
Identifier identifier = Identifier.of(modID, weaponID);

SwordItem weapon = new SwordItem(material, new Item.Settings()
.maxDamage(material.getDurability()));
Registry.register(Registries.ITEM, identifier, weapon);
if (weaponID == null || modID == null || material == null) {
throw new IllegalArgumentException("weaponID, modID, or material is null");
}

if (itemGroup != null) {
ItemGroupEvents.modifyEntriesEvent(itemGroup).register(entries -> entries.add(weapon));
try {
if (minecraftVersion.equals("1.21") || minecraftVersion.equals("1.21.1")) {
return custom1.Weapon(weaponID, modID, material, itemGroup);
} else if (minecraftVersion.equals("1.21.2") || minecraftVersion.equals("1.21.3")) {
//return custom2.Weapon(weaponID, modID, material, itemGroup);
}
} catch (Exception e) {
throw new RuntimeException("Failed to create Weapon: " + e.getMessage(), e);
}

return weapon;
return null;
}

public static Item Weapon(String weaponID, String modID, ToolMaterial material) {
return Weapon(weaponID, modID, material, null);
}

public static Item Armor(String armorID, String modID, RegistryEntry<ArmorMaterial> armorType, ArmorItem.Type armorPart, RegistryKey<ItemGroup> itemGroup) {
armorID = armorID.toLowerCase();
modID = modID.toLowerCase();
Identifier identifier = Identifier.of(modID, armorID);

ArmorItem armor = new ArmorItem(armorType, armorPart, new Item.Settings());
Registry.register(Registries.ITEM, identifier, armor);
if (armorID == null || modID == null || armorType == null || armorPart == null) {
throw new IllegalArgumentException("armorID, modID, armorType, or armorPart is null");
}

if (itemGroup != null) {
ItemGroupEvents.modifyEntriesEvent(itemGroup).register(entries -> entries.add(armor));
try {
if (minecraftVersion.equals("1.21") || minecraftVersion.equals("1.21.1")) {
return custom1.Armor(armorID, modID, armorType, armorPart, itemGroup);
} else if (minecraftVersion.equals("1.21.2") || minecraftVersion.equals("1.21.3")) {
//return custom2.Armor(armorID, modID, armorType, armorPart, itemGroup);
}
} catch (Exception e) {
throw new RuntimeException("Failed to create Armor: " + e.getMessage(), e);
}

return armor;
return null;
}

public static Item Armor(String armorID, String modID, RegistryEntry<ArmorMaterial> armorType, ArmorItem.Type armorPart) {
Expand Down
123 changes: 123 additions & 0 deletions src/main/java/dev/xdpxi/xdlib/api/mod/customClass/custom1.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
package dev.xdpxi.xdlib.api.mod.customClass;

import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.Block;
import net.minecraft.block.MapColor;
import net.minecraft.item.*;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.entry.RegistryEntry;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;

import java.util.List;

public class custom1 {
public static void ItemGroup(String itemGroupID, String modID, Item itemIconID, List<Item> itemsToAdd) {
itemGroupID = itemGroupID.toLowerCase();
modID = modID.toLowerCase();
RegistryKey<ItemGroup> ITEM_GROUP_KEY = RegistryKey.of(Registries.ITEM_GROUP.getKey(), Identifier.of(modID, itemGroupID));

ItemGroup ITEM_GROUP = FabricItemGroup.builder()
.displayName(Text.translatable("itemGroup." + modID + "." + itemGroupID))
.icon(() -> new ItemStack(itemIconID != null ? itemIconID : Items.STONE))
.build();

Registry.register(Registries.ITEM_GROUP, ITEM_GROUP_KEY, ITEM_GROUP);

ItemGroupEvents.modifyEntriesEvent(ITEM_GROUP_KEY).register(itemGroup -> {
for (Item item : itemsToAdd) {
itemGroup.add(item);
}
});
}

public static void AddToItemGroup(String itemGroupID, String modID, List<Item> itemsToAdd) {
ItemGroup(itemGroupID, modID, null, itemsToAdd);
}

public static Item Item(String itemID, String modID, RegistryKey<ItemGroup> itemGroup) {
if (itemID == null || modID == null) {
throw new IllegalArgumentException("itemID or modID is null");
}
itemID = itemID.toLowerCase();
modID = modID.toLowerCase();
Identifier identifier = Identifier.of(modID, itemID);

Item item = new Item(new Item.Settings());
Registry.register(Registries.ITEM, identifier, item);

if (itemGroup != null) {
ItemGroupEvents.modifyEntriesEvent(itemGroup).register(entries -> entries.add(item));
}

return item;
}

public static Item Item(String itemID, String modID) {
return Item(itemID, modID, null);
}

public static BlockItem Block(String blockID, String modID, RegistryKey<ItemGroup> itemGroup) {
blockID = blockID.toLowerCase();
modID = modID.toLowerCase();
Identifier blockIdentifier = Identifier.of(modID, blockID);

Block block = new Block(AbstractBlock.Settings.create().mapColor(MapColor.STONE_GRAY).strength(1.5F, 6.0F));
Block registeredBlock = Registry.register(Registries.BLOCK, blockIdentifier, block);
BlockItem blockItem = new BlockItem(registeredBlock, new Item.Settings());

Registry.register(Registries.ITEM, blockIdentifier, blockItem);

if (itemGroup != null) {
ItemGroupEvents.modifyEntriesEvent(itemGroup).register(entries -> entries.add(blockItem));
}

return blockItem;
}

public static BlockItem Block(String blockID, String modID) {
return Block(blockID, modID, null);
}

public static Item Weapon(String weaponID, String modID, ToolMaterial material, RegistryKey<ItemGroup> itemGroup) {
weaponID = weaponID.toLowerCase();
modID = modID.toLowerCase();
Identifier identifier = Identifier.of(modID, weaponID);

SwordItem weapon = new SwordItem(material, new Item.Settings().maxDamage(material.getDurability()));
Registry.register(Registries.ITEM, identifier, weapon);

if (itemGroup != null) {
ItemGroupEvents.modifyEntriesEvent(itemGroup).register(entries -> entries.add(weapon));
}

return weapon;
}

public static Item Weapon(String weaponID, String modID, ToolMaterial material) {
return Weapon(weaponID, modID, material, null);
}

public static Item Armor(String armorID, String modID, RegistryEntry<ArmorMaterial> armorType, ArmorItem.Type armorPart, RegistryKey<ItemGroup> itemGroup) {
armorID = armorID.toLowerCase();
modID = modID.toLowerCase();
Identifier identifier = Identifier.of(modID, armorID);

ArmorItem armor = new ArmorItem(armorType, armorPart, new Item.Settings());
Registry.register(Registries.ITEM, identifier, armor);

if (itemGroup != null) {
ItemGroupEvents.modifyEntriesEvent(itemGroup).register(entries -> entries.add(armor));
}

return armor;
}

public static Item Armor(String armorID, String modID, RegistryEntry<ArmorMaterial> armorType, ArmorItem.Type armorPart) {
return Armor(armorID, modID, armorType, armorPart, null);
}
}
Loading

0 comments on commit 5288acc

Please sign in to comment.