Only support commands.yml for reloading on 1.17
This commit is contained in:
parent
401b03fbc0
commit
2ac0ec0a9f
3 changed files with 51 additions and 12 deletions
|
|
@ -25,6 +25,7 @@ import net.frankheijden.serverutils.bukkit.reflection.RCraftServer;
|
||||||
import net.frankheijden.serverutils.bukkit.reflection.RDedicatedServer;
|
import net.frankheijden.serverutils.bukkit.reflection.RDedicatedServer;
|
||||||
import net.frankheijden.serverutils.bukkit.utils.BukkitUtils;
|
import net.frankheijden.serverutils.bukkit.utils.BukkitUtils;
|
||||||
import net.frankheijden.serverutils.bukkit.utils.ReloadHandler;
|
import net.frankheijden.serverutils.bukkit.utils.ReloadHandler;
|
||||||
|
import net.frankheijden.serverutils.bukkit.utils.VersionReloadHandler;
|
||||||
import net.frankheijden.serverutils.common.config.Messenger;
|
import net.frankheijden.serverutils.common.config.Messenger;
|
||||||
import net.frankheijden.serverutils.common.entities.AbstractResult;
|
import net.frankheijden.serverutils.common.entities.AbstractResult;
|
||||||
import net.frankheijden.serverutils.common.entities.CloseableResult;
|
import net.frankheijden.serverutils.common.entities.CloseableResult;
|
||||||
|
|
@ -50,12 +51,15 @@ public class CommandServerUtils extends BaseCommand {
|
||||||
|
|
||||||
static {
|
static {
|
||||||
supportedConfigs = new HashMap<>();
|
supportedConfigs = new HashMap<>();
|
||||||
supportedConfigs.put("bukkit", RCraftServer::reloadBukkitConfiguration);
|
supportedConfigs.put("bukkit", new VersionReloadHandler(16, RCraftServer::reloadBukkitConfiguration));
|
||||||
supportedConfigs.put("commands.yml", RCraftServer::reloadCommandsConfiguration);
|
supportedConfigs.put("commands.yml", RCraftServer::reloadCommandsConfiguration);
|
||||||
supportedConfigs.put("server-icon.png", RCraftServer::loadIcon);
|
supportedConfigs.put("server-icon.png", new VersionReloadHandler(16, RCraftServer::loadIcon));
|
||||||
supportedConfigs.put("banned-ips.json", RCraftServer::reloadIpBans);
|
supportedConfigs.put("banned-ips.json", new VersionReloadHandler(16, RCraftServer::reloadIpBans));
|
||||||
supportedConfigs.put("banned-players.json", RCraftServer::reloadProfileBans);
|
supportedConfigs.put("banned-players.json", new VersionReloadHandler(16, RCraftServer::reloadProfileBans));
|
||||||
supportedConfigs.put("server.properties", RDedicatedServer::reloadServerProperties);
|
supportedConfigs.put("server.properties", new VersionReloadHandler(
|
||||||
|
16,
|
||||||
|
RDedicatedServer::reloadServerProperties
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Dependency
|
@Dependency
|
||||||
|
|
@ -123,10 +127,6 @@ public class CommandServerUtils extends BaseCommand {
|
||||||
@Description("Reloads individual Server configurations.")
|
@Description("Reloads individual Server configurations.")
|
||||||
public void onReloadCommands(CommandSender commandSender, String config) {
|
public void onReloadCommands(CommandSender commandSender, String config) {
|
||||||
ServerCommandSender sender = BukkitUtils.wrap(commandSender);
|
ServerCommandSender sender = BukkitUtils.wrap(commandSender);
|
||||||
if (MinecraftReflectionVersion.MINOR >= 17) {
|
|
||||||
sendRawMessage(sender, "&cThis command is not supported on your Minecraft version.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ReloadHandler handler = supportedConfigs.get(config);
|
ReloadHandler handler = supportedConfigs.get(config);
|
||||||
if (handler == null) {
|
if (handler == null) {
|
||||||
|
|
@ -134,9 +134,20 @@ public class CommandServerUtils extends BaseCommand {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (handler instanceof VersionReloadHandler) {
|
||||||
|
VersionReloadHandler versionReloadHandler = (VersionReloadHandler) handler;
|
||||||
|
int max = versionReloadHandler.getMinecraftVersionMaximum();
|
||||||
|
|
||||||
|
if (MinecraftReflectionVersion.MINOR > max) {
|
||||||
|
sendRawMessage(sender, "&cThis command is not supported on your Minecraft version."
|
||||||
|
+ " This command only support Minecraft versions up to MC1." + max);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
String[] replacements = new String[]{ "%action%", "reload", "%what%", config };
|
String[] replacements = new String[]{ "%action%", "reload", "%what%", config };
|
||||||
|
|
||||||
ForwardFilter filter = new ForwardFilter(sender);
|
ForwardFilter filter = new ForwardFilter(plugin.getPlugin().getChatProvider(), sender);
|
||||||
filter.start(Bukkit.getLogger());
|
filter.start(Bukkit.getLogger());
|
||||||
try {
|
try {
|
||||||
handler.handle();
|
handler.handle();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package net.frankheijden.serverutils.bukkit.utils;
|
||||||
|
|
||||||
|
import dev.frankheijden.minecraftreflection.MinecraftReflectionVersion;
|
||||||
|
|
||||||
|
public class VersionReloadHandler implements ReloadHandler {
|
||||||
|
|
||||||
|
private final int minecraftVersionMaximum;
|
||||||
|
private final ReloadHandler handler;
|
||||||
|
|
||||||
|
public VersionReloadHandler(int minecraftVersionMaximum, ReloadHandler handler) {
|
||||||
|
this.minecraftVersionMaximum = minecraftVersionMaximum;
|
||||||
|
this.handler = handler;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMinecraftVersionMaximum() {
|
||||||
|
return minecraftVersionMaximum;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle() throws Exception {
|
||||||
|
if (MinecraftReflectionVersion.MINOR > minecraftVersionMaximum) {
|
||||||
|
throw new Exception("ReloadHandler is incompatible with version " + MinecraftReflectionVersion.MINOR
|
||||||
|
+ ". Maximum version this handler supports is " + minecraftVersionMaximum + ".");
|
||||||
|
}
|
||||||
|
handler.handle();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,7 @@ package net.frankheijden.serverutils.common.utils;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.LogRecord;
|
import java.util.logging.LogRecord;
|
||||||
import net.frankheijden.serverutils.common.entities.ServerCommandSender;
|
import net.frankheijden.serverutils.common.entities.ServerCommandSender;
|
||||||
|
import net.frankheijden.serverutils.common.providers.ChatProvider;
|
||||||
|
|
||||||
public class ForwardFilter extends PredicateFilter {
|
public class ForwardFilter extends PredicateFilter {
|
||||||
|
|
||||||
|
|
@ -16,13 +17,13 @@ public class ForwardFilter extends PredicateFilter {
|
||||||
* Creates a filter which forwards all output to the sender.
|
* Creates a filter which forwards all output to the sender.
|
||||||
* @param sender The sender to forward logs to.
|
* @param sender The sender to forward logs to.
|
||||||
*/
|
*/
|
||||||
public ForwardFilter(ServerCommandSender sender) {
|
public ForwardFilter(ChatProvider chatProvider, ServerCommandSender sender) {
|
||||||
this.warnings = false;
|
this.warnings = false;
|
||||||
|
|
||||||
setPredicate(rec -> {
|
setPredicate(rec -> {
|
||||||
char color = getColor(rec.getLevel());
|
char color = getColor(rec.getLevel());
|
||||||
if (color != INFO_COLOR) warnings = true;
|
if (color != INFO_COLOR) warnings = true;
|
||||||
sender.sendMessage('&' + color + format(rec));
|
sender.sendMessage(chatProvider.color("&" + color + format(rec)));
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue