mirror of
https://github.com/BX-Team/DivineMC.git
synced 2025-12-22 08:19:19 +00:00
add config (useless now)
This commit is contained in:
249
patches/server/0002-Divine-Configuration.patch
Normal file
249
patches/server/0002-Divine-Configuration.patch
Normal file
@@ -0,0 +1,249 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: NONPLAY <admin@bxteam.gq>
|
||||||
|
Date: Sun, 8 Jan 2023 09:57:55 +0300
|
||||||
|
Subject: [PATCH] Divine Configuration
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
|
||||||
|
index 2cc44fbf8e5bd436b6d4e19f6c06b351e750cb31..d432f5e58508da9691861fa0f057a30be562697b 100644
|
||||||
|
--- a/src/main/java/co/aikar/timings/TimingsExport.java
|
||||||
|
+++ b/src/main/java/co/aikar/timings/TimingsExport.java
|
||||||
|
@@ -242,7 +242,8 @@ public class TimingsExport extends Thread {
|
||||||
|
pair("spigot", mapAsJSON(Bukkit.spigot().getSpigotConfig(), null)),
|
||||||
|
pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)),
|
||||||
|
pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)), // Pufferfish
|
||||||
|
- pair("pufferfish", mapAsJSON(gg.pufferfish.pufferfish.PufferfishConfig.getConfigCopy(), null)) // Pufferfish
|
||||||
|
+ pair("pufferfish", mapAsJSON(gg.pufferfish.pufferfish.PufferfishConfig.getConfigCopy(), null)), // Pufferfish // DivineMC
|
||||||
|
+ pair("divinemc", mapAsJSON(gq.bxteam.divinemc.DivineConfig.getConfigCopy(), null)) // DivineMC
|
||||||
|
));
|
||||||
|
|
||||||
|
new TimingsExport(listeners, parent, history).start();
|
||||||
|
diff --git a/src/main/java/gq/bxteam/divinemc/DivineCommand.java b/src/main/java/gq/bxteam/divinemc/DivineCommand.java
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..8bdd69d8712ac160b8dba2750b920f27231b3893
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/gq/bxteam/divinemc/DivineCommand.java
|
||||||
|
@@ -0,0 +1,68 @@
|
||||||
|
+package gq.bxteam.divinemc;
|
||||||
|
+
|
||||||
|
+import java.io.IOException;
|
||||||
|
+import java.util.Collections;
|
||||||
|
+import java.util.List;
|
||||||
|
+import java.util.stream.Collectors;
|
||||||
|
+import java.util.stream.Stream;
|
||||||
|
+import net.kyori.adventure.text.Component;
|
||||||
|
+import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
+import net.md_5.bungee.api.ChatColor;
|
||||||
|
+import net.minecraft.server.MinecraftServer;
|
||||||
|
+import org.bukkit.Bukkit;
|
||||||
|
+import org.bukkit.Location;
|
||||||
|
+import org.bukkit.command.Command;
|
||||||
|
+import org.bukkit.command.CommandSender;
|
||||||
|
+
|
||||||
|
+public class DivineCommand extends Command {
|
||||||
|
+
|
||||||
|
+ public DivineCommand() {
|
||||||
|
+ super("divinemc");
|
||||||
|
+ this.description = "DivineMC related commands";
|
||||||
|
+ this.usageMessage = "/divinemc [reload | version]";
|
||||||
|
+ this.setPermission("bukkit.command.divinemc");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static void init() {
|
||||||
|
+ MinecraftServer.getServer().server.getCommandMap().register("divinemc", "DivineMC", new DivineCommand());
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public List<String> tabComplete(CommandSender sender, String alias, String[] args, Location location) throws IllegalArgumentException {
|
||||||
|
+ if (args.length == 1) {
|
||||||
|
+ return Stream.of("reload", "version")
|
||||||
|
+ .filter(arg -> arg.startsWith(args[0].toLowerCase()))
|
||||||
|
+ .collect(Collectors.toList());
|
||||||
|
+ }
|
||||||
|
+ return Collections.emptyList();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ @Override
|
||||||
|
+ public boolean execute(CommandSender sender, String commandLabel, String[] args) {
|
||||||
|
+ if (!testPermission(sender)) return true;
|
||||||
|
+ String prefix = ChatColor.of("#12fff6") + "" + ChatColor.BOLD + "DivineMC » " + ChatColor.of("#e8f9f9");
|
||||||
|
+
|
||||||
|
+ if (args.length != 1) {
|
||||||
|
+ sender.sendMessage(prefix + "Usage: " + usageMessage);
|
||||||
|
+ args = new String[]{"version"};
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (args[0].equalsIgnoreCase("reload")) {
|
||||||
|
+ MinecraftServer console = MinecraftServer.getServer();
|
||||||
|
+ try {
|
||||||
|
+ DivineConfig.load();
|
||||||
|
+ } catch (IOException e) {
|
||||||
|
+ sender.sendMessage(Component.text("Failed to reload.", NamedTextColor.RED));
|
||||||
|
+ e.printStackTrace();
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
+ console.server.reloadCount++;
|
||||||
|
+
|
||||||
|
+ Command.broadcastCommandMessage(sender, prefix + "DivineMC configuration has been reloaded.");
|
||||||
|
+ } else if (args[0].equalsIgnoreCase("version")) {
|
||||||
|
+ Command.broadcastCommandMessage(sender, prefix + "This server is running " + Bukkit.getName() + " version " + Bukkit.getVersion() + " (Implementing API version " + Bukkit.getBukkitVersion() + ")");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
\ No newline at end of file
|
||||||
|
diff --git a/src/main/java/gq/bxteam/divinemc/DivineConfig.java b/src/main/java/gq/bxteam/divinemc/DivineConfig.java
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000000000000000000000000000000000000..541acfc832fe4caa13b5fb46bc455fc6a7294af8
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/main/java/gq/bxteam/divinemc/DivineConfig.java
|
||||||
|
@@ -0,0 +1,134 @@
|
||||||
|
+package gq.bxteam.divinemc;
|
||||||
|
+
|
||||||
|
+import java.io.File;
|
||||||
|
+import java.io.IOException;
|
||||||
|
+import java.lang.reflect.Method;
|
||||||
|
+import java.lang.reflect.Modifier;
|
||||||
|
+import java.util.List;
|
||||||
|
+import net.minecraft.server.MinecraftServer;
|
||||||
|
+import org.apache.logging.log4j.Level;
|
||||||
|
+import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
+import org.bukkit.configuration.MemoryConfiguration;
|
||||||
|
+import org.jetbrains.annotations.Nullable;
|
||||||
|
+import org.simpleyaml.configuration.comments.CommentType;
|
||||||
|
+import org.simpleyaml.configuration.file.YamlFile;
|
||||||
|
+import org.simpleyaml.exceptions.InvalidConfigurationException;
|
||||||
|
+
|
||||||
|
+public class DivineConfig {
|
||||||
|
+
|
||||||
|
+ private static final YamlFile config = new YamlFile();
|
||||||
|
+ private static int updates = 0;
|
||||||
|
+
|
||||||
|
+ private static ConfigurationSection convertToBukkit(org.simpleyaml.configuration.ConfigurationSection section) {
|
||||||
|
+ ConfigurationSection newSection = new MemoryConfiguration();
|
||||||
|
+ for (String key : section.getKeys(false)) {
|
||||||
|
+ if (section.isConfigurationSection(key)) {
|
||||||
|
+ newSection.set(key, convertToBukkit(section.getConfigurationSection(key)));
|
||||||
|
+ } else {
|
||||||
|
+ newSection.set(key, section.get(key));
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ return newSection;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static ConfigurationSection getConfigCopy() {
|
||||||
|
+ return convertToBukkit(config);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static int getUpdates() {
|
||||||
|
+ return updates;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ public static void load() throws IOException {
|
||||||
|
+ File configFile = new File("divinemc.yml");
|
||||||
|
+
|
||||||
|
+ if (configFile.exists()) {
|
||||||
|
+ try {
|
||||||
|
+ config.load(configFile);
|
||||||
|
+ } catch (InvalidConfigurationException e) {
|
||||||
|
+ throw new IOException(e);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ getString("info.version", "1.0");
|
||||||
|
+ setComment("info",
|
||||||
|
+ "DivineMC Configuration",
|
||||||
|
+ "Join our Discord at https://discord.gg/p7cxhw7E2M",
|
||||||
|
+ "Download new builds at https://github.com/DivineMC/DivineMC/releases/latest");
|
||||||
|
+
|
||||||
|
+ for (Method method : DivineConfig.class.getDeclaredMethods()) {
|
||||||
|
+ if (Modifier.isStatic(method.getModifiers()) && Modifier.isPrivate(method.getModifiers()) && method.getParameterCount() == 0 &&
|
||||||
|
+ method.getReturnType() == Void.TYPE && !method.getName().startsWith("lambda")) {
|
||||||
|
+ method.setAccessible(true);
|
||||||
|
+ try {
|
||||||
|
+ method.invoke(null);
|
||||||
|
+ } catch (Throwable t) {
|
||||||
|
+ MinecraftServer.LOGGER.warn("Failed to load configuration option from " + method.getName(), t);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ updates++;
|
||||||
|
+
|
||||||
|
+ config.save(configFile);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static void setComment(String key, String... comment) {
|
||||||
|
+ if (config.contains(key)) {
|
||||||
|
+ config.setComment(key, String.join("\n", comment), CommentType.BLOCK);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static void ensureDefault(String key, Object defaultValue, String... comment) {
|
||||||
|
+ if (!config.contains(key)) {
|
||||||
|
+ config.set(key, defaultValue);
|
||||||
|
+ config.setComment(key, String.join("\n", comment), CommentType.BLOCK);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static boolean getBoolean(String key, boolean defaultValue, String... comment) {
|
||||||
|
+ return getBoolean(key, null, defaultValue, comment);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static boolean getBoolean(String key, @Nullable String oldKey, boolean defaultValue, String... comment) {
|
||||||
|
+ ensureDefault(key, defaultValue, comment);
|
||||||
|
+ return config.getBoolean(key, defaultValue);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static int getInt(String key, int defaultValue, String... comment) {
|
||||||
|
+ return getInt(key, null, defaultValue, comment);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static int getInt(String key, @Nullable String oldKey, int defaultValue, String... comment) {
|
||||||
|
+ ensureDefault(key, defaultValue, comment);
|
||||||
|
+ return config.getInt(key, defaultValue);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static double getDouble(String key, double defaultValue, String... comment) {
|
||||||
|
+ return getDouble(key, null, defaultValue, comment);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static double getDouble(String key, @Nullable String oldKey, double defaultValue, String... comment) {
|
||||||
|
+ ensureDefault(key, defaultValue, comment);
|
||||||
|
+ return config.getDouble(key, defaultValue);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static String getString(String key, String defaultValue, String... comment) {
|
||||||
|
+ return getOldString(key, null, defaultValue, comment);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static String getOldString(String key, @Nullable String oldKey, String defaultValue, String... comment) {
|
||||||
|
+ ensureDefault(key, defaultValue, comment);
|
||||||
|
+ return config.getString(key, defaultValue);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static List<String> getStringList(String key, List<String> defaultValue, String... comment) {
|
||||||
|
+ return getStringList(key, null, defaultValue, comment);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ private static List<String> getStringList(String key, @Nullable String oldKey, List<String> defaultValue, String... comment) {
|
||||||
|
+ ensureDefault(key, defaultValue, comment);
|
||||||
|
+ return config.getStringList(key);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+}
|
||||||
|
\ No newline at end of file
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
|
index 673fb3955291407be37dc78be4eec9bf2018128b..f7934ce8a62404d7eaee2d334317d894e7c9ad05 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
|
@@ -223,6 +223,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
|
// Paper end
|
||||||
|
gg.pufferfish.pufferfish.PufferfishConfig.load(); // Pufferfish
|
||||||
|
gg.pufferfish.pufferfish.PufferfishCommand.init(); // Pufferfish
|
||||||
|
+ gq.bxteam.divinemc.DivineConfig.load(); // DivineMC
|
||||||
|
+ gq.bxteam.divinemc.DivineCommand.init(); // DivineMC
|
||||||
|
|
||||||
|
this.setPvpAllowed(dedicatedserverproperties.pvp);
|
||||||
|
this.setFlightAllowed(dedicatedserverproperties.allowFlight);
|
||||||
@@ -7,7 +7,7 @@ Original code by YatopiaMC, licensed under MIT
|
|||||||
You can find the original code on https://github.com/YatopiaMC/Yatopia
|
You can find the original code on https://github.com/YatopiaMC/Yatopia
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
index c0b599b1835d28ddda3690b29f29bd8c6f03e215..0c491a991d329569f1372ea431640513172fdfeb 100644
|
index 8961310c0789c4dd95a729ecc0b8dbf8d701ffc4..d82912b4ff8325b4c3460171b0204597fdbfbb21 100644
|
||||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||||
@@ -689,13 +689,19 @@ public abstract class PlayerList {
|
@@ -689,13 +689,19 @@ public abstract class PlayerList {
|
||||||
@@ -7,10 +7,10 @@ Original code by Titaniumtown, licensed under GNU General Public License v3.0
|
|||||||
You can find the original code on https://gitlab.com/Titaniumtown/JettPack
|
You can find the original code on https://gitlab.com/Titaniumtown/JettPack
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
index 673fb3955291407be37dc78be4eec9bf2018128b..d3497d4cc2e9587e64c1dac3b3b2b94cd3590c07 100644
|
index f7934ce8a62404d7eaee2d334317d894e7c9ad05..41017d870814f5e6c1d686d56b195b19574a504c 100644
|
||||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||||
@@ -386,7 +386,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
@@ -388,7 +388,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||||
BufferedWriter bufferedwriter = Files.newBufferedWriter(file);
|
BufferedWriter bufferedwriter = Files.newBufferedWriter(file);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -9,7 +9,7 @@ Original code by RelativityMC, licensed under MIT
|
|||||||
You can find the original code on https://github.com/RelativityMC/VMP-fabric (Yarn mappings)
|
You can find the original code on https://github.com/RelativityMC/VMP-fabric (Yarn mappings)
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 6a9c0f0b4b749c5907a274d6a83254284d8763bb..323c032506c94abdf20104123f511e0ab4163f8d 100644
|
index 3073b34a0e0281b6b0330721bb0440147de28511..f150d57ed1acc8423e86b1345ad3e1091c73ba95 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -299,6 +299,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -299,6 +299,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
@@ -9,7 +9,7 @@ Original license: GNU Lesser General Public License v3.0
|
|||||||
Original project: https://github.com/CaffeineMC/lithium-fabric (Yarn mappings)
|
Original project: https://github.com/CaffeineMC/lithium-fabric (Yarn mappings)
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 323c032506c94abdf20104123f511e0ab4163f8d..5b657b72132ee7d01dd9b3ac15147bbec3551d3a 100644
|
index f150d57ed1acc8423e86b1345ad3e1091c73ba95..49537da22dfc5f99edd64fbe351987ecb5ff4826 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -2610,39 +2610,64 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -2610,39 +2610,64 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: foss-mc <69294560+foss-mc@users.noreply.github.com>
|
|
||||||
Date: Thu, 1 Jul 2021 12:11:49 +0000
|
|
||||||
Subject: [PATCH] Make a field final
|
|
||||||
|
|
||||||
Original code by PatinaMC, licensed under GNU General Public License v3.0
|
|
||||||
You can find the original code on https://github.com/PatinaMC/Patina
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java
|
|
||||||
index e0dd0fc1638377f4d4226d4b2976b901d635dff0..e75a428ff261a52b8d5f72d5c46437feef5b8ac4 100644
|
|
||||||
--- a/src/main/java/net/minecraft/commands/CommandSourceStack.java
|
|
||||||
+++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java
|
|
||||||
@@ -59,7 +59,7 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy
|
|
||||||
private final Vec2 rotation;
|
|
||||||
private final CommandSigningContext signingContext;
|
|
||||||
private final TaskChainer chatMessageChainer;
|
|
||||||
- public java.util.Map<Thread, CommandNode> currentCommand = new java.util.concurrent.ConcurrentHashMap<>(); // CraftBukkit // Paper
|
|
||||||
+ public final java.util.Map<Thread, CommandNode> currentCommand = new java.util.concurrent.ConcurrentHashMap<>(); // CraftBukkit // Paper // Patina - make a field final
|
|
||||||
|
|
||||||
public CommandSourceStack(CommandSource output, Vec3 pos, Vec2 rot, ServerLevel world, int level, String name, Component displayName, MinecraftServer server, @Nullable Entity entity) {
|
|
||||||
this(output, pos, rot, world, level, name, displayName, server, entity, false, (commandcontext, flag, j) -> {
|
|
||||||
Reference in New Issue
Block a user