From 5f1004168668f12f41c6deb9f026041373d45ba1 Mon Sep 17 00:00:00 2001 From: Maximusbarcz Date: Mon, 9 Jan 2023 21:48:21 +0100 Subject: Its a frog, frog in a blender! And also other stuff I guess --- src/main/java/dev/mayaqq/ygasi/Ygasi.java | 33 +--- .../dev/mayaqq/ygasi/dataGen/DataGenRegistry.java | 14 ++ .../dataGen/advancements/AdvancementProvider.java | 17 ++ .../ygasi/dataGen/advancements/Advancements.java | 174 +++++++++++++++++++++ .../mayaqq/ygasi/dataGen/recipes/YgasiRecipes.java | 28 ++++ .../mayaqq/ygasi/events/PlayerConnectEvent.java | 8 +- .../dev/mayaqq/ygasi/events/RegisterEvents.java | 7 - src/main/java/dev/mayaqq/ygasi/gui/BranchGui.java | 71 ++++++--- src/main/java/dev/mayaqq/ygasi/gui/ConfigGui.java | 1 - src/main/java/dev/mayaqq/ygasi/gui/DruidryGui.java | 4 +- src/main/java/dev/mayaqq/ygasi/gui/ExtraGui.java | 6 +- .../java/dev/mayaqq/ygasi/gui/MercenaryGui.java | 6 +- src/main/java/dev/mayaqq/ygasi/gui/ResetGui.java | 4 +- .../java/dev/mayaqq/ygasi/gui/WizardryGui.java | 4 +- .../dev/mayaqq/ygasi/registry/CommandRegistry.java | 4 +- .../dev/mayaqq/ygasi/registry/EventRegistry.java | 9 ++ .../dev/mayaqq/ygasi/registry/ItemRegistry.java | 25 +++ .../ygasi/registry/dataGen/DataGenRegistry.java | 14 -- .../dataGen/advancements/AdvancementProvider.java | 17 -- .../dataGen/advancements/Advancements.java | 174 --------------------- .../registry/dataGen/recipes/YgasiRecipes.java | 28 ---- src/main/java/dev/mayaqq/ygasi/secrete/Frog.java | 28 ++++ src/main/java/dev/mayaqq/ygasi/util/AdvUtils.java | 51 ++++++ .../java/dev/mayaqq/ygasi/util/YgasiUtils.java | 52 ------ 24 files changed, 419 insertions(+), 360 deletions(-) create mode 100644 src/main/java/dev/mayaqq/ygasi/dataGen/DataGenRegistry.java create mode 100644 src/main/java/dev/mayaqq/ygasi/dataGen/advancements/AdvancementProvider.java create mode 100644 src/main/java/dev/mayaqq/ygasi/dataGen/advancements/Advancements.java create mode 100644 src/main/java/dev/mayaqq/ygasi/dataGen/recipes/YgasiRecipes.java delete mode 100644 src/main/java/dev/mayaqq/ygasi/events/RegisterEvents.java create mode 100644 src/main/java/dev/mayaqq/ygasi/registry/EventRegistry.java create mode 100644 src/main/java/dev/mayaqq/ygasi/registry/ItemRegistry.java delete mode 100644 src/main/java/dev/mayaqq/ygasi/registry/dataGen/DataGenRegistry.java delete mode 100644 src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/AdvancementProvider.java delete mode 100644 src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/Advancements.java delete mode 100644 src/main/java/dev/mayaqq/ygasi/registry/dataGen/recipes/YgasiRecipes.java create mode 100644 src/main/java/dev/mayaqq/ygasi/secrete/Frog.java create mode 100644 src/main/java/dev/mayaqq/ygasi/util/AdvUtils.java delete mode 100644 src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java (limited to 'src/main/java/dev') diff --git a/src/main/java/dev/mayaqq/ygasi/Ygasi.java b/src/main/java/dev/mayaqq/ygasi/Ygasi.java index 5f1605d..7caa6d4 100644 --- a/src/main/java/dev/mayaqq/ygasi/Ygasi.java +++ b/src/main/java/dev/mayaqq/ygasi/Ygasi.java @@ -1,44 +1,25 @@ package dev.mayaqq.ygasi; -import dev.mayaqq.ygasi.events.RegisterEvents; -import dev.mayaqq.ygasi.items.SkillBookItem; -import dev.mayaqq.ygasi.registry.CommandRegistry; -import dev.mayaqq.ygasi.registry.ConfigRegistry; -import dev.mayaqq.ygasi.registry.StatRegistry; -import dev.mayaqq.ygasi.util.YgasiUtils; -import eu.pb4.polymer.api.item.PolymerItemGroup; -import eu.pb4.polymer.api.item.PolymerItemUtils; -import eu.pb4.polymer.api.resourcepack.PolymerModelData; -import eu.pb4.polymer.api.resourcepack.PolymerRPUtils; +import dev.mayaqq.ygasi.registry.*; +import dev.mayaqq.ygasi.secrete.Frog; import net.fabricmc.api.ModInitializer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; -import net.minecraft.util.registry.Registry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Ygasi implements ModInitializer { public static final Logger LOGGER = LoggerFactory.getLogger("ygasi"); - public static final PolymerItemGroup YGASI_GROUP = PolymerItemGroup.create(new Identifier("ygasi"), Text.translatable("creative.ygasi.group"), () -> new ItemStack(Items.BOOK)); - - public static final SkillBookItem SKILL_BOOK = new SkillBookItem(new Item.Settings().group(YGASI_GROUP).maxCount(1), Items.BOOK); - @Override public void onInitialize() { + //load the config data and register everything that needs to be registered on startup ConfigRegistry.load(); + ItemRegistry.register(); StatRegistry.register(); CommandRegistry.register(); - RegisterEvents.register(); - - PolymerRPUtils.addAssetSource("ygasi"); - PolymerModelData modelData = PolymerRPUtils.requestModel(Items.BOOK, new Identifier("ygasi", "item/skill_book")); + EventRegistry.register(); - Registry.register(Registry.ITEM, "ygasi:skill_book", SKILL_BOOK); + Frog.blender(); - LOGGER.info("You've got a skill issue!"); + LOGGER.info("You've Got A Skill Issue (YGASI has been initialized!)"); } } \ No newline at end of file diff --git a/src/main/java/dev/mayaqq/ygasi/dataGen/DataGenRegistry.java b/src/main/java/dev/mayaqq/ygasi/dataGen/DataGenRegistry.java new file mode 100644 index 0000000..1e78016 --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/dataGen/DataGenRegistry.java @@ -0,0 +1,14 @@ +package dev.mayaqq.ygasi.dataGen; + +import dev.mayaqq.ygasi.dataGen.advancements.AdvancementProvider; +import dev.mayaqq.ygasi.dataGen.recipes.YgasiRecipes; +import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; + +public class DataGenRegistry implements DataGeneratorEntrypoint { + @Override + public void onInitializeDataGenerator(FabricDataGenerator dataGenerator) { + dataGenerator.addProvider(AdvancementProvider::new); + dataGenerator.addProvider(YgasiRecipes::new); + } +} diff --git a/src/main/java/dev/mayaqq/ygasi/dataGen/advancements/AdvancementProvider.java b/src/main/java/dev/mayaqq/ygasi/dataGen/advancements/AdvancementProvider.java new file mode 100644 index 0000000..1944d4b --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/dataGen/advancements/AdvancementProvider.java @@ -0,0 +1,17 @@ +package dev.mayaqq.ygasi.dataGen.advancements; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricAdvancementProvider; +import net.minecraft.advancement.Advancement; + +import java.util.function.Consumer; + +public class AdvancementProvider extends FabricAdvancementProvider { + public AdvancementProvider(FabricDataGenerator dataGenerator) { + super(dataGenerator); + } + @Override + public void generateAdvancement(Consumer consumer) { + new Advancements().accept(consumer); + } +} diff --git a/src/main/java/dev/mayaqq/ygasi/dataGen/advancements/Advancements.java b/src/main/java/dev/mayaqq/ygasi/dataGen/advancements/Advancements.java new file mode 100644 index 0000000..8c0d5f5 --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/dataGen/advancements/Advancements.java @@ -0,0 +1,174 @@ +package dev.mayaqq.ygasi.dataGen.advancements; + +import de.dafuqs.revelationary.advancement_criteria.AdvancementGottenCriterion; +import net.minecraft.advancement.Advancement; +import net.minecraft.advancement.AdvancementFrame; +import net.minecraft.advancement.AdvancementRewards; +import net.minecraft.advancement.criterion.ImpossibleCriterion; +import net.minecraft.item.Items; +import net.minecraft.predicate.entity.EntityPredicate; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; + +import java.util.function.Consumer; + +public class Advancements implements Consumer> { + + @Override + public void accept(Consumer consumer) { + //main root advancement + Advancement rootAdvancement = Advancement.Builder.create().display(Items.DIAMOND, // The display icon + Text.translatable("advancements.ygasi.root.title"), // The title + Text.translatable("advancements.ygasi.root.description"), // The description + new Identifier("textures/block/sculk_catalyst_top.png"), // Background image used + AdvancementFrame.CHALLENGE, // Options: TASK, CHALLENGE, GOAL + true, // Show toast top right + false, // Announce to chat + false // Hidden in the advancement tab + ).criterion("opened_skill_menu", new ImpossibleCriterion.Conditions()).rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/root"); + + //branch advancements + Advancement mercenary = Advancement.Builder.create().parent(rootAdvancement) + .display(Items.DIAMOND_SWORD, Text.translatable("advancements.ygasi.mercenary.title"), Text.translatable("advancements.ygasi.mercenary.description"), null, AdvancementFrame.GOAL, false, false, false) + .criterion("unlocked_mercenary", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/mercenary"); + Advancement wizardry = Advancement.Builder.create().parent(rootAdvancement) + .display(Items.BLAZE_ROD, Text.translatable("advancements.ygasi.wizardry.title"), Text.translatable("advancements.ygasi.wizardry.description"), null, AdvancementFrame.GOAL, false, false, false) + .criterion("unlocked_wizardry", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/wizardry"); + Advancement druidry = Advancement.Builder.create().parent(rootAdvancement) + .display(Items.OAK_SAPLING, Text.translatable("advancements.ygasi.druidry.title"), Text.translatable("advancements.ygasi.druidry.description"), null, AdvancementFrame.GOAL, false, false, false) + .criterion("unlocked_druidry", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/druidry"); + Advancement extra = Advancement.Builder.create().parent(rootAdvancement) + .display(Items.EMERALD, Text.translatable("advancements.ygasi.extra.title"), Text.translatable("advancements.ygasi.extra.description"), null, AdvancementFrame.GOAL, false, false, false) + .criterion("unlocked_extra", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/extra"); + + //mercenary skills + + Advancement offence1 = Advancement.Builder.create().parent(mercenary) + .display(Items.IRON_SWORD, Text.translatable("advancements.ygasi.mercenary.offence1.title"), Text.translatable("advancements.ygasi.mercenary.offence1.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_offence1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, mercenary.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/offence1"); + Advancement offence2 = Advancement.Builder.create().parent(offence1) + .display(Items.IRON_SWORD, Text.translatable("advancements.ygasi.mercenary.offence2.title"), Text.translatable("advancements.ygasi.mercenary.offence2.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_offence2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, offence1.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/offence2"); + Advancement offence3 = Advancement.Builder.create().parent(offence2) + .display(Items.IRON_SWORD, Text.translatable("advancements.ygasi.mercenary.offence3.title"), Text.translatable("advancements.ygasi.mercenary.offence3.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_offence3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, offence2.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/offence3"); + + Advancement ninja1 = Advancement.Builder.create().parent(mercenary) + .display(Items.BAMBOO, Text.translatable("advancements.ygasi.mercenary.ninja1.title"), Text.translatable("advancements.ygasi.mercenary.ninja1.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_ninja1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, mercenary.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/ninja1"); + Advancement ninja2 = Advancement.Builder.create().parent(ninja1) + .display(Items.BAMBOO, Text.translatable("advancements.ygasi.mercenary.ninja2.title"), Text.translatable("advancements.ygasi.mercenary.ninja2.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_ninja2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, ninja1.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/ninja2"); + Advancement ninja3 = Advancement.Builder.create().parent(ninja2) + .display(Items.BAMBOO, Text.translatable("advancements.ygasi.mercenary.ninja3.title"), Text.translatable("advancements.ygasi.mercenary.ninja3.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_ninja3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, ninja2.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/ninja3"); + + Advancement defence1 = Advancement.Builder.create().parent(mercenary) + .display(Items.IRON_CHESTPLATE, Text.translatable("advancements.ygasi.mercenary.defence1.title"), Text.translatable("advancements.ygasi.mercenary.defence1.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_defence1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, mercenary.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/defence1"); + Advancement defence2 = Advancement.Builder.create().parent(defence1) + .display(Items.IRON_CHESTPLATE, Text.translatable("advancements.ygasi.mercenary.defence2.title"), Text.translatable("advancements.ygasi.mercenary.defence2.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_defence2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, defence1.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/defence2"); + Advancement defence3 = Advancement.Builder.create().parent(defence2) + .display(Items.IRON_CHESTPLATE, Text.translatable("advancements.ygasi.mercenary.defence3.title"), Text.translatable("advancements.ygasi.mercenary.defence3.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_defence3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, defence2.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/defence3"); + + //wizardry skills + + Advancement fight1 = Advancement.Builder.create().parent(wizardry) + .display(Items.BLAZE_POWDER, Text.translatable("advancements.ygasi.wizardry.fight1.title"), Text.translatable("advancements.ygasi.wizardry.fight1.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_fight1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, wizardry.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/fight1"); + Advancement fight2 = Advancement.Builder.create().parent(fight1) + .display(Items.BLAZE_POWDER, Text.translatable("advancements.ygasi.wizardry.fight2.title"), Text.translatable("advancements.ygasi.wizardry.fight2.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_fight2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, fight1.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/fight2"); + Advancement fight3 = Advancement.Builder.create().parent(fight2) + .display(Items.BLAZE_POWDER, Text.translatable("advancements.ygasi.wizardry.fight3.title"), Text.translatable("advancements.ygasi.wizardry.fight3.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_fight3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, fight2.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/fight3"); + + Advancement element1 = Advancement.Builder.create().parent(wizardry) + .display(Items.FIRE_CHARGE, Text.translatable("advancements.ygasi.wizardry.element1.title"), Text.translatable("advancements.ygasi.wizardry.element1.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_element1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, wizardry.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/element1"); + Advancement element2 = Advancement.Builder.create().parent(element1) + .display(Items.FIRE_CHARGE, Text.translatable("advancements.ygasi.wizardry.element2.title"), Text.translatable("advancements.ygasi.wizardry.element2.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_element2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, element1.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/element2"); + Advancement element3 = Advancement.Builder.create().parent(element2) + .display(Items.FIRE_CHARGE, Text.translatable("advancements.ygasi.wizardry.element3.title"), Text.translatable("advancements.ygasi.wizardry.element3.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_element3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, element2.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/element3"); + + Advancement force1 = Advancement.Builder.create().parent(wizardry) + .display(Items.ENDER_PEARL, Text.translatable("advancements.ygasi.wizardry.force1.title"), Text.translatable("advancements.ygasi.wizardry.force1.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_force1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, wizardry.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/force1"); + Advancement force2 = Advancement.Builder.create().parent(force1) + .display(Items.ENDER_PEARL, Text.translatable("advancements.ygasi.wizardry.force2.title"), Text.translatable("advancements.ygasi.wizardry.force2.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_force2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, force1.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/force2"); + Advancement force3 = Advancement.Builder.create().parent(force2) + .display(Items.ENDER_PEARL, Text.translatable("advancements.ygasi.wizardry.force3.title"), Text.translatable("advancements.ygasi.wizardry.force3.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_force3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, force2.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/force3"); + + //druidry skills + + Advancement necromancy1 = Advancement.Builder.create().parent(druidry) + .display(Items.BONE, Text.translatable("advancements.ygasi.druidry.necromancy1.title"), Text.translatable("advancements.ygasi.druidry.necromancy1.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_necromancy1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, druidry.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/necromancy1"); + Advancement necromancy2 = Advancement.Builder.create().parent(necromancy1) + .display(Items.BONE, Text.translatable("advancements.ygasi.druidry.necromancy2.title"), Text.translatable("advancements.ygasi.druidry.necromancy2.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_necromancy2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, necromancy1.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/necromancy2"); + Advancement necromancy3 = Advancement.Builder.create().parent(necromancy2) + .display(Items.BONE, Text.translatable("advancements.ygasi.druidry.necromancy3.title"), Text.translatable("advancements.ygasi.druidry.necromancy3.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_necromancy3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, necromancy2.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/necromancy3"); + + Advancement nature1 = Advancement.Builder.create().parent(druidry) + .display(Items.GRASS_BLOCK, Text.translatable("advancements.ygasi.druidry.nature1.title"), Text.translatable("advancements.ygasi.druidry.nature1.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_nature1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, druidry.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/nature1"); + Advancement nature2 = Advancement.Builder.create().parent(nature1) + .display(Items.GRASS_BLOCK, Text.translatable("advancements.ygasi.druidry.nature2.title"), Text.translatable("advancements.ygasi.druidry.nature2.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_nature2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, nature1.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/nature2"); + Advancement nature3 = Advancement.Builder.create().parent(nature2) + .display(Items.GRASS_BLOCK, Text.translatable("advancements.ygasi.druidry.nature3.title"), Text.translatable("advancements.ygasi.druidry.nature3.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_nature3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, nature2.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/nature3"); + + Advancement protean1 = Advancement.Builder.create().parent(druidry) + .display(Items.SLIME_BALL, Text.translatable("advancements.ygasi.druidry.protean1.title"), Text.translatable("advancements.ygasi.druidry.protean1.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_protean1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, druidry.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/protean1"); + Advancement protean2 = Advancement.Builder.create().parent(protean1) + .display(Items.SLIME_BALL, Text.translatable("advancements.ygasi.druidry.protean2.title"), Text.translatable("advancements.ygasi.druidry.protean2.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_protean2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, protean1.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/protean2"); + Advancement protean3 = Advancement.Builder.create().parent(protean2) + .display(Items.SLIME_BALL, Text.translatable("advancements.ygasi.druidry.protean3.title"), Text.translatable("advancements.ygasi.druidry.protean3.description"), null, AdvancementFrame.TASK, false, false, true) + .criterion("unlocked_protean3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, protean2.getId())) + .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/protean3"); + + //extra + + } +} \ No newline at end of file diff --git a/src/main/java/dev/mayaqq/ygasi/dataGen/recipes/YgasiRecipes.java b/src/main/java/dev/mayaqq/ygasi/dataGen/recipes/YgasiRecipes.java new file mode 100644 index 0000000..032cc2e --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/dataGen/recipes/YgasiRecipes.java @@ -0,0 +1,28 @@ +package dev.mayaqq.ygasi.dataGen.recipes; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.minecraft.advancement.criterion.ImpossibleCriterion; +import net.minecraft.data.server.recipe.RecipeJsonProvider; +import net.minecraft.data.server.recipe.ShapelessRecipeJsonBuilder; +import net.minecraft.item.Items; +import net.minecraft.tag.ItemTags; + +import java.util.function.Consumer; + +import static dev.mayaqq.ygasi.registry.ItemRegistry.SKILL_BOOK; + +public class YgasiRecipes extends FabricRecipeProvider { + public YgasiRecipes(FabricDataGenerator dataGenerator) { + super(dataGenerator); + } + + @Override + public void generateRecipes(Consumer exporter) { + ShapelessRecipeJsonBuilder.create(SKILL_BOOK) + .criterion("has_book", new ImpossibleCriterion.Conditions()) + .input(Items.BOOK) + .input(ItemTags.SAPLINGS) + .offerTo(exporter); + } +} \ No newline at end of file diff --git a/src/main/java/dev/mayaqq/ygasi/events/PlayerConnectEvent.java b/src/main/java/dev/mayaqq/ygasi/events/PlayerConnectEvent.java index 26b5051..7836ca6 100644 --- a/src/main/java/dev/mayaqq/ygasi/events/PlayerConnectEvent.java +++ b/src/main/java/dev/mayaqq/ygasi/events/PlayerConnectEvent.java @@ -1,20 +1,20 @@ package dev.mayaqq.ygasi.events; import dev.mayaqq.ygasi.registry.ConfigRegistry; -import dev.mayaqq.ygasi.util.YgasiUtils; +import dev.mayaqq.ygasi.util.AdvUtils; import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; -import static dev.mayaqq.ygasi.Ygasi.SKILL_BOOK; +import static dev.mayaqq.ygasi.registry.ItemRegistry.SKILL_BOOK; public class PlayerConnectEvent { - public static void onJoin() { + public static void onPlayerConnect() { ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> { if (!handler.player.getScoreboardTags().contains("skill_book_unlocked") && ConfigRegistry.CONFIG.enableSkillBook) { handler.player.addScoreboardTag("skill_book_unlocked"); handler.player.getInventory().offerOrDrop(new ItemStack(SKILL_BOOK)); - YgasiUtils.grantAdvancementCriterion(handler.player, new Identifier("ygasi", "recipes/minecraft_ygasi/skill_book"), "opened_skill_menu"); + AdvUtils.grantAdvancementCriterion(handler.player, new Identifier("ygasi", "recipes/minecraft_ygasi/skill_book"), "opened_skill_menu"); } }); } diff --git a/src/main/java/dev/mayaqq/ygasi/events/RegisterEvents.java b/src/main/java/dev/mayaqq/ygasi/events/RegisterEvents.java deleted file mode 100644 index 08476f1..0000000 --- a/src/main/java/dev/mayaqq/ygasi/events/RegisterEvents.java +++ /dev/null @@ -1,7 +0,0 @@ -package dev.mayaqq.ygasi.events; - -public class RegisterEvents { - public static void register() { - PlayerConnectEvent.onJoin(); - } -} diff --git a/src/main/java/dev/mayaqq/ygasi/gui/BranchGui.java b/src/main/java/dev/mayaqq/ygasi/gui/BranchGui.java index d4cb050..d293f47 100644 --- a/src/main/java/dev/mayaqq/ygasi/gui/BranchGui.java +++ b/src/main/java/dev/mayaqq/ygasi/gui/BranchGui.java @@ -1,6 +1,6 @@ package dev.mayaqq.ygasi.gui; -import dev.mayaqq.ygasi.util.YgasiUtils; +import dev.mayaqq.ygasi.util.AdvUtils; import eu.pb4.sgui.api.elements.*; import net.minecraft.item.ItemStack; @@ -18,9 +18,9 @@ import net.minecraft.util.Identifier; public class BranchGui { public static void gui(ServerPlayerEntity player) { + Text cost = Text.of("§3" + ConfigRegistry.CONFIG.branchCost); try { SkillGui gui = new SkillGui(ScreenHandlerType.GENERIC_9X3, player, false) {}; - //the title of the gui gui.setTitle(Text.translatable("gui.ygasi.branch.title", player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS))).formatted(Formatting.DARK_AQUA)); @@ -48,12 +48,12 @@ public class BranchGui { //branch items //mercenary gui button - if (!YgasiUtils.getAdvancementProgress(player, "minecraft", "ygasi/mercenary")) { + if (!AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/mercenary")) { gui.setSlot(11, new GuiElementBuilder() .setItem(Items.DIAMOND_SWORD) .setCustomModelData(1) .hideFlag(ItemStack.TooltipSection.MODIFIERS) - .addLoreLine(Text.translatable("gui.ygasi.branch.cost", ConfigRegistry.CONFIG.branchCost)) + .addLoreLine(Text.translatable("gui.ygasi.branch.cost", cost)) .setName(Text.translatable("gui.ygasi.branch.mercenary.title").formatted(Formatting.BOLD)) .setCallback((index, clickType, actionType) -> save(player, "mercenary", "gui.ygasi.branch.mercenary.title")) ); @@ -68,10 +68,10 @@ public class BranchGui { } //wizardry gui button - if (!YgasiUtils.getAdvancementProgress(player, "minecraft", "ygasi/wizardry")) { + if (!AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/wizardry")) { gui.setSlot(13, new GuiElementBuilder() .setItem(Items.BLAZE_ROD) - .addLoreLine(Text.translatable("gui.ygasi.branch.cost", ConfigRegistry.CONFIG.branchCost)) + .addLoreLine(Text.translatable("gui.ygasi.branch.cost", cost)) .setName(Text.translatable("gui.ygasi.branch.wizardry.title").formatted(Formatting.BOLD)) .setCallback((index, clickType, actionType) -> save(player, "wizardry", "gui.ygasi.branch.wizardry.title")) ); @@ -85,10 +85,10 @@ public class BranchGui { } //druidry gui button - if (!YgasiUtils.getAdvancementProgress(player, "minecraft", "ygasi/druidry")) { + if (!AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/druidry")) { gui.setSlot(15, new GuiElementBuilder() .setItem(Items.OAK_SAPLING) - .addLoreLine(Text.translatable("gui.ygasi.branch.cost", ConfigRegistry.CONFIG.branchCost)) + .addLoreLine(Text.translatable("gui.ygasi.branch.cost", cost)) .setName(Text.translatable("gui.ygasi.branch.druidry.title").formatted(Formatting.BOLD)) .setCallback((index, clickType, actionType) -> save(player, "druidry", "gui.ygasi.branch.druidry.title")) ); @@ -102,10 +102,10 @@ public class BranchGui { } //extra gui button - if (!YgasiUtils.getAdvancementProgress(player, "minecraft", "ygasi/extra")) { + if (!AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/extra")) { gui.setSlot(26, new GuiElementBuilder() .setItem(Items.BOOK) - .addLoreLine(Text.translatable("gui.ygasi.branch.cost", ConfigRegistry.CONFIG.branchCost / 2)) + .addLoreLine(Text.translatable("gui.ygasi.branch.cost", Text.of("§3" + ConfigRegistry.CONFIG.branchCost / 2))) .setName(Text.translatable("gui.ygasi.branch.extra.title").formatted(Formatting.BOLD)) .setCallback((index, clickType, actionType) -> save(player, "extra", "gui.ygasi.branch.extra.title")) ); @@ -137,7 +137,7 @@ public class BranchGui { ); //grant the player the root advancement of ygasi - YgasiUtils.grantAdvancementCriterion(player, new Identifier("minecraft", "ygasi/root"), "opened_skill_menu"); + AdvUtils.grantAdvancementCriterion(player, new Identifier("minecraft", "ygasi/root"), "opened_skill_menu"); gui.open(); } catch (Exception e) { @@ -146,43 +146,68 @@ public class BranchGui { } //this happens when you try to unlock a branch public static void save(ServerPlayerEntity player, String branch, String branchName) { + Boolean hasMercenary = AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/mercenary"); + Boolean hasWizadry = AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/wizardry"); + Boolean hasDrudiry = AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/druidry"); //special category for extra branch because it's half the price if (branch.equals("extra")) { if (player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)) >= ConfigRegistry.CONFIG.branchCost / 2) { + //remove the spent skill points player.getStatHandler().setStat(player, Stats.CUSTOM.getOrCreateStat(SKILL_POINTS), player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)) - ConfigRegistry.CONFIG.branchCost / 2); - YgasiUtils.grantAdvancementCriterion(player, new Identifier("minecraft", "ygasi/extra"), "unlocked_extra"); + AdvUtils.grantAdvancementCriterion(player, new Identifier("minecraft", "ygasi/extra"), "unlocked_extra"); player.sendMessage(Text.translatable("gui.ygasi.branch.unlock", Text.translatable(branchName)), false); ExtraGui.gui(player); } else { player.sendMessage(Text.translatable("gui.ygasi.branch.no.skill"), false); } - //the rest of the branches + //the rest of the branches } else { //same code as in extra if (player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)) >= ConfigRegistry.CONFIG.branchCost) { - player.getStatHandler().setStat(player, Stats.CUSTOM.getOrCreateStat(SKILL_POINTS), player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)) - ConfigRegistry.CONFIG.branchCost); - player.sendMessage(Text.translatable("gui.ygasi.branch.unlock", Text.translatable(branchName)), false); - player.closeHandledScreen(); //grant the player the advancement of the branch they unlocked switch (branch) { case "mercenary" -> { - YgasiUtils.grantAdvancementCriterion(player, new Identifier("minecraft", "ygasi/mercenary"), "unlocked_mercenary"); - MercenaryGui.gui(player); + if (hasWizadry || hasDrudiry) { + player.sendMessage(Text.translatable("gui.ygasi.branch.no.unlock"), true); + } else { + hasMercenary = true; + AdvUtils.grantAdvancementCriterion(player, new Identifier("minecraft", "ygasi/mercenary"), "unlocked_mercenary"); + MercenaryGui.gui(player); + unlockSuccess(player, branchName); + } } case "wizardry" -> { - YgasiUtils.grantAdvancementCriterion(player, new Identifier("minecraft", "ygasi/wizardry"), "unlocked_wizardry"); - WizardryGui.gui(player); + if (hasMercenary || hasDrudiry) { + player.sendMessage(Text.translatable("gui.ygasi.branch.no.unlock"), true); + } else { + hasWizadry = true; + AdvUtils.grantAdvancementCriterion(player, new Identifier("minecraft", "ygasi/wizardry"), "unlocked_wizardry"); + WizardryGui.gui(player); + unlockSuccess(player, branchName); + } } case "druidry" -> { - YgasiUtils.grantAdvancementCriterion(player, new Identifier("minecraft", "ygasi/druidry"), "unlocked_druidry"); - DruidryGui.gui(player); + if (hasMercenary || hasWizadry) { + player.sendMessage(Text.translatable("gui.ygasi.branch.no.unlock"), true); + } else { + hasDrudiry = true; + AdvUtils.grantAdvancementCriterion(player, new Identifier("minecraft", "ygasi/druidry"), "unlocked_druidry"); + DruidryGui.gui(player); + unlockSuccess(player, branchName); + } } } - //if the player doesn't have enough skill points + player.closeHandledScreen(); + //if the player doesn't have enough skill points } else { player.sendMessage(Text.translatable("gui.ygasi.branch.no.skill"), false); player.closeHandledScreen(); } } } + private static void unlockSuccess(ServerPlayerEntity player, String branchName) { + player.sendMessage(Text.translatable("gui.ygasi.branch.unlock", Text.translatable(branchName)), false); + //remove the spent skill points + player.getStatHandler().setStat(player, Stats.CUSTOM.getOrCreateStat(SKILL_POINTS), player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)) - ConfigRegistry.CONFIG.branchCost); + } } \ No newline at end of file diff --git a/src/main/java/dev/mayaqq/ygasi/gui/ConfigGui.java b/src/main/java/dev/mayaqq/ygasi/gui/ConfigGui.java index f847227..c9f0383 100644 --- a/src/main/java/dev/mayaqq/ygasi/gui/ConfigGui.java +++ b/src/main/java/dev/mayaqq/ygasi/gui/ConfigGui.java @@ -91,7 +91,6 @@ public class ConfigGui { gui.open(); } - private static void textInput(ServerPlayerEntity player, String option) { try { SignGui gui = new SignGui(player) { diff --git a/src/main/java/dev/mayaqq/ygasi/gui/DruidryGui.java b/src/main/java/dev/mayaqq/ygasi/gui/DruidryGui.java index 64e3db3..7c3e0fd 100644 --- a/src/main/java/dev/mayaqq/ygasi/gui/DruidryGui.java +++ b/src/main/java/dev/mayaqq/ygasi/gui/DruidryGui.java @@ -1,6 +1,6 @@ package dev.mayaqq.ygasi.gui; -import dev.mayaqq.ygasi.util.YgasiUtils; +import dev.mayaqq.ygasi.util.AdvUtils; import eu.pb4.sgui.api.elements.GuiElementBuilder; import net.minecraft.item.Items; import net.minecraft.screen.ScreenHandlerType; @@ -14,7 +14,7 @@ public class DruidryGui { public static void gui(ServerPlayerEntity player) { String title = Text.translatable("gui.ygasi.branch.druidry.title").getString() + " " + Text.translatable("gui.ygasi.branch.title", player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS))).getString(); try { - if (!YgasiUtils.getAdvancementProgress(player, "minecraft", "ygasi/druidry")) { + if (!AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/druidry")) { player.sendMessage(Text.translatable("gui.ygasi.branches.fail"), false); BranchGui.gui(player); } else { diff --git a/src/main/java/dev/mayaqq/ygasi/gui/ExtraGui.java b/src/main/java/dev/mayaqq/ygasi/gui/ExtraGui.java index 268535b..89905d7 100644 --- a/src/main/java/dev/mayaqq/ygasi/gui/ExtraGui.java +++ b/src/main/java/dev/mayaqq/ygasi/gui/ExtraGui.java @@ -1,6 +1,6 @@ package dev.mayaqq.ygasi.gui; -import dev.mayaqq.ygasi.util.YgasiUtils; +import dev.mayaqq.ygasi.util.AdvUtils; import eu.pb4.sgui.api.elements.GuiElementBuilder; import net.minecraft.item.Items; import net.minecraft.screen.ScreenHandlerType; @@ -14,13 +14,13 @@ public class ExtraGui { public static void gui(ServerPlayerEntity player) { String title = Text.translatable("gui.ygasi.branch.extra.title").getString() + " " + Text.translatable("gui.ygasi.branch.title", player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS))).getString(); try { - if (!YgasiUtils.getAdvancementProgress(player, "minecraft", "ygasi/extra")) { + if (!AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/extra")) { player.sendMessage(Text.translatable("gui.ygasi.branches.fail"), false); BranchGui.gui(player); } else { SkillGui gui = new SkillGui(ScreenHandlerType.GENERIC_9X3, player, false) {}; - gui.setTitle(Text.of( title)); + gui.setTitle(Text.of(title)); for (int x = 0; x <= 26; x++) { gui.setSlot(x, new GuiElementBuilder() diff --git a/src/main/java/dev/mayaqq/ygasi/gui/MercenaryGui.java b/src/main/java/dev/mayaqq/ygasi/gui/MercenaryGui.java index 43d06ed..9eb0122 100644 --- a/src/main/java/dev/mayaqq/ygasi/gui/MercenaryGui.java +++ b/src/main/java/dev/mayaqq/ygasi/gui/MercenaryGui.java @@ -1,6 +1,6 @@ package dev.mayaqq.ygasi.gui; -import dev.mayaqq.ygasi.util.YgasiUtils; +import dev.mayaqq.ygasi.util.AdvUtils; import eu.pb4.sgui.api.elements.GuiElementBuilder; import net.minecraft.item.Items; import net.minecraft.screen.ScreenHandlerType; @@ -15,7 +15,7 @@ public class MercenaryGui { public static void gui(ServerPlayerEntity player) { String title = Text.translatable("gui.ygasi.branch.mercenary.title").getString() + " " + Text.translatable("gui.ygasi.branch.title", player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS))).formatted(Formatting.DARK_AQUA).getString(); try { - if (!YgasiUtils.getAdvancementProgress(player, "minecraft", "ygasi/mercenary")) { + if (!AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/mercenary")) { player.sendMessage(Text.translatable("gui.ygasi.branches.fail"), false); BranchGui.gui(player); } else { @@ -37,7 +37,7 @@ public class MercenaryGui { .addLoreLine(Text.of("§3Skill Points: " + player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)))) ); - if (!YgasiUtils.getAdvancementProgress(player, "minecraft", "ygasi/offence1")) { + if (!AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/offence1")) { gui.setSlot(10, new GuiElementBuilder() .setItem(Items.DIAMOND_SWORD) .setName(Text.translatable("gui.ygasi.mercenary.offence1")) diff --git a/src/main/java/dev/mayaqq/ygasi/gui/ResetGui.java b/src/main/java/dev/mayaqq/ygasi/gui/ResetGui.java index a976929..c581e02 100644 --- a/src/main/java/dev/mayaqq/ygasi/gui/ResetGui.java +++ b/src/main/java/dev/mayaqq/ygasi/gui/ResetGui.java @@ -1,6 +1,6 @@ package dev.mayaqq.ygasi.gui; -import dev.mayaqq.ygasi.util.YgasiUtils; +import dev.mayaqq.ygasi.util.AdvUtils; import eu.pb4.sgui.api.elements.GuiElementBuilder; import net.minecraft.item.Items; import net.minecraft.screen.ScreenHandlerType; @@ -48,7 +48,7 @@ public class ResetGui { player.playSound(SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, SoundCategory.PLAYERS, 1.0F, 1.0F); player.experienceLevel -= 10; player.closeHandledScreen(); - YgasiUtils.revokeAllAdvancements(player, "minecraft", "ygasi/"); + AdvUtils.revokeAllAdvancements(player, "minecraft", "ygasi/"); player.sendMessage(Text.translatable("gui.ygasi.reset.success"), false); player.getStatHandler().setStat(player, Stats.CUSTOM.getOrCreateStat(SKILL_POINTS), player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS_TOTAL))); BranchGui.gui(player); diff --git a/src/main/java/dev/mayaqq/ygasi/gui/WizardryGui.java b/src/main/java/dev/mayaqq/ygasi/gui/WizardryGui.java index 9dfc5dc..347135f 100644 --- a/src/main/java/dev/mayaqq/ygasi/gui/WizardryGui.java +++ b/src/main/java/dev/mayaqq/ygasi/gui/WizardryGui.java @@ -1,6 +1,6 @@ package dev.mayaqq.ygasi.gui; -import dev.mayaqq.ygasi.util.YgasiUtils; +import dev.mayaqq.ygasi.util.AdvUtils; import eu.pb4.sgui.api.elements.GuiElementBuilder; import net.minecraft.item.Items; import net.minecraft.screen.ScreenHandlerType; @@ -14,7 +14,7 @@ public class WizardryGui { public static void gui(ServerPlayerEntity player) { String title = Text.translatable("gui.ygasi.branch.wizardry.title").getString() + " " + Text.translatable("gui.ygasi.branch.title", player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS))).getString(); try { - if (!YgasiUtils.getAdvancementProgress(player, "minecraft", "ygasi/wizardry")) { + if (!AdvUtils.getAdvancementProgress(player, "minecraft", "ygasi/wizardry")) { player.sendMessage(Text.translatable("gui.ygasi.branches.fail"), false); BranchGui.gui(player); } else { diff --git a/src/main/java/dev/mayaqq/ygasi/registry/CommandRegistry.java b/src/main/java/dev/mayaqq/ygasi/registry/CommandRegistry.java index 44ba603..781ef4d 100644 --- a/src/main/java/dev/mayaqq/ygasi/registry/CommandRegistry.java +++ b/src/main/java/dev/mayaqq/ygasi/registry/CommandRegistry.java @@ -58,7 +58,7 @@ public class CommandRegistry { ServerPlayerEntity player = EntityArgumentType.getPlayer(context, "target"); player.resetStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)); player.resetStat(Stats.CUSTOM.getOrCreateStat(StatRegistry.SKILL_POINTS_TOTAL)); - context.getSource().sendMessage(Text.translatable("commands.ygasi.skillpoints.reset", player.getEntityName()).formatted(Formatting.GREEN)); + player.sendMessage(Text.translatable("commands.ygasi.skillpoints.reset", player.getEntityName()).formatted(Formatting.GREEN)); return 1; }))) .then(literal("add") @@ -76,7 +76,7 @@ public class CommandRegistry { .then(CommandManager.argument("target", EntityArgumentType.player()) .executes(context -> { ServerPlayerEntity player = EntityArgumentType.getPlayer(context, "target"); - context.getSource().sendMessage(Text.translatable("commands.ygasi.skillpoints.get", player.getEntityName(), player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)), player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS_TOTAL))).formatted(Formatting.GREEN)); + player.sendMessage(Text.translatable("commands.ygasi.skillpoints.get", player.getEntityName(), player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)), player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS_TOTAL))).formatted(Formatting.GREEN)); return 1; })))) .then(literal("config") diff --git a/src/main/java/dev/mayaqq/ygasi/registry/EventRegistry.java b/src/main/java/dev/mayaqq/ygasi/registry/EventRegistry.java new file mode 100644 index 0000000..ee13faf --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/registry/EventRegistry.java @@ -0,0 +1,9 @@ +package dev.mayaqq.ygasi.registry; + +import dev.mayaqq.ygasi.events.PlayerConnectEvent; + +public class EventRegistry { + public static void register() { + PlayerConnectEvent.onPlayerConnect(); + } +} diff --git a/src/main/java/dev/mayaqq/ygasi/registry/ItemRegistry.java b/src/main/java/dev/mayaqq/ygasi/registry/ItemRegistry.java new file mode 100644 index 0000000..61cb93d --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/registry/ItemRegistry.java @@ -0,0 +1,25 @@ +package dev.mayaqq.ygasi.registry; + +import dev.mayaqq.ygasi.items.SkillBookItem; +import eu.pb4.polymer.api.item.PolymerItemGroup; +import eu.pb4.polymer.api.resourcepack.PolymerModelData; +import eu.pb4.polymer.api.resourcepack.PolymerRPUtils; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; + +public class ItemRegistry { + public static final PolymerItemGroup YGASI_GROUP = PolymerItemGroup.create(new Identifier("ygasi"), Text.translatable("creative.ygasi.group"), () -> new ItemStack(Items.BOOK)); + + public static final SkillBookItem SKILL_BOOK = new SkillBookItem(new Item.Settings().group(YGASI_GROUP).maxCount(1), Items.BOOK); + public static void register() { + PolymerRPUtils.addAssetSource("ygasi"); + + PolymerModelData skillBookModelData = PolymerRPUtils.requestModel(Items.BOOK, new Identifier("ygasi", "item/skill_book")); + + Registry.register(Registry.ITEM, "ygasi:skill_book", SKILL_BOOK); + } +} diff --git a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/DataGenRegistry.java b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/DataGenRegistry.java deleted file mode 100644 index 8cd9b6e..0000000 --- a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/DataGenRegistry.java +++ /dev/null @@ -1,14 +0,0 @@ -package dev.mayaqq.ygasi.registry.dataGen; - -import dev.mayaqq.ygasi.registry.dataGen.advancements.AdvancementProvider; -import dev.mayaqq.ygasi.registry.dataGen.recipes.YgasiRecipes; -import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; -import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; - -public class DataGenRegistry implements DataGeneratorEntrypoint { - @Override - public void onInitializeDataGenerator(FabricDataGenerator dataGenerator) { - dataGenerator.addProvider(AdvancementProvider::new); - dataGenerator.addProvider(YgasiRecipes::new); - } -} diff --git a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/AdvancementProvider.java b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/AdvancementProvider.java deleted file mode 100644 index 5748316..0000000 --- a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/AdvancementProvider.java +++ /dev/null @@ -1,17 +0,0 @@ -package dev.mayaqq.ygasi.registry.dataGen.advancements; - -import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricAdvancementProvider; -import net.minecraft.advancement.Advancement; - -import java.util.function.Consumer; - -public class AdvancementProvider extends FabricAdvancementProvider { - public AdvancementProvider(FabricDataGenerator dataGenerator) { - super(dataGenerator); - } - @Override - public void generateAdvancement(Consumer consumer) { - new Advancements().accept(consumer); - } -} diff --git a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/Advancements.java b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/Advancements.java deleted file mode 100644 index 130a885..0000000 --- a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/advancements/Advancements.java +++ /dev/null @@ -1,174 +0,0 @@ -package dev.mayaqq.ygasi.registry.dataGen.advancements; - -import de.dafuqs.revelationary.advancement_criteria.AdvancementGottenCriterion; -import net.minecraft.advancement.Advancement; -import net.minecraft.advancement.AdvancementFrame; -import net.minecraft.advancement.AdvancementRewards; -import net.minecraft.advancement.criterion.ImpossibleCriterion; -import net.minecraft.item.Items; -import net.minecraft.predicate.entity.EntityPredicate; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; - -import java.util.function.Consumer; - -public class Advancements implements Consumer> { - - @Override - public void accept(Consumer consumer) { - //main root advancement - Advancement rootAdvancement = Advancement.Builder.create().display(Items.DIAMOND, // The display icon - Text.translatable("advancements.ygasi.root.title"), // The title - Text.translatable("advancements.ygasi.root.description"), // The description - new Identifier("textures/block/sculk_catalyst_top.png"), // Background image used - AdvancementFrame.CHALLENGE, // Options: TASK, CHALLENGE, GOAL - true, // Show toast top right - false, // Announce to chat - false // Hidden in the advancement tab - ).criterion("opened_skill_menu", new ImpossibleCriterion.Conditions()).rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/root"); - - //branch advancements - Advancement mercenary = Advancement.Builder.create().parent(rootAdvancement) - .display(Items.DIAMOND_SWORD, Text.translatable("advancements.ygasi.mercenary.title"), Text.translatable("advancements.ygasi.mercenary.description"), null, AdvancementFrame.GOAL, false, false, false) - .criterion("unlocked_mercenary", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/mercenary"); - Advancement wizardry = Advancement.Builder.create().parent(rootAdvancement) - .display(Items.BLAZE_ROD, Text.translatable("advancements.ygasi.wizardry.title"), Text.translatable("advancements.ygasi.wizardry.description"), null, AdvancementFrame.GOAL, false, false, false) - .criterion("unlocked_wizardry", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/wizardry"); - Advancement druidry = Advancement.Builder.create().parent(rootAdvancement) - .display(Items.OAK_SAPLING, Text.translatable("advancements.ygasi.druidry.title"), Text.translatable("advancements.ygasi.druidry.description"), null, AdvancementFrame.GOAL, false, false, false) - .criterion("unlocked_druidry", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/druidry"); - Advancement extra = Advancement.Builder.create().parent(rootAdvancement) - .display(Items.EMERALD, Text.translatable("advancements.ygasi.extra.title"), Text.translatable("advancements.ygasi.extra.description"), null, AdvancementFrame.GOAL, false, false, false) - .criterion("unlocked_extra", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, rootAdvancement.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/extra"); - - //mercenary skills - - Advancement offence1 = Advancement.Builder.create().parent(mercenary) - .display(Items.IRON_SWORD, Text.translatable("advancements.ygasi.mercenary.offence1.title"), Text.translatable("advancements.ygasi.mercenary.offence1.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_offence1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, mercenary.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/offence1"); - Advancement offence2 = Advancement.Builder.create().parent(offence1) - .display(Items.IRON_SWORD, Text.translatable("advancements.ygasi.mercenary.offence2.title"), Text.translatable("advancements.ygasi.mercenary.offence2.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_offence2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, offence1.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/offence2"); - Advancement offence3 = Advancement.Builder.create().parent(offence2) - .display(Items.IRON_SWORD, Text.translatable("advancements.ygasi.mercenary.offence3.title"), Text.translatable("advancements.ygasi.mercenary.offence3.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_offence3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, offence2.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/offence3"); - - Advancement ninja1 = Advancement.Builder.create().parent(mercenary) - .display(Items.BAMBOO, Text.translatable("advancements.ygasi.mercenary.ninja1.title"), Text.translatable("advancements.ygasi.mercenary.ninja1.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_ninja1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, mercenary.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/ninja1"); - Advancement ninja2 = Advancement.Builder.create().parent(ninja1) - .display(Items.BAMBOO, Text.translatable("advancements.ygasi.mercenary.ninja2.title"), Text.translatable("advancements.ygasi.mercenary.ninja2.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_ninja2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, ninja1.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/ninja2"); - Advancement ninja3 = Advancement.Builder.create().parent(ninja2) - .display(Items.BAMBOO, Text.translatable("advancements.ygasi.mercenary.ninja3.title"), Text.translatable("advancements.ygasi.mercenary.ninja3.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_ninja3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, ninja2.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/ninja3"); - - Advancement defence1 = Advancement.Builder.create().parent(mercenary) - .display(Items.IRON_CHESTPLATE, Text.translatable("advancements.ygasi.mercenary.defence1.title"), Text.translatable("advancements.ygasi.mercenary.defence1.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_defence1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, mercenary.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/defence1"); - Advancement defence2 = Advancement.Builder.create().parent(defence1) - .display(Items.IRON_CHESTPLATE, Text.translatable("advancements.ygasi.mercenary.defence2.title"), Text.translatable("advancements.ygasi.mercenary.defence2.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_defence2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, defence1.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/defence2"); - Advancement defence3 = Advancement.Builder.create().parent(defence2) - .display(Items.IRON_CHESTPLATE, Text.translatable("advancements.ygasi.mercenary.defence3.title"), Text.translatable("advancements.ygasi.mercenary.defence3.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_defence3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, defence2.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/defence3"); - - //wizardry skills - - Advancement fight1 = Advancement.Builder.create().parent(wizardry) - .display(Items.BLAZE_POWDER, Text.translatable("advancements.ygasi.wizardry.fight1.title"), Text.translatable("advancements.ygasi.wizardry.fight1.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_fight1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, wizardry.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/fight1"); - Advancement fight2 = Advancement.Builder.create().parent(fight1) - .display(Items.BLAZE_POWDER, Text.translatable("advancements.ygasi.wizardry.fight2.title"), Text.translatable("advancements.ygasi.wizardry.fight2.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_fight2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, fight1.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/fight2"); - Advancement fight3 = Advancement.Builder.create().parent(fight2) - .display(Items.BLAZE_POWDER, Text.translatable("advancements.ygasi.wizardry.fight3.title"), Text.translatable("advancements.ygasi.wizardry.fight3.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_fight3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, fight2.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/fight3"); - - Advancement element1 = Advancement.Builder.create().parent(wizardry) - .display(Items.FIRE_CHARGE, Text.translatable("advancements.ygasi.wizardry.element1.title"), Text.translatable("advancements.ygasi.wizardry.element1.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_element1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, wizardry.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/element1"); - Advancement element2 = Advancement.Builder.create().parent(element1) - .display(Items.FIRE_CHARGE, Text.translatable("advancements.ygasi.wizardry.element2.title"), Text.translatable("advancements.ygasi.wizardry.element2.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_element2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, element1.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/element2"); - Advancement element3 = Advancement.Builder.create().parent(element2) - .display(Items.FIRE_CHARGE, Text.translatable("advancements.ygasi.wizardry.element3.title"), Text.translatable("advancements.ygasi.wizardry.element3.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_element3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, element2.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/element3"); - - Advancement force1 = Advancement.Builder.create().parent(wizardry) - .display(Items.ENDER_PEARL, Text.translatable("advancements.ygasi.wizardry.force1.title"), Text.translatable("advancements.ygasi.wizardry.force1.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_force1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, wizardry.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/force1"); - Advancement force2 = Advancement.Builder.create().parent(force1) - .display(Items.ENDER_PEARL, Text.translatable("advancements.ygasi.wizardry.force2.title"), Text.translatable("advancements.ygasi.wizardry.force2.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_force2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, force1.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/force2"); - Advancement force3 = Advancement.Builder.create().parent(force2) - .display(Items.ENDER_PEARL, Text.translatable("advancements.ygasi.wizardry.force3.title"), Text.translatable("advancements.ygasi.wizardry.force3.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_force3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, force2.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/force3"); - - //druidry skills - - Advancement necromancy1 = Advancement.Builder.create().parent(druidry) - .display(Items.BONE, Text.translatable("advancements.ygasi.druidry.necromancy1.title"), Text.translatable("advancements.ygasi.druidry.necromancy1.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_necromancy1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, druidry.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/necromancy1"); - Advancement necromancy2 = Advancement.Builder.create().parent(necromancy1) - .display(Items.BONE, Text.translatable("advancements.ygasi.druidry.necromancy2.title"), Text.translatable("advancements.ygasi.druidry.necromancy2.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_necromancy2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, necromancy1.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/necromancy2"); - Advancement necromancy3 = Advancement.Builder.create().parent(necromancy2) - .display(Items.BONE, Text.translatable("advancements.ygasi.druidry.necromancy3.title"), Text.translatable("advancements.ygasi.druidry.necromancy3.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_necromancy3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, necromancy2.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/necromancy3"); - - Advancement nature1 = Advancement.Builder.create().parent(druidry) - .display(Items.GRASS_BLOCK, Text.translatable("advancements.ygasi.druidry.nature1.title"), Text.translatable("advancements.ygasi.druidry.nature1.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_nature1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, druidry.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/nature1"); - Advancement nature2 = Advancement.Builder.create().parent(nature1) - .display(Items.GRASS_BLOCK, Text.translatable("advancements.ygasi.druidry.nature2.title"), Text.translatable("advancements.ygasi.druidry.nature2.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_nature2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, nature1.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/nature2"); - Advancement nature3 = Advancement.Builder.create().parent(nature2) - .display(Items.GRASS_BLOCK, Text.translatable("advancements.ygasi.druidry.nature3.title"), Text.translatable("advancements.ygasi.druidry.nature3.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_nature3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, nature2.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/nature3"); - - Advancement protean1 = Advancement.Builder.create().parent(druidry) - .display(Items.SLIME_BALL, Text.translatable("advancements.ygasi.druidry.protean1.title"), Text.translatable("advancements.ygasi.druidry.protean1.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_protean1", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, druidry.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/protean1"); - Advancement protean2 = Advancement.Builder.create().parent(protean1) - .display(Items.SLIME_BALL, Text.translatable("advancements.ygasi.druidry.protean2.title"), Text.translatable("advancements.ygasi.druidry.protean2.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_protean2", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, protean1.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/protean2"); - Advancement protean3 = Advancement.Builder.create().parent(protean2) - .display(Items.SLIME_BALL, Text.translatable("advancements.ygasi.druidry.protean3.title"), Text.translatable("advancements.ygasi.druidry.protean3.description"), null, AdvancementFrame.TASK, false, false, true) - .criterion("unlocked_protean3", new ImpossibleCriterion.Conditions()).criterion("gotten_previous", new AdvancementGottenCriterion.Conditions(EntityPredicate.Extended.EMPTY, protean2.getId())) - .rewards(AdvancementRewards.Builder.experience(1)).build(consumer, "ygasi" + "/protean3"); - - //extra - - } -} \ No newline at end of file diff --git a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/recipes/YgasiRecipes.java b/src/main/java/dev/mayaqq/ygasi/registry/dataGen/recipes/YgasiRecipes.java deleted file mode 100644 index 75afdfe..0000000 --- a/src/main/java/dev/mayaqq/ygasi/registry/dataGen/recipes/YgasiRecipes.java +++ /dev/null @@ -1,28 +0,0 @@ -package dev.mayaqq.ygasi.registry.dataGen.recipes; - -import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; -import net.minecraft.advancement.criterion.ImpossibleCriterion; -import net.minecraft.data.server.recipe.RecipeJsonProvider; -import net.minecraft.data.server.recipe.ShapelessRecipeJsonBuilder; -import net.minecraft.item.Items; -import net.minecraft.tag.ItemTags; - -import java.util.function.Consumer; - -import static dev.mayaqq.ygasi.Ygasi.SKILL_BOOK; - -public class YgasiRecipes extends FabricRecipeProvider { - public YgasiRecipes(FabricDataGenerator dataGenerator) { - super(dataGenerator); - } - - @Override - public void generateRecipes(Consumer exporter) { - ShapelessRecipeJsonBuilder.create(SKILL_BOOK) - .criterion("has_book", new ImpossibleCriterion.Conditions()) - .input(Items.BOOK) - .input(ItemTags.SAPLINGS) - .offerTo(exporter); - } -} \ No newline at end of file diff --git a/src/main/java/dev/mayaqq/ygasi/secrete/Frog.java b/src/main/java/dev/mayaqq/ygasi/secrete/Frog.java new file mode 100644 index 0000000..400d3ab --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/secrete/Frog.java @@ -0,0 +1,28 @@ +package dev.mayaqq.ygasi.secrete; + +import java.time.LocalDate; +import java.util.Base64; + +import static dev.mayaqq.ygasi.Ygasi.LOGGER; + +public class Frog { + //its a frog, frog in a blender! + public static void blender() { + String frog = "ICAgICAgICAgICBfX18KICAgX19fX19fX3xfX198X19fX19fCl9ffF9fX19fX19fX19fX19fX19fX3wKXCAgXV9fX19fX19fX19fX19fX19bIGAtLS0uIAogYC4gICAgICAgICAgICAgICAgICAgX19fICBMCiAgfCAgIF8gICAgICAgICAgICAgIHwgICBMIHwKICB8IC4nX2AtLS5fX18gICBfXyAgfCAgIHwgfCAgICAgIAogIHwoICdvYCAgIC0gLmAuJ18gKSB8ICAgRiBGICAgICAgIAogIHwgYC0uXyAgICAgIGBfYC4vXyB8ICAvIC8gICAgICAgICAKICBKICAgJy9cXCAgICAoIC4nLyApRi4nIC8KICAgTCAsX18vL2AtLS0nYC0nXy9KICAuJwogICBKICAvLScgICAgICAgICcvIEYuJwogICAgTCAgICAgICAgICAgICcgSicKICAgIEogYC5gLS4gLi0nLicgIEYKICAgICBMICBgLi0nLi0nICAgSgogICAgIHxfXyhfXyhfX18pX198CiAgICAgRiAgICAgICAgICAgIEoKICAgIEogICAgICAgICAgICAgIEwKICAgIHxfX19fX19fX19fX19fX3w="; + + if (LocalDate.now().getDayOfWeek().getValue() == 3) { + byte[] decodedBytes = Base64.getDecoder().decode(frog); + // Split the bytes into lines using the newline character + String[] lines = new String(decodedBytes).split("\n"); + // Print each line + for (String line : lines) { + LOGGER.info(line); + } + if (Math.random() < 0.5) { + LOGGER.info("It's wednesday my dudes"); + } else { + LOGGER.info("Blender is the best 3D software."); + } + } + } +} diff --git a/src/main/java/dev/mayaqq/ygasi/util/AdvUtils.java b/src/main/java/dev/mayaqq/ygasi/util/AdvUtils.java new file mode 100644 index 0000000..b2227fe --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/util/AdvUtils.java @@ -0,0 +1,51 @@ +package dev.mayaqq.ygasi.util; + +import net.minecraft.advancement.Advancement; +import net.minecraft.advancement.PlayerAdvancementTracker; +import net.minecraft.server.ServerAdvancementLoader; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.util.Identifier; + +import static dev.mayaqq.ygasi.Ygasi.LOGGER; + +public class AdvUtils { + public static void grantAdvancementCriterion(ServerPlayerEntity player, Identifier advancementIdentifier, String criterion) { + if (player.getServer() == null) { + return; + } + ServerAdvancementLoader sal = player.getServer().getAdvancementLoader(); + PlayerAdvancementTracker tracker = player.getAdvancementTracker(); + + Advancement advancement = sal.get(advancementIdentifier); + if (advancement == null) { + LOGGER.error("Trying to grant a criterion \"" + criterion + "\" for an advancement that does not exist: " + advancementIdentifier); + } else { + if (!tracker.getProgress(advancement).isDone()) { + tracker.grantCriterion(advancement, criterion); + } + } + } + + public static void revokeAllAdvancements(ServerPlayerEntity player, String namespace ,String path) { + if (player.getServer() == null) { + return; + } + ServerAdvancementLoader sal = player.getServer().getAdvancementLoader(); + PlayerAdvancementTracker tracker = player.getAdvancementTracker(); + + for (Advancement advancement : sal.getAdvancements()) { + if (advancement.getId().getNamespace().equals(namespace) && advancement.getId().getPath().startsWith(path)) { + for (String criterion : advancement.getCriteria().keySet()) { + tracker.revokeCriterion(advancement, criterion); + } + } + } + } + + public static boolean getAdvancementProgress(ServerPlayerEntity player, String namespace, String path) { + if (player.getServer() == null) { + return false; + } + return player.getAdvancementTracker().getProgress(player.getServer().getAdvancementLoader().get(new Identifier(namespace, path))).isDone(); + } +} \ No newline at end of file diff --git a/src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java b/src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java deleted file mode 100644 index 1c3b267..0000000 --- a/src/main/java/dev/mayaqq/ygasi/util/YgasiUtils.java +++ /dev/null @@ -1,52 +0,0 @@ -package dev.mayaqq.ygasi.util; - -import net.minecraft.advancement.Advancement; -import net.minecraft.advancement.PlayerAdvancementTracker; -import net.minecraft.server.ServerAdvancementLoader; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.util.Identifier; -import org.jetbrains.annotations.NotNull; - -import static dev.mayaqq.ygasi.Ygasi.LOGGER; - -public class YgasiUtils { - public static void grantAdvancementCriterion(@NotNull ServerPlayerEntity serverPlayerEntity, Identifier advancementIdentifier, String criterion) { - if (serverPlayerEntity.getServer() == null) { - return; - } - ServerAdvancementLoader sal = serverPlayerEntity.getServer().getAdvancementLoader(); - PlayerAdvancementTracker tracker = serverPlayerEntity.getAdvancementTracker(); - - Advancement advancement = sal.get(advancementIdentifier); - if (advancement == null) { - LOGGER.error("Trying to grant a criterion \"" + criterion + "\" for an advancement that does not exist: " + advancementIdentifier); - } else { - if (!tracker.getProgress(advancement).isDone()) { - tracker.grantCriterion(advancement, criterion); - } - } - } - - public static void revokeAllAdvancements(ServerPlayerEntity player, String namespace ,String path) { - if (player.getServer() == null) { - return; - } - ServerAdvancementLoader sal = player.getServer().getAdvancementLoader(); - PlayerAdvancementTracker tracker = player.getAdvancementTracker(); - - for (Advancement advancement : sal.getAdvancements()) { - if (advancement.getId().getNamespace().equals(namespace) && advancement.getId().getPath().startsWith(path)) { - for (String criterion : advancement.getCriteria().keySet()) { - tracker.revokeCriterion(advancement, criterion); - } - } - } - } - - public static boolean getAdvancementProgress(ServerPlayerEntity player, String namespace, String path) { - if (player.getServer() == null) { - return false; - } - return player.getAdvancementTracker().getProgress(player.getServer().getAdvancementLoader().get(new Identifier(namespace, path))).isDone(); - } -} \ No newline at end of file -- cgit