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.utils.BukkitUtils;
|
||||
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.entities.AbstractResult;
|
||||
import net.frankheijden.serverutils.common.entities.CloseableResult;
|
||||
|
|
@ -50,12 +51,15 @@ public class CommandServerUtils extends BaseCommand {
|
|||
|
||||
static {
|
||||
supportedConfigs = new HashMap<>();
|
||||
supportedConfigs.put("bukkit", RCraftServer::reloadBukkitConfiguration);
|
||||
supportedConfigs.put("bukkit", new VersionReloadHandler(16, RCraftServer::reloadBukkitConfiguration));
|
||||
supportedConfigs.put("commands.yml", RCraftServer::reloadCommandsConfiguration);
|
||||
supportedConfigs.put("server-icon.png", RCraftServer::loadIcon);
|
||||
supportedConfigs.put("banned-ips.json", RCraftServer::reloadIpBans);
|
||||
supportedConfigs.put("banned-players.json", RCraftServer::reloadProfileBans);
|
||||
supportedConfigs.put("server.properties", RDedicatedServer::reloadServerProperties);
|
||||
supportedConfigs.put("server-icon.png", new VersionReloadHandler(16, RCraftServer::loadIcon));
|
||||
supportedConfigs.put("banned-ips.json", new VersionReloadHandler(16, RCraftServer::reloadIpBans));
|
||||
supportedConfigs.put("banned-players.json", new VersionReloadHandler(16, RCraftServer::reloadProfileBans));
|
||||
supportedConfigs.put("server.properties", new VersionReloadHandler(
|
||||
16,
|
||||
RDedicatedServer::reloadServerProperties
|
||||
));
|
||||
}
|
||||
|
||||
@Dependency
|
||||
|
|
@ -123,10 +127,6 @@ public class CommandServerUtils extends BaseCommand {
|
|||
@Description("Reloads individual Server configurations.")
|
||||
public void onReloadCommands(CommandSender commandSender, String config) {
|
||||
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);
|
||||
if (handler == null) {
|
||||
|
|
@ -134,9 +134,20 @@ public class CommandServerUtils extends BaseCommand {
|
|||
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 };
|
||||
|
||||
ForwardFilter filter = new ForwardFilter(sender);
|
||||
ForwardFilter filter = new ForwardFilter(plugin.getPlugin().getChatProvider(), sender);
|
||||
filter.start(Bukkit.getLogger());
|
||||
try {
|
||||
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.LogRecord;
|
||||
import net.frankheijden.serverutils.common.entities.ServerCommandSender;
|
||||
import net.frankheijden.serverutils.common.providers.ChatProvider;
|
||||
|
||||
public class ForwardFilter extends PredicateFilter {
|
||||
|
||||
|
|
@ -16,13 +17,13 @@ public class ForwardFilter extends PredicateFilter {
|
|||
* Creates a filter which forwards all output to the sender.
|
||||
* @param sender The sender to forward logs to.
|
||||
*/
|
||||
public ForwardFilter(ServerCommandSender sender) {
|
||||
public ForwardFilter(ChatProvider chatProvider, ServerCommandSender sender) {
|
||||
this.warnings = false;
|
||||
|
||||
setPredicate(rec -> {
|
||||
char color = getColor(rec.getLevel());
|
||||
if (color != INFO_COLOR) warnings = true;
|
||||
sender.sendMessage('&' + color + format(rec));
|
||||
sender.sendMessage(chatProvider.color("&" + color + format(rec)));
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue