diff --git a/src/main/generated/data/arcanuscontinuum/tags/items/staves_for_wizards.json b/src/main/generated/data/arcanuscontinuum/tags/items/staves_for_wizards.json new file mode 100644 index 00000000..467c3a68 --- /dev/null +++ b/src/main/generated/data/arcanuscontinuum/tags/items/staves_for_wizards.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "arcanuscontinuum:wooden_staff", + "arcanuscontinuum:crystal_staff", + "arcanuscontinuum:divination_staff", + "arcanuscontinuum:crescent_staff", + "arcanuscontinuum:ancient_staff" + ] +} \ No newline at end of file diff --git a/src/main/java/dev/cammiescorner/arcanuscontinuum/common/data/ArcanusItemTags.java b/src/main/java/dev/cammiescorner/arcanuscontinuum/common/data/ArcanusItemTags.java index a2728927..b2a1d66a 100644 --- a/src/main/java/dev/cammiescorner/arcanuscontinuum/common/data/ArcanusItemTags.java +++ b/src/main/java/dev/cammiescorner/arcanuscontinuum/common/data/ArcanusItemTags.java @@ -12,6 +12,7 @@ public class ArcanusItemTags { public static final TagKey CRAFTING_SPELLBINDING_SPELLBOOKS = TagKey.create(Registries.ITEM, Arcanus.id("crafting/spellbinding_acceptable_spellbooks")); public static final TagKey STAVES = TagKey.create(Registries.ITEM, Arcanus.id("staves")); public static final TagKey WIZARD_ARMOR = TagKey.create(Registries.ITEM, Arcanus.id("wizard_armor")); + public static final TagKey STAVES_FOR_WIZARDS = TagKey.create(Registries.ITEM, Arcanus.id("staves_for_wizards")); public static final TagKey C_FEATHERS = ConventionsHelper.tag(Registries.ITEM, "feathers"); } diff --git a/src/main/java/dev/cammiescorner/arcanuscontinuum/common/entities/living/Wizard.java b/src/main/java/dev/cammiescorner/arcanuscontinuum/common/entities/living/Wizard.java index 01b10b32..6eb36206 100644 --- a/src/main/java/dev/cammiescorner/arcanuscontinuum/common/entities/living/Wizard.java +++ b/src/main/java/dev/cammiescorner/arcanuscontinuum/common/entities/living/Wizard.java @@ -7,6 +7,7 @@ import dev.cammiescorner.arcanuscontinuum.common.util.ArcanusHelper; import net.minecraft.ChatFormatting; import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; @@ -28,7 +29,6 @@ import net.minecraft.world.entity.npc.AbstractVillager; import net.minecraft.world.entity.npc.VillagerTrades; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.trading.MerchantOffer; import net.minecraft.world.item.trading.MerchantOffers; @@ -175,22 +175,12 @@ public AgeableMob getBreedOffspring(ServerLevel world, AgeableMob entity) { return null; } - @Override - public boolean canBeLeashed(Player player) { - return false; - } - private ItemStack getRandomStaff(RandomSource random) { - // TODO use a tag for this - List staves = List.of( - ArcanusItems.WOODEN_STAFF.get(), - ArcanusItems.CRYSTAL_STAFF.get(), - ArcanusItems.DIVINATION_STAFF.get(), - ArcanusItems.CRESCENT_STAFF.get(), - ArcanusItems.ANCIENT_STAFF.get() + return new ItemStack(BuiltInRegistries.ITEM.getOrCreateTag(ArcanusItemTags.STAVES_FOR_WIZARDS) + .getRandomElement(random) + .orElse(BuiltInRegistries.ITEM.wrapAsHolder(ArcanusItems.CRYSTAL_STAFF.get())) + .value() ); - - return new ItemStack(staves.get(random.nextInt(staves.size()))); } public void setRobeColor(int color) { diff --git a/src/main/java/dev/cammiescorner/arcanuscontinuum/datagen/common/ArcanusItemTagsProvider.java b/src/main/java/dev/cammiescorner/arcanuscontinuum/datagen/common/ArcanusItemTagsProvider.java index 531dad71..b82523af 100644 --- a/src/main/java/dev/cammiescorner/arcanuscontinuum/datagen/common/ArcanusItemTagsProvider.java +++ b/src/main/java/dev/cammiescorner/arcanuscontinuum/datagen/common/ArcanusItemTagsProvider.java @@ -62,6 +62,13 @@ protected void addTags(HolderLookup.Provider arg) { .add(ArcanusItems.MAGIC_TOME.get()) .add(ArcanusItems.MAGE_PISTOL.get()); + getOrCreateTagBuilder(ArcanusItemTags.STAVES_FOR_WIZARDS) + .add(ArcanusItems.WOODEN_STAFF.get()) + .add(ArcanusItems.CRYSTAL_STAFF.get()) + .add(ArcanusItems.DIVINATION_STAFF.get()) + .add(ArcanusItems.CRESCENT_STAFF.get()) + .add(ArcanusItems.ANCIENT_STAFF.get()); + getOrCreateTagBuilder(ArcanusItemTags.WIZARD_ARMOR) .add(ArcanusItems.WIZARD_HAT.get()) .add(ArcanusItems.WIZARD_ROBES.get())