From 445a582dd86896145eed4b4c3443cd627794703a Mon Sep 17 00:00:00 2001 From: Maximusbarcz Date: Fri, 7 Oct 2022 18:19:35 +0200 Subject: Added Config Creating! --- .../java/dev/mayaqq/ygasi/CommandRegistry.java | 50 -------------------- src/main/java/dev/mayaqq/ygasi/StatRegistry.java | 12 ----- .../java/dev/mayaqq/ygasi/config/ConfigData.java | 7 +++ src/main/java/dev/mayaqq/ygasi/config/ModData.java | 6 +++ .../ygasi/mixin/AdvancementRewardsMixin.java | 3 +- .../dev/mayaqq/ygasi/registry/CommandRegistry.java | 50 ++++++++++++++++++++ .../dev/mayaqq/ygasi/registry/ConfigRegistry.java | 53 ++++++++++++++++++++++ .../dev/mayaqq/ygasi/registry/StatRegistry.java | 12 +++++ src/main/java/dev/mayaqq/ygasi/ygasi.java | 6 +++ 9 files changed, 136 insertions(+), 63 deletions(-) delete mode 100644 src/main/java/dev/mayaqq/ygasi/CommandRegistry.java delete mode 100644 src/main/java/dev/mayaqq/ygasi/StatRegistry.java create mode 100644 src/main/java/dev/mayaqq/ygasi/config/ConfigData.java create mode 100644 src/main/java/dev/mayaqq/ygasi/config/ModData.java create mode 100644 src/main/java/dev/mayaqq/ygasi/registry/CommandRegistry.java create mode 100644 src/main/java/dev/mayaqq/ygasi/registry/ConfigRegistry.java create mode 100644 src/main/java/dev/mayaqq/ygasi/registry/StatRegistry.java (limited to 'src/main') diff --git a/src/main/java/dev/mayaqq/ygasi/CommandRegistry.java b/src/main/java/dev/mayaqq/ygasi/CommandRegistry.java deleted file mode 100644 index 47deb24..0000000 --- a/src/main/java/dev/mayaqq/ygasi/CommandRegistry.java +++ /dev/null @@ -1,50 +0,0 @@ -package dev.mayaqq.ygasi; - -import com.mojang.brigadier.arguments.IntegerArgumentType; -import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; -import net.minecraft.command.argument.EntityArgumentType; -import net.minecraft.server.command.CommandManager; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.stat.Stats; -import net.minecraft.text.Text; - -import static dev.mayaqq.ygasi.StatRegistry.SKILL_POINTS; -import static net.minecraft.server.command.CommandManager.literal; - -public class CommandRegistry { - public static void RegisterCommands() { - CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> dispatcher.register(literal("skilltree") - .executes(context -> { - context.getSource().sendMessage(Text.literal("Surely this opened a skilltree that is definitely implemented...")); - - return 1; - }))); - CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> dispatcher.register(literal("ygasi") - .requires(source -> source.hasPermissionLevel(4)) - .then(literal("reset") - .then(CommandManager.argument("target", EntityArgumentType.player()) - .executes(context -> { - ServerPlayerEntity player = EntityArgumentType.getPlayer(context, "target"); - player.resetStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)); - context.getSource().sendMessage(Text.literal("§aSkill Points reset to 0 for " + player.getEntityName() + ".")); - return 1; - }))) - .then(literal("add") - .then(CommandManager.argument("target", EntityArgumentType.player()) - .then(CommandManager.argument("amount", IntegerArgumentType.integer()) - .executes(context -> { - ServerPlayerEntity player = EntityArgumentType.getPlayer(context, "target"); - player.increaseStat(SKILL_POINTS, IntegerArgumentType.getInteger(context, "amount")); - context.getSource().sendMessage(Text.literal("§aSkill Points increased by " + IntegerArgumentType.getInteger(context, "amount") + " for " + player.getEntityName() + ".")); - return 1; - })))) - .then(literal("get") - .then(CommandManager.argument("target", EntityArgumentType.player()) - .executes(context -> { - ServerPlayerEntity player = EntityArgumentType.getPlayer(context, "target"); - context.getSource().sendMessage(Text.literal("§a" + player.getEntityName() + " has " + player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)) + " Unspent Skill Points.")); - return 1; - }))) - )); - } -} diff --git a/src/main/java/dev/mayaqq/ygasi/StatRegistry.java b/src/main/java/dev/mayaqq/ygasi/StatRegistry.java deleted file mode 100644 index 0b1c986..0000000 --- a/src/main/java/dev/mayaqq/ygasi/StatRegistry.java +++ /dev/null @@ -1,12 +0,0 @@ -package dev.mayaqq.ygasi; - -import eu.pb4.polymer.api.other.PolymerStat; -import net.minecraft.stat.StatFormatter; -import net.minecraft.util.Identifier; - - -public class StatRegistry { - public static Identifier SKILL_POINTS = PolymerStat.registerStat("skill_points", StatFormatter.DEFAULT); - - public static void skillRegister() {} -} diff --git a/src/main/java/dev/mayaqq/ygasi/config/ConfigData.java b/src/main/java/dev/mayaqq/ygasi/config/ConfigData.java new file mode 100644 index 0000000..9bd5aa5 --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/config/ConfigData.java @@ -0,0 +1,7 @@ +package dev.mayaqq.ygasi.config; + +public class ConfigData { + public String testString = "String"; + public boolean testBoolean = false; +} + diff --git a/src/main/java/dev/mayaqq/ygasi/config/ModData.java b/src/main/java/dev/mayaqq/ygasi/config/ModData.java new file mode 100644 index 0000000..0b5e38f --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/config/ModData.java @@ -0,0 +1,6 @@ +package dev.mayaqq.ygasi.config; + +public class ModData { + public String TestUUID = "UUID"; + public boolean testBoolean = false; +} diff --git a/src/main/java/dev/mayaqq/ygasi/mixin/AdvancementRewardsMixin.java b/src/main/java/dev/mayaqq/ygasi/mixin/AdvancementRewardsMixin.java index 8848d28..ad90451 100644 --- a/src/main/java/dev/mayaqq/ygasi/mixin/AdvancementRewardsMixin.java +++ b/src/main/java/dev/mayaqq/ygasi/mixin/AdvancementRewardsMixin.java @@ -1,5 +1,6 @@ package dev.mayaqq.ygasi.mixin; +import dev.mayaqq.ygasi.config.ConfigData; import net.minecraft.advancement.AdvancementRewards; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.util.Identifier; @@ -10,7 +11,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import static dev.mayaqq.ygasi.StatRegistry.SKILL_POINTS; +import static dev.mayaqq.ygasi.registry.StatRegistry.SKILL_POINTS; import static dev.mayaqq.ygasi.ygasi.LOGGER; @Mixin(AdvancementRewards.class) diff --git a/src/main/java/dev/mayaqq/ygasi/registry/CommandRegistry.java b/src/main/java/dev/mayaqq/ygasi/registry/CommandRegistry.java new file mode 100644 index 0000000..bf2d2af --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/registry/CommandRegistry.java @@ -0,0 +1,50 @@ +package dev.mayaqq.ygasi.registry; + +import com.mojang.brigadier.arguments.IntegerArgumentType; +import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; +import net.minecraft.command.argument.EntityArgumentType; +import net.minecraft.server.command.CommandManager; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.stat.Stats; +import net.minecraft.text.Text; + +import static dev.mayaqq.ygasi.registry.StatRegistry.SKILL_POINTS; +import static net.minecraft.server.command.CommandManager.literal; + +public class CommandRegistry { + public static void RegisterCommands() { + CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> dispatcher.register(literal("skilltree") + .executes(context -> { + context.getSource().sendMessage(Text.literal("Surely this opened a skilltree that is definitely implemented...")); + + return 1; + }))); + CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> dispatcher.register(literal("ygasi") + .requires(source -> source.hasPermissionLevel(4)) + .then(literal("reset") + .then(CommandManager.argument("target", EntityArgumentType.player()) + .executes(context -> { + ServerPlayerEntity player = EntityArgumentType.getPlayer(context, "target"); + player.resetStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)); + context.getSource().sendMessage(Text.literal("§aSkill Points reset to 0 for " + player.getEntityName() + ".")); + return 1; + }))) + .then(literal("add") + .then(CommandManager.argument("target", EntityArgumentType.player()) + .then(CommandManager.argument("amount", IntegerArgumentType.integer()) + .executes(context -> { + ServerPlayerEntity player = EntityArgumentType.getPlayer(context, "target"); + player.increaseStat(SKILL_POINTS, IntegerArgumentType.getInteger(context, "amount")); + context.getSource().sendMessage(Text.literal("§aSkill Points increased by " + IntegerArgumentType.getInteger(context, "amount") + " for " + player.getEntityName() + ".")); + return 1; + })))) + .then(literal("get") + .then(CommandManager.argument("target", EntityArgumentType.player()) + .executes(context -> { + ServerPlayerEntity player = EntityArgumentType.getPlayer(context, "target"); + context.getSource().sendMessage(Text.literal("§a" + player.getEntityName() + " has " + player.getStatHandler().getStat(Stats.CUSTOM.getOrCreateStat(SKILL_POINTS)) + " Unspent Skill Points.")); + return 1; + }))) + )); + } +} diff --git a/src/main/java/dev/mayaqq/ygasi/registry/ConfigRegistry.java b/src/main/java/dev/mayaqq/ygasi/registry/ConfigRegistry.java new file mode 100644 index 0000000..e7dd9d8 --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/registry/ConfigRegistry.java @@ -0,0 +1,53 @@ +package dev.mayaqq.ygasi.registry; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import dev.mayaqq.ygasi.config.ConfigData; +import dev.mayaqq.ygasi.config.ModData; + +import java.io.*; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.nio.file.*; + +import static dev.mayaqq.ygasi.ygasi.LOGGER; + +public class ConfigRegistry { + public static final Gson GSON = new GsonBuilder().setPrettyPrinting().disableHtmlEscaping().create(); + private static ConfigData CONFIG; + private static ModData DATA; + + public static ConfigData getConfig() { + return CONFIG; + } + + public static boolean loadConfig() { + boolean success = false; + Charset charSet = StandardCharsets.UTF_8; + + CONFIG = null; + try { + File configDir = Paths.get("", "config", "ygasi").toFile(); + File dataDir = Paths.get("", "config", "ygasi", "data").toFile(); + dataDir.mkdirs(); + File configFile = new File(configDir, "config.json"); + File dataFile = new File(dataDir, "data.json"); + + ConfigData configData = configFile.exists() ? GSON.fromJson(new InputStreamReader(new FileInputStream(configFile), charSet), ConfigData.class) : new ConfigData(); + ModData modData = dataFile.exists() ? GSON.fromJson(new InputStreamReader(new FileInputStream(dataFile), charSet), ModData.class) : new ModData(); + + CONFIG = new ConfigData(); + + BufferedWriter configWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(configFile), charSet)); + BufferedWriter dataWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(dataFile), charSet)); + dataWriter.write(GSON.toJson(modData)); + configWriter.write(GSON.toJson(configData)); + configWriter.close(); + dataWriter.close(); + } catch (IOException e ) { + LOGGER.error(String.valueOf(e)); + } + return success; + } + +} diff --git a/src/main/java/dev/mayaqq/ygasi/registry/StatRegistry.java b/src/main/java/dev/mayaqq/ygasi/registry/StatRegistry.java new file mode 100644 index 0000000..5d6d165 --- /dev/null +++ b/src/main/java/dev/mayaqq/ygasi/registry/StatRegistry.java @@ -0,0 +1,12 @@ +package dev.mayaqq.ygasi.registry; + +import eu.pb4.polymer.api.other.PolymerStat; +import net.minecraft.stat.StatFormatter; +import net.minecraft.util.Identifier; + + +public class StatRegistry { + public static Identifier SKILL_POINTS = PolymerStat.registerStat("skill_points", StatFormatter.DEFAULT); + + public static void skillRegister() {} +} diff --git a/src/main/java/dev/mayaqq/ygasi/ygasi.java b/src/main/java/dev/mayaqq/ygasi/ygasi.java index ab08648..91037d3 100644 --- a/src/main/java/dev/mayaqq/ygasi/ygasi.java +++ b/src/main/java/dev/mayaqq/ygasi/ygasi.java @@ -1,9 +1,14 @@ package dev.mayaqq.ygasi; +import dev.mayaqq.ygasi.registry.CommandRegistry; +import dev.mayaqq.ygasi.registry.ConfigRegistry; +import dev.mayaqq.ygasi.registry.StatRegistry; import net.fabricmc.api.ModInitializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.IOException; + public class ygasi implements ModInitializer { public static final Logger LOGGER = LoggerFactory.getLogger("ygasi"); @@ -11,6 +16,7 @@ public class ygasi implements ModInitializer { public void onInitialize() { StatRegistry.skillRegister(); CommandRegistry.RegisterCommands(); + ConfigRegistry.loadConfig(); LOGGER.info("You've got a skill issue!"); } } -- cgit