aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/mayaqq/ygasi/registry
diff options
context:
space:
mode:
authorMaximusbarcz <maxim.baranek@gmail.com>2022-10-07 18:19:35 +0200
committerMaximusbarcz <maxim.baranek@gmail.com>2022-10-07 18:19:35 +0200
commit445a582dd86896145eed4b4c3443cd627794703a (patch)
tree3d891743985bb1d170f351cd8779b1f880a9b091 /src/main/java/dev/mayaqq/ygasi/registry
parent7281ea4ee14d85215707d6700efa7cf28300db41 (diff)
downloadygasi-445a582dd86896145eed4b4c3443cd627794703a.tar.gz
ygasi-445a582dd86896145eed4b4c3443cd627794703a.tar.bz2
ygasi-445a582dd86896145eed4b4c3443cd627794703a.zip
Added Config Creating!
Diffstat (limited to 'src/main/java/dev/mayaqq/ygasi/registry')
-rw-r--r--src/main/java/dev/mayaqq/ygasi/registry/CommandRegistry.java50
-rw-r--r--src/main/java/dev/mayaqq/ygasi/registry/ConfigRegistry.java53
-rw-r--r--src/main/java/dev/mayaqq/ygasi/registry/StatRegistry.java12
3 files changed, 115 insertions, 0 deletions
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() {}
+}