diff --git a/build.gradle b/build.gradle index 7a6eb09..dfca467 100644 --- a/build.gradle +++ b/build.gradle @@ -41,8 +41,8 @@ fabricApi { } dependencies { - minecraft("com.mojang:minecraft:1.21") - mappings("net.fabricmc:yarn:1.21+build.9:v2") + minecraft("com.mojang:minecraft:1.20.5") + mappings("net.fabricmc:yarn:1.20.5+build.1:v2") compileOnly("io.papermc.paper:paper-api:1.21.3-R0.1-SNAPSHOT") compileOnly("net.md-5:bungeecord-api:1.21-R0.1-SNAPSHOT") compileOnly("org.spigotmc:spigot-api:1.21.3-R0.1-SNAPSHOT") diff --git a/src/main/java/dev/xdpxi/xdlib/api/mod/custom.java b/src/main/java/dev/xdpxi/xdlib/api/mod/custom.java index b1cd9b5..7567921 100644 --- a/src/main/java/dev/xdpxi/xdlib/api/mod/custom.java +++ b/src/main/java/dev/xdpxi/xdlib/api/mod/custom.java @@ -1,5 +1,6 @@ package dev.xdpxi.xdlib.api.mod; +import dev.xdpxi.xdlib.api.mod.customClass.custom0; import dev.xdpxi.xdlib.api.mod.customClass.custom1; import dev.xdpxi.xdlib.api.mod.customClass.custom2; import net.fabricmc.loader.api.FabricLoader; @@ -24,6 +25,8 @@ public static void ItemGroup(String itemGroupID, String modID, Item itemIconID, custom1.ItemGroup(itemGroupID, modID, itemIconID, itemsToAdd); } else if (minecraftVersion.equals("1.21.2") || minecraftVersion.equals("1.21.3")) { //custom2.ItemGroup(itemGroupID, modID, itemIconID, itemsToAdd); + } else if (minecraftVersion.equals("1.20.5") || minecraftVersion.equals("1.20.6")) { + custom0.ItemGroup(itemGroupID, modID, itemIconID, itemsToAdd); } } catch (Exception e) { throw new RuntimeException("Failed to create ItemGroup: " + e.getMessage(), e); @@ -44,6 +47,8 @@ public static Item Item(String itemID, String modID, RegistryKey item return custom1.Item(itemID, modID, itemGroup); } else if (minecraftVersion.equals("1.21.2") || minecraftVersion.equals("1.21.3")) { //return custom2.Item(itemID, modID, itemGroup); + } else if (minecraftVersion.equals("1.20.5") || minecraftVersion.equals("1.20.6")) { + return custom0.Item(itemID, modID, itemGroup); } } catch (Exception e) { throw new RuntimeException("Failed to create Item: " + e.getMessage(), e); @@ -66,6 +71,8 @@ public static BlockItem Block(String blockID, String modID, RegistryKey itemsToAdd) { + itemGroupID = itemGroupID.toLowerCase(); + modID = modID.toLowerCase(); + RegistryKey ITEM_GROUP_KEY = RegistryKey.of(Registries.ITEM_GROUP.getKey(), new Identifier(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 itemsToAdd) { + ItemGroup(itemGroupID, modID, null, itemsToAdd); + } + + public static Item Item(String itemID, String modID, RegistryKey itemGroup) { + if (itemID == null || modID == null) { + throw new IllegalArgumentException("itemID or modID is null"); + } + itemID = itemID.toLowerCase(); + modID = modID.toLowerCase(); + Identifier identifier = new Identifier(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) { + blockID = blockID.toLowerCase(); + modID = modID.toLowerCase(); + Identifier blockIdentifier = new Identifier(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) { + weaponID = weaponID.toLowerCase(); + modID = modID.toLowerCase(); + Identifier identifier = new Identifier(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 armorType, ArmorItem.Type armorPart, RegistryKey itemGroup) { + armorID = armorID.toLowerCase(); + modID = modID.toLowerCase(); + Identifier identifier = new Identifier(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 armorType, ArmorItem.Type armorPart) { + return Armor(armorID, modID, armorType, armorPart, null); + } +} \ No newline at end of file