diff options
author | Maximusbarcz <maxim.baranek@gmail.com> | 2022-10-07 18:19:35 +0200 |
---|---|---|
committer | Maximusbarcz <maxim.baranek@gmail.com> | 2022-10-07 18:19:35 +0200 |
commit | 445a582dd86896145eed4b4c3443cd627794703a (patch) | |
tree | 3d891743985bb1d170f351cd8779b1f880a9b091 /src/main/java/dev/mayaqq/ygasi/registry | |
parent | 7281ea4ee14d85215707d6700efa7cf28300db41 (diff) | |
download | ygasi-445a582dd86896145eed4b4c3443cd627794703a.tar.gz ygasi-445a582dd86896145eed4b4c3443cd627794703a.tar.bz2 ygasi-445a582dd86896145eed4b4c3443cd627794703a.zip |
Added Config Creating!
Diffstat (limited to 'src/main/java/dev/mayaqq/ygasi/registry')
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() {} +} |