feat(pre): add config query and set function basic dependencies

refactor: update nightcore-config and move up config @interfaces
This commit is contained in:
Helvetica Volubi
2025-06-03 00:31:37 +08:00
parent e963af5628
commit 7bc857b294
55 changed files with 305 additions and 207 deletions

View File

@@ -54,7 +54,7 @@
dependencies { dependencies {
- implementation(project(":folia-api")) - implementation(project(":folia-api"))
+ implementation(project(":luminol-api")) // Luminol + implementation(project(":luminol-api")) // Luminol
+ implementation("com.electronwill.night-config:toml:3.6.6") // Luminol - Night config + implementation("com.electronwill.night-config:toml:3.8.2") // Luminol - Night config
+ // Abomination start + // Abomination start
+ implementation("com.github.luben:zstd-jni:1.5.4-1") + implementation("com.github.luben:zstd-jni:1.5.4-1")
+ implementation("org.lz4:lz4-java:1.8.0") + implementation("org.lz4:lz4-java:1.8.0")

View File

@@ -1,6 +1,6 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/commands/LuminolConfigCommand.java +++ b/src/main/java/me/earthme/luminol/commands/LuminolConfigCommand.java
@@ -1,0 +_,70 @@ @@ -1,0 +_,80 @@
+package me.earthme.luminol.commands; +package me.earthme.luminol.commands;
+ +
+import me.earthme.luminol.config.LuminolConfig; +import me.earthme.luminol.config.LuminolConfig;
@@ -28,7 +28,9 @@
+ final List<String> result = new ArrayList<>(); + final List<String> result = new ArrayList<>();
+ +
+ if (args.length == 1) { + if (args.length == 1) {
+ result.add("reload"); + result.add("query");
+ // result.add("set"); // TODO Later
+ // result.add("reload"); // TODO Later
+ } + }
+ +
+ return result; + return result;
@@ -61,6 +63,14 @@
+ )); + ));
+ } + }
+ +
+ case "set" -> {
+ // TODO Later
+ }
+
+ case "query" -> {
+ // TODO Later
+ }
+
+ default -> sender.sendMessage( + default -> sender.sendMessage(
+ Component + Component
+ .text("Unknown action!\n") + .text("Unknown action!\n")

View File

@@ -1,15 +1,12 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/commands/TpsBarCommand.java +++ b/src/main/java/me/earthme/luminol/commands/TpsBarCommand.java
@@ -1,0 +_,50 @@ @@ -1,0 +_,47 @@
+package me.earthme.luminol.commands; +package me.earthme.luminol.commands;
+ +
+import me.earthme.luminol.config.modules.misc.TpsBarConfig; +import me.earthme.luminol.config.modules.misc.TpsBarConfig;
+import me.earthme.luminol.functions.GlobalServerTpsBar; +import me.earthme.luminol.functions.GlobalServerTpsBar;
+import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.format.TextColor; +import net.kyori.adventure.text.format.TextColor;
+import net.kyori.adventure.util.RGBLike;
+import org.bukkit.ChatColor;
+import org.bukkit.Color;
+import org.bukkit.command.Command; +import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender; +import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player; +import org.bukkit.entity.Player;

View File

@@ -1,6 +1,6 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/config/IConfigModule.java +++ b/src/main/java/me/earthme/luminol/config/IConfigModule.java
@@ -1,0 +_,22 @@ @@ -1,0 +_,23 @@
+package me.earthme.luminol.config; +package me.earthme.luminol.config;
+ +
+import com.electronwill.nightconfig.core.file.CommentedFileConfig; +import com.electronwill.nightconfig.core.file.CommentedFileConfig;
@@ -12,7 +12,8 @@
+ +
+ String getBaseName(); + String getBaseName();
+ +
+ default void onLoaded(CommentedFileConfig configInstance) {} + default void onLoaded(CommentedFileConfig configInstance) {
+ }
+ +
+ default <T> T get(String keyName, T defaultValue, @NotNull CommentedFileConfig config) { + default <T> T get(String keyName, T defaultValue, @NotNull CommentedFileConfig config) {
+ if (!config.contains(keyName)) { + if (!config.contains(keyName)) {

View File

@@ -1,12 +1,17 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/config/LuminolConfig.java +++ b/src/main/java/me/earthme/luminol/config/LuminolConfig.java
@@ -1,0 +_,275 @@ @@ -1,0 +_,351 @@
+package me.earthme.luminol.config; +package me.earthme.luminol.config;
+ +
+import com.electronwill.nightconfig.core.CommentedConfig;
+import com.electronwill.nightconfig.core.UnmodifiableConfig; +import com.electronwill.nightconfig.core.UnmodifiableConfig;
+import com.electronwill.nightconfig.core.file.CommentedFileConfig; +import com.electronwill.nightconfig.core.file.CommentedFileConfig;
+import io.papermc.paper.threadedregions.RegionizedServer; +import io.papermc.paper.threadedregions.RegionizedServer;
+import me.earthme.luminol.commands.LuminolConfigCommand; +import me.earthme.luminol.commands.LuminolConfigCommand;
+import me.earthme.luminol.config.flags.ConfigInfo;
+import me.earthme.luminol.config.flags.DoNotLoad;
+import me.earthme.luminol.config.flags.HotReloadUnsupported;
+import me.earthme.luminol.config.flags.TransformedConfig;
+import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.Logger;
+import org.bukkit.Bukkit; +import org.bukkit.Bukkit;
@@ -80,7 +85,7 @@
+ baseConfigFile.createNewFile(); + baseConfigFile.createNewFile();
+ } + }
+ +
+ configFileInstance = CommentedFileConfig.ofConcurrent(baseConfigFile); + configFileInstance = CommentedFileConfig.of(baseConfigFile);
+ +
+ configFileInstance.load(); + configFileInstance.load();
+ +
@@ -197,6 +202,77 @@
+ } + }
+ } + }
+ +
+ public static boolean setConfigAndSave(String[] keys, Object value) {
+ return setConfigAndSave(String.join(".", keys), value);
+ }
+
+ public static boolean setConfigAndSave(String key, Object value) {
+ if (setConfig(key, value)) {
+ saveConfig();
+ return true;
+ }
+ return false;
+ }
+
+ public static boolean setConfig(String[] keys, Object value) {
+ return setConfig(String.join(".", keys), value);
+ }
+
+ public static boolean setConfig(String key, Object value) {
+ if (configFileInstance.contains(key) && configFileInstance.get(key) != null) {
+ configFileInstance.set(key, value);
+ return true;
+ }
+ return false;
+ }
+
+ public static void saveConfig() {
+ configFileInstance.save();
+ }
+
+ public static void resetConfig(String[] keys) {
+ resetConfig(String.join(".", keys));
+ }
+
+ public static void resetConfig(String key) {
+ configFileInstance.remove(key);
+ configFileInstance.save();
+ reload();
+ }
+
+ public static String getConfig(String[] keys) {
+ return getConfig(String.join(".", keys));
+ }
+
+ public static String getConfig(String key) {
+ return configFileInstance.get(key);
+ }
+
+ public List<String> getAllConfigPaths(String prefix) {
+ List<String> configPaths = getAllConfigPaths();
+ return configPaths.stream().filter(path -> path.startsWith(prefix)).toList();
+ }
+
+ public static List<String> getAllConfigPaths() {
+ List<String> configPaths = new ArrayList<>();
+ getAllConfigPathsRecursive(configFileInstance, "", configPaths);
+ return configPaths;
+ }
+
+ private static void getAllConfigPathsRecursive(CommentedConfig config, String currentPath, List<String> configPaths) {
+ for (CommentedConfig.Entry entry : config.entrySet()) {
+ String key = entry.getKey();
+ Object value = entry.getValue();
+ String fullPath = currentPath.isEmpty() ? key : currentPath + "." + key;
+
+ if (value instanceof CommentedConfig) {
+ getAllConfigPathsRecursive((CommentedConfig) value, fullPath, configPaths);
+ } else {
+ configPaths.add(fullPath);
+ }
+ }
+ }
+
+ public static @NotNull Set<Class<?>> getClasses(String pack) { + public static @NotNull Set<Class<?>> getClasses(String pack) {
+ Set<Class<?>> classes = new LinkedHashSet<>(); + Set<Class<?>> classes = new LinkedHashSet<>();
+ String packageDirName = pack.replace('.', '/'); + String packageDirName = pack.replace('.', '/');

View File

@@ -1,7 +1,7 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/config/ConfigInfo.java +++ b/src/main/java/me/earthme/luminol/config/flags/ConfigInfo.java
@@ -1,0 +_,11 @@ @@ -1,0 +_,11 @@
+package me.earthme.luminol.config; +package me.earthme.luminol.config.flags;
+ +
+import java.lang.annotation.Retention; +import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.RetentionPolicy;

View File

@@ -1,7 +1,7 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/config/DoNotLoad.java +++ b/src/main/java/me/earthme/luminol/config/flags/DoNotLoad.java
@@ -1,0 +_,8 @@ @@ -1,0 +_,8 @@
+package me.earthme.luminol.config; +package me.earthme.luminol.config.flags;
+ +
+import java.lang.annotation.Retention; +import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.RetentionPolicy;

View File

@@ -1,7 +1,7 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/config/HotReloadUnsupported.java +++ b/src/main/java/me/earthme/luminol/config/flags/HotReloadUnsupported.java
@@ -1,0 +_,8 @@ @@ -1,0 +_,8 @@
+package me.earthme.luminol.config; +package me.earthme.luminol.config.flags;
+ +
+import java.lang.annotation.Retention; +import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.RetentionPolicy;

View File

@@ -1,7 +1,9 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/config/TransformedConfig.java +++ b/src/main/java/me/earthme/luminol/config/flags/TransformedConfig.java
@@ -1,0 +_,24 @@ @@ -1,0 +_,26 @@
+package me.earthme.luminol.config; +package me.earthme.luminol.config.flags;
+
+import me.earthme.luminol.config.DefaultTransformLogic;
+ +
+import java.lang.annotation.Repeatable; +import java.lang.annotation.Repeatable;
+import java.lang.annotation.Retention; +import java.lang.annotation.Retention;

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.experiment; +package me.earthme.luminol.config.modules.experiment;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class CommandBlockConfig implements IConfigModule { +public class CommandBlockConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enable") + @ConfigInfo(baseName = "enable")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.experiment; +package me.earthme.luminol.config.modules.experiment;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class CommandDataConfig implements IConfigModule { +public class CommandDataConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enable") + @ConfigInfo(baseName = "enable")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,22 @@ @@ -1,0 +_,22 @@
+package me.earthme.luminol.config.modules.experiment; +package me.earthme.luminol.config.modules.experiment;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class CommandTickConfig implements IConfigModule { +public class CommandTickConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled", comments = + @ConfigInfo(baseName = "enabled", comments =

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.experiment; +package me.earthme.luminol.config.modules.experiment;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class DisableAsyncCatcherConfig implements IConfigModule { +public class DisableAsyncCatcherConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.experiment; +package me.earthme.luminol.config.modules.experiment;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class DisableEntityCatchConfig implements IConfigModule { +public class DisableEntityCatchConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -3,10 +3,10 @@
@@ -1,0 +_,24 @@ @@ -1,0 +_,24 @@
+package me.earthme.luminol.config.modules.experiment; +package me.earthme.luminol.config.modules.experiment;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.TransformedConfig; +import me.earthme.luminol.config.flags.ConfigInfo;
+import me.earthme.luminol.config.flags.TransformedConfig;
+ +
+public class EntityDamageSourceTraceConfig implements IConfigModule { +public class EntityDamageSourceTraceConfig implements IConfigModule {
+ @TransformedConfig(name = "enabled", category = {"experiment", "entity-damage-source-trace"}) + @TransformedConfig(name = "enabled", category = {"experiment", "entity-damage-source-trace"})

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,28 @@ @@ -1,0 +_,28 @@
+package me.earthme.luminol.config.modules.experiment; +package me.earthme.luminol.config.modules.experiment;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class RayTrackingEntityTrackerConfig implements IConfigModule { +public class RayTrackingEntityTrackerConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,28 @@ @@ -1,0 +_,28 @@
+package me.earthme.luminol.config.modules.fixes; +package me.earthme.luminol.config.modules.fixes;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class FoliaEntityMovingFixConfig implements IConfigModule { +public class FoliaEntityMovingFixConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled", comments = + @ConfigInfo(baseName = "enabled", comments =

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,25 @@ @@ -1,0 +_,25 @@
+package me.earthme.luminol.config.modules.fixes; +package me.earthme.luminol.config.modules.fixes;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class FoliaPOIAccessOffRegionFixConfig implements IConfigModule { +public class FoliaPOIAccessOffRegionFixConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled", comments = + @ConfigInfo(baseName = "enabled", comments =

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,22 @@ @@ -1,0 +_,22 @@
+package me.earthme.luminol.config.modules.fixes; +package me.earthme.luminol.config.modules.fixes;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class ForceCleanupEntityBrainMemoryConfig implements IConfigModule { +public class ForceCleanupEntityBrainMemoryConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled_for_entity", comments = "When enabled, the entity's brain will clean the memory which is typed of entity and not belong to current tickregion") + @ConfigInfo(baseName = "enabled_for_entity", comments = "When enabled, the entity's brain will clean the memory which is typed of entity and not belong to current tickregion")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,22 @@ @@ -1,0 +_,22 @@
+package me.earthme.luminol.config.modules.fixes; +package me.earthme.luminol.config.modules.fixes;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class UnsafeTeleportationConfig implements IConfigModule { +public class UnsafeTeleportationConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled", comments = "Allow non player entities enter end portals if enabled.\n" + + @ConfigInfo(baseName = "enabled", comments = "Allow non player entities enter end portals if enabled.\n" +

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.fixes; +package me.earthme.luminol.config.modules.fixes;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class VanillaRandomSourceConfig implements IConfigModule { +public class VanillaRandomSourceConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enable_for_player_entity", comments = "Related with RNG cracks") + @ConfigInfo(baseName = "enable_for_player_entity", comments = "Related with RNG cracks")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,27 @@ @@ -1,0 +_,27 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class ContainerExpansionConfig implements IConfigModule { +public class ContainerExpansionConfig implements IConfigModule {
+ @ConfigInfo(baseName = "barrel_rows", comments = + @ConfigInfo(baseName = "barrel_rows", comments =

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,23 @@ @@ -1,0 +_,23 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class DisableEndCrystalCheckConfig implements IConfigModule { +public class DisableEndCrystalCheckConfig implements IConfigModule {
+ @ConfigInfo(baseName = "disable_end_crystal_check", comments = + @ConfigInfo(baseName = "disable_end_crystal_check", comments =

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,22 @@ @@ -1,0 +_,22 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class DisableHeightmapWarnConfig implements IConfigModule { +public class DisableHeightmapWarnConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled", comments = + @ConfigInfo(baseName = "enabled", comments =

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class DisableMovedWronglyThreshold implements IConfigModule { +public class DisableMovedWronglyThreshold implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class FoliaWatchogConfig implements IConfigModule { +public class FoliaWatchogConfig implements IConfigModule {
+ @ConfigInfo(baseName = "tick_region_time_out_ms") + @ConfigInfo(baseName = "tick_region_time_out_ms")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class InorderChatConfig implements IConfigModule { +public class InorderChatConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -5,10 +5,10 @@
+ +
+import com.electronwill.nightconfig.core.file.CommentedFileConfig; +import com.electronwill.nightconfig.core.file.CommentedFileConfig;
+import me.earthme.luminol.commands.MembarCommand; +import me.earthme.luminol.commands.MembarCommand;
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.DoNotLoad;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+import me.earthme.luminol.config.flags.DoNotLoad;
+import me.earthme.luminol.functions.GlobalServerMemoryBar; +import me.earthme.luminol.functions.GlobalServerMemoryBar;
+import org.bukkit.Bukkit; +import org.bukkit.Bukkit;
+ +

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class OfflineModeWarningConfig implements IConfigModule { +public class OfflineModeWarningConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,21 @@ @@ -1,0 +_,21 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class PublickeyVerifyConfig implements IConfigModule { +public class PublickeyVerifyConfig implements IConfigModule {
+ +

View File

@@ -3,10 +3,10 @@
@@ -1,0 +_,61 @@ @@ -1,0 +_,61 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.TransformedConfig; +import me.earthme.luminol.config.flags.ConfigInfo;
+import me.earthme.luminol.config.flags.TransformedConfig;
+ +
+public class RaidChangesConfig implements IConfigModule { +public class RaidChangesConfig implements IConfigModule {
+ @TransformedConfig(name = "allow-bad-omen-trigger-raid", category = {"misc", "revert-raid-changes"}) + @TransformedConfig(name = "allow-bad-omen-trigger-raid", category = {"misc", "revert-raid-changes"})

View File

@@ -5,10 +5,10 @@
+ +
+import com.electronwill.nightconfig.core.file.CommentedFileConfig; +import com.electronwill.nightconfig.core.file.CommentedFileConfig;
+import me.earthme.luminol.commands.RegionBarCommand; +import me.earthme.luminol.commands.RegionBarCommand;
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.DoNotLoad;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+import me.earthme.luminol.config.flags.DoNotLoad;
+import me.earthme.luminol.functions.GlobalServerRegionBar; +import me.earthme.luminol.functions.GlobalServerRegionBar;
+import org.bukkit.Bukkit; +import org.bukkit.Bukkit;
+ +

View File

@@ -1,11 +1,15 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/config/modules/misc/RegionFormatConfig.java +++ b/src/main/java/me/earthme/luminol/config/modules/misc/RegionFormatConfig.java
@@ -1,0 +_,59 @@ @@ -1,0 +_,63 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import abomination.LinearRegionFile; +import abomination.LinearRegionFile;
+import com.electronwill.nightconfig.core.file.CommentedFileConfig; +import com.electronwill.nightconfig.core.file.CommentedFileConfig;
+import me.earthme.luminol.config.*; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+import me.earthme.luminol.config.flags.DoNotLoad;
+import me.earthme.luminol.config.flags.HotReloadUnsupported;
+import me.earthme.luminol.utils.EnumRegionFormat; +import me.earthme.luminol.utils.EnumRegionFormat;
+import net.minecraft.server.MinecraftServer; +import net.minecraft.server.MinecraftServer;
+ +

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,22 @@ @@ -1,0 +_,22 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class SecureSeedConfig implements IConfigModule { +public class SecureSeedConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled", comments = """ + @ConfigInfo(baseName = "enabled", comments = """

View File

@@ -4,9 +4,9 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import com.electronwill.nightconfig.core.file.CommentedFileConfig; +import com.electronwill.nightconfig.core.file.CommentedFileConfig;
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.Level;
+ +
+public class SentryConfig implements IConfigModule { +public class SentryConfig implements IConfigModule {

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,23 @@ @@ -1,0 +_,23 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class ServerModNameConfig implements IConfigModule { +public class ServerModNameConfig implements IConfigModule {
+ @ConfigInfo(baseName = "name") + @ConfigInfo(baseName = "name")

View File

@@ -1,11 +1,14 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/config/modules/misc/TpsBarConfig.java +++ b/src/main/java/me/earthme/luminol/config/modules/misc/TpsBarConfig.java
@@ -1,0 +_,51 @@ @@ -1,0 +_,54 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import com.electronwill.nightconfig.core.file.CommentedFileConfig; +import com.electronwill.nightconfig.core.file.CommentedFileConfig;
+import me.earthme.luminol.commands.TpsBarCommand; +import me.earthme.luminol.commands.TpsBarCommand;
+import me.earthme.luminol.config.*; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+import me.earthme.luminol.config.flags.DoNotLoad;
+import me.earthme.luminol.functions.GlobalServerTpsBar; +import me.earthme.luminol.functions.GlobalServerTpsBar;
+import org.bukkit.Bukkit; +import org.bukkit.Bukkit;
+ +

View File

@@ -3,10 +3,10 @@
@@ -1,0 +_,29 @@ @@ -1,0 +_,29 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.TransformedConfig; +import me.earthme.luminol.config.flags.ConfigInfo;
+import me.earthme.luminol.config.flags.TransformedConfig;
+ +
+public class TripwireBehaviorConfig implements IConfigModule { +public class TripwireBehaviorConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.misc; +package me.earthme.luminol.config.modules.misc;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class UsernameCheckConfig implements IConfigModule { +public class UsernameCheckConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.optimizations; +package me.earthme.luminol.config.modules.optimizations;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class EntityGoalSelectorInactiveTickConfig implements IConfigModule { +public class EntityGoalSelectorInactiveTickConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.optimizations; +package me.earthme.luminol.config.modules.optimizations;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class GaleVariableEntityWakeupConfig implements IConfigModule { +public class GaleVariableEntityWakeupConfig implements IConfigModule {
+ @ConfigInfo(baseName = "entity_wakeup_duration_ratio_standard_deviation") + @ConfigInfo(baseName = "entity_wakeup_duration_ratio_standard_deviation")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,24 @@ @@ -1,0 +_,24 @@
+package me.earthme.luminol.config.modules.optimizations; +package me.earthme.luminol.config.modules.optimizations;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class LobotomizeVillageConfig implements IConfigModule { +public class LobotomizeVillageConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,22 @@ @@ -1,0 +_,22 @@
+package me.earthme.luminol.config.modules.optimizations; +package me.earthme.luminol.config.modules.optimizations;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class PetalReduceSensorWorkConfig implements IConfigModule { +public class PetalReduceSensorWorkConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,22 @@ @@ -1,0 +_,22 @@
+package me.earthme.luminol.config.modules.optimizations; +package me.earthme.luminol.config.modules.optimizations;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class ProjectileChunkReduceConfig implements IConfigModule { +public class ProjectileChunkReduceConfig implements IConfigModule {
+ @ConfigInfo(baseName = "max-loads-per-tick") + @ConfigInfo(baseName = "max-loads-per-tick")

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.optimizations; +package me.earthme.luminol.config.modules.optimizations;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class PurpurAlternativeKeepaliveConfig implements IConfigModule { +public class PurpurAlternativeKeepaliveConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -6,10 +6,10 @@
+import com.electronwill.nightconfig.core.file.CommentedFileConfig; +import com.electronwill.nightconfig.core.file.CommentedFileConfig;
+import com.mojang.logging.LogUtils; +import com.mojang.logging.LogUtils;
+import gg.pufferfish.pufferfish.simd.SIMDDetection; +import gg.pufferfish.pufferfish.simd.SIMDDetection;
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.DoNotLoad;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+import me.earthme.luminol.config.flags.DoNotLoad;
+import org.slf4j.Logger; +import org.slf4j.Logger;
+ +
+public class SIMDConfig implements IConfigModule { +public class SIMDConfig implements IConfigModule {

View File

@@ -3,9 +3,9 @@
@@ -1,0 +_,20 @@ @@ -1,0 +_,20 @@
+package me.earthme.luminol.config.modules.optimizations; +package me.earthme.luminol.config.modules.optimizations;
+ +
+import me.earthme.luminol.config.ConfigInfo;
+import me.earthme.luminol.config.EnumConfigCategory; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule; +import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+ +
+public class SuffocationOptimizationConfig implements IConfigModule { +public class SuffocationOptimizationConfig implements IConfigModule {
+ @ConfigInfo(baseName = "enabled") + @ConfigInfo(baseName = "enabled")

View File

@@ -1,9 +1,13 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/config/modules/removed/RemovedConfig.java +++ b/src/main/java/me/earthme/luminol/config/modules/removed/RemovedConfig.java
@@ -1,0 +_,22 @@ @@ -1,0 +_,26 @@
+package me.earthme.luminol.config.modules.removed; +package me.earthme.luminol.config.modules.removed;
+ +
+import me.earthme.luminol.config.*; +import me.earthme.luminol.config.EnumConfigCategory;
+import me.earthme.luminol.config.IConfigModule;
+import me.earthme.luminol.config.flags.ConfigInfo;
+import me.earthme.luminol.config.flags.DoNotLoad;
+import me.earthme.luminol.config.flags.TransformedConfig;
+ +
+public class RemovedConfig implements IConfigModule { +public class RemovedConfig implements IConfigModule {
+ @TransformedConfig(name = "example", category = {"removed", "example"}, transform = false) + @TransformedConfig(name = "example", category = {"removed", "example"}, transform = false)

View File

@@ -26,8 +26,8 @@
+ protected static final NullPlugin NULL_PLUGIN = new NullPlugin(); + protected static final NullPlugin NULL_PLUGIN = new NullPlugin();
+ protected static final Map<UUID, BossBar> uuid2Bossbars = Maps.newConcurrentMap(); + protected static final Map<UUID, BossBar> uuid2Bossbars = Maps.newConcurrentMap();
+ protected static final Map<UUID, ScheduledTask> scheduledTasks = new HashMap<>(); + protected static final Map<UUID, ScheduledTask> scheduledTasks = new HashMap<>();
+ protected static volatile ScheduledTask scannerTask = null;
+ private static final Logger logger = LogUtils.getLogger(); + private static final Logger logger = LogUtils.getLogger();
+ protected static volatile ScheduledTask scannerTask = null;
+ +
+ public static void init() { + public static void init() {
+ cancelBarUpdateTask(); + cancelBarUpdateTask();

View File

@@ -1,11 +1,14 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/functions/GlobalServerRegionBar.java +++ b/src/main/java/me/earthme/luminol/functions/GlobalServerRegionBar.java
@@ -1,0 +_,184 @@ @@ -1,0 +_,185 @@
+package me.earthme.luminol.functions; +package me.earthme.luminol.functions;
+ +
+import com.google.common.collect.Maps; +import com.google.common.collect.Maps;
+import com.mojang.logging.LogUtils; +import com.mojang.logging.LogUtils;
+import io.papermc.paper.threadedregions.*; +import io.papermc.paper.threadedregions.ThreadedRegionizer;
+import io.papermc.paper.threadedregions.TickData;
+import io.papermc.paper.threadedregions.TickRegionScheduler;
+import io.papermc.paper.threadedregions.TickRegions;
+import io.papermc.paper.threadedregions.scheduler.ScheduledTask; +import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
+import me.earthme.luminol.config.modules.misc.RegionBarConfig; +import me.earthme.luminol.config.modules.misc.RegionBarConfig;
+import me.earthme.luminol.utils.NullPlugin; +import me.earthme.luminol.utils.NullPlugin;
@@ -26,11 +29,9 @@
+ protected static final NullPlugin NULL_PLUGIN = new NullPlugin(); + protected static final NullPlugin NULL_PLUGIN = new NullPlugin();
+ protected static final Map<UUID, BossBar> uuid2Bossbars = Maps.newConcurrentMap(); + protected static final Map<UUID, BossBar> uuid2Bossbars = Maps.newConcurrentMap();
+ protected static final Map<UUID, ScheduledTask> scheduledTasks = new HashMap<>(); + protected static final Map<UUID, ScheduledTask> scheduledTasks = new HashMap<>();
+
+ protected static volatile ScheduledTask scannerTask = null;
+ private static final Logger logger = LogUtils.getLogger(); + private static final Logger logger = LogUtils.getLogger();
+
+ private static final ThreadLocal<DecimalFormat> ONE_DECIMAL_PLACES = ThreadLocal.withInitial(() -> new DecimalFormat("#,##0.0")); + private static final ThreadLocal<DecimalFormat> ONE_DECIMAL_PLACES = ThreadLocal.withInitial(() -> new DecimalFormat("#,##0.0"));
+ protected static volatile ScheduledTask scannerTask = null;
+ +
+ public static void init() { + public static void init() {
+ cancelBarUpdateTask(); + cancelBarUpdateTask();

View File

@@ -1,6 +1,6 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/functions/GlobalServerTpsBar.java +++ b/src/main/java/me/earthme/luminol/functions/GlobalServerTpsBar.java
@@ -1,0 +_,241 @@ @@ -1,0 +_,240 @@
+package me.earthme.luminol.functions; +package me.earthme.luminol.functions;
+ +
+import com.google.common.collect.Maps; +import com.google.common.collect.Maps;
@@ -28,9 +28,8 @@
+ protected static final NullPlugin NULL_PLUGIN = new NullPlugin(); + protected static final NullPlugin NULL_PLUGIN = new NullPlugin();
+ protected static final Map<UUID, BossBar> uuid2Bossbars = Maps.newConcurrentMap(); + protected static final Map<UUID, BossBar> uuid2Bossbars = Maps.newConcurrentMap();
+ protected static final Map<UUID, ScheduledTask> scheduledTasks = new HashMap<>(); + protected static final Map<UUID, ScheduledTask> scheduledTasks = new HashMap<>();
+
+ protected static volatile ScheduledTask scannerTask = null;
+ private static final Logger logger = LogUtils.getLogger(); + private static final Logger logger = LogUtils.getLogger();
+ protected static volatile ScheduledTask scannerTask = null;
+ +
+ public static void init() { + public static void init() {
+ cancelBarUpdateTask(); + cancelBarUpdateTask();

View File

@@ -3,27 +3,26 @@
@@ -1,0 +_,152 @@ @@ -1,0 +_,152 @@
+package me.earthme.luminol.utils; +package me.earthme.luminol.utils;
+ +
+import io.papermc.paper.plugin.configuration.PluginMeta;
+import io.papermc.paper.plugin.lifecycle.event.LifecycleEventManager;
+import org.bukkit.Server; +import org.bukkit.Server;
+import org.bukkit.command.Command; +import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender; +import org.bukkit.command.CommandSender;
+import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.FileConfiguration;
+import org.bukkit.generator.BiomeProvider; +import org.bukkit.generator.BiomeProvider;
+import org.bukkit.generator.ChunkGenerator; +import org.bukkit.generator.ChunkGenerator;
+import org.bukkit.plugin.*; +import org.bukkit.plugin.PluginBase;
+import org.bukkit.plugin.PluginDescriptionFile;
+import org.bukkit.plugin.PluginLoader;
+import org.bukkit.plugin.PluginLogger;
+import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.Nullable;
+ +
+import java.io.File; +import java.io.File;
+import java.io.InputStream; +import java.io.InputStream;
+import java.util.List; +import java.util.List;
+import java.util.logging.Logger;
+ +
+public class NullPlugin extends PluginBase { +public class NullPlugin extends PluginBase {
+ private boolean enabled = true;
+
+ private final String pluginName; + private final String pluginName;
+ private boolean enabled = true;
+ private PluginDescriptionFile pdf; + private PluginDescriptionFile pdf;
+ +
+ public NullPlugin() { + public NullPlugin() {
@@ -31,10 +30,6 @@
+ pdf = new PluginDescriptionFile(pluginName, "1.0", "nms"); + pdf = new PluginDescriptionFile(pluginName, "1.0", "nms");
+ } + }
+ +
+ public void setEnabled(boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ @Override + @Override
+ public File getDataFolder() { + public File getDataFolder() {
+ throw new UnsupportedOperationException("Not supported."); + throw new UnsupportedOperationException("Not supported.");
@@ -44,17 +39,18 @@
+ public PluginDescriptionFile getDescription() { + public PluginDescriptionFile getDescription() {
+ return pdf; + return pdf;
+ } + }
+
+ // Paper start + // Paper start
+ @Override + @Override
+ public io.papermc.paper.plugin.configuration.PluginMeta getPluginMeta() { + public io.papermc.paper.plugin.configuration.PluginMeta getPluginMeta() {
+ return pdf; + return pdf;
+ } + }
+ // Paper end
+ +
+ @Override + @Override
+ public FileConfiguration getConfig() { + public FileConfiguration getConfig() {
+ throw new UnsupportedOperationException("Not supported."); + throw new UnsupportedOperationException("Not supported.");
+ } + }
+ // Paper end
+ +
+ @Override + @Override
+ public InputStream getResource(String filename) { + public InputStream getResource(String filename) {
@@ -101,6 +97,10 @@
+ return enabled; + return enabled;
+ } + }
+ +
+ public void setEnabled(boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ @Override + @Override
+ public void onDisable() { + public void onDisable() {
+ throw new UnsupportedOperationException("Not supported."); + throw new UnsupportedOperationException("Not supported.");

View File

@@ -1,10 +1,11 @@
--- /dev/null --- /dev/null
+++ b/src/main/java/me/earthme/luminol/utils/RegionCreatorInfo.java +++ b/src/main/java/me/earthme/luminol/utils/RegionCreatorInfo.java
@@ -1,0 +_,7 @@ @@ -1,0 +_,8 @@
+package me.earthme.luminol.utils; +package me.earthme.luminol.utils;
+ +
+import net.minecraft.world.level.chunk.storage.RegionStorageInfo; +import net.minecraft.world.level.chunk.storage.RegionStorageInfo;
+ +
+import java.nio.file.Path; +import java.nio.file.Path;
+ +
+public record RegionCreatorInfo (RegionStorageInfo info, Path filePath, Path folder, boolean sync) {} +public record RegionCreatorInfo(RegionStorageInfo info, Path filePath, Path folder, boolean sync) {
+}