diff --git a/src/main/java/com/mohistmc/commands/MohistCommand.java b/src/main/java/com/mohistmc/commands/MohistCommand.java index 5c67717ca..3641b7c33 100644 --- a/src/main/java/com/mohistmc/commands/MohistCommand.java +++ b/src/main/java/com/mohistmc/commands/MohistCommand.java @@ -33,15 +33,19 @@ import java.util.Locale; import java.util.concurrent.atomic.AtomicInteger; import net.minecraft.server.MinecraftServer; +import net.minecraft.server.level.ServerLevel; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; +import org.bukkit.command.defaults.BukkitCommand; +import org.bukkit.craftbukkit.v1_20_R1.CraftServer; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; +import org.spigotmc.SpigotConfig; public class MohistCommand extends Command { @@ -111,10 +115,17 @@ public boolean execute(@NotNull CommandSender sender, @NotNull String commandLab return true; } case "reload" -> { + MinecraftServer console = MinecraftServer.getServer(); com.mohistmc.MohistConfig.init((File) MinecraftServer.options.valueOf("mohist-settings")); + ((CraftServer)Bukkit.getServer()).initConfig(); + ((CraftServer)Bukkit.getServer()).loadCustomPermissions(); + SpigotConfig.init((File) MinecraftServer.options.valueOf("spigot-settings")); + for (ServerLevel world : console.getAllLevels()) { + world.spigotConfig.init(); + } MohistPlugin.initConfig(); - MinecraftServer.getServer().server.reloadCount++; + console.server.reloadCount++; sender.sendMessage(ChatColor.GREEN + I18n.as("mohistcmd.reload.complete")); if (AIConfig.INSTANCE.enable()) { sender.sendMessage(ChatColor.GREEN + "QQ 机器人模块已启用!"); @@ -192,7 +203,6 @@ public boolean execute(@NotNull CommandSender sender, @NotNull String commandLab } } - return true; } diff --git a/src/main/java/org/bukkit/craftbukkit/v1_20_R1/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/v1_20_R1/CraftServer.java index d858de171..4c78fa2c1 100644 --- a/src/main/java/org/bukkit/craftbukkit/v1_20_R1/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/v1_20_R1/CraftServer.java @@ -338,6 +338,25 @@ public CraftPlayer apply(ServerPlayer player) { MobEffects.BLINDNESS.getClass(); // Ugly hack :( + initConfig(); + overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*"); + ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions"); + pluginManager.useTimings(configuration.getBoolean("settings.plugin-profiling")); + overrideSpawnLimits(); + console.autosavePeriod = configuration.getInt("ticks-per.autosave"); + warningState = WarningState.value(configuration.getString("settings.deprecated-verbose")); + TicketType.PLUGIN.timeout = configuration.getInt("chunk-gc.period-in-ticks"); + minimumAPI = configuration.getString("settings.minimum-api"); + loadIcon(); + + // Set map color cache + if (configuration.getBoolean("settings.use-map-color-cache")) { + MapPalette.setMapColorCache(new org.bukkit.craftbukkit.v1_20_R1.map.CraftMapColorCache(logger)); + } + } + + // Mohist start + public void initConfig() { configuration = YamlConfiguration.loadConfiguration(getConfigFile()); configuration.options().copyDefaults(true); configuration.setDefaults(YamlConfiguration.loadConfiguration(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("configurations/bukkit.yml"), Charsets.UTF_8))); @@ -374,31 +393,18 @@ public CraftPlayer apply(ServerPlayer player) { } saveCommandsConfig(); - overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*"); - ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions"); - pluginManager.useTimings(configuration.getBoolean("settings.plugin-profiling")); - overrideSpawnLimits(); - console.autosavePeriod = configuration.getInt("ticks-per.autosave"); - warningState = WarningState.value(configuration.getString("settings.deprecated-verbose")); - TicketType.PLUGIN.timeout = configuration.getInt("chunk-gc.period-in-ticks"); - minimumAPI = configuration.getString("settings.minimum-api"); - loadIcon(); - - // Set map color cache - if (configuration.getBoolean("settings.use-map-color-cache")) { - MapPalette.setMapColorCache(new org.bukkit.craftbukkit.v1_20_R1.map.CraftMapColorCache(logger)); - } } + // Mohist end public boolean getCommandBlockOverride(String command) { return overrideAllCommandBlockCommands || commandsConfiguration.getStringList("command-block-overrides").contains(command); } - private File getConfigFile() { + public File getConfigFile() { return (File) console.options.valueOf("bukkit-settings"); } - private File getCommandsConfigFile() { + public File getCommandsConfigFile() { return (File) console.options.valueOf("commands-settings"); } @@ -950,7 +956,7 @@ private void loadIcon() { } @SuppressWarnings({ "unchecked", "finally" }) - private void loadCustomPermissions() { + public void loadCustomPermissions() { File file = new File(configuration.getString("settings.permissions-file")); FileInputStream stream;