Update dependencies
- Updated checkstyle - Fixed new checkstyle issues - Added staged feature: reloading server.properties partially
This commit is contained in:
parent
d52e834f11
commit
466e2659e8
51 changed files with 228 additions and 93 deletions
|
|
@ -3,11 +3,9 @@ package net.frankheijden.serverutils.bukkit;
|
|||
import co.aikar.commands.BukkitCommandCompletionContext;
|
||||
import co.aikar.commands.CommandCompletions;
|
||||
import co.aikar.commands.PaperCommandManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.commands.CommandPlugins;
|
||||
import net.frankheijden.serverutils.bukkit.commands.CommandServerUtils;
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitPlugin;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import co.aikar.commands.annotation.CommandPermission;
|
|||
import co.aikar.commands.annotation.Default;
|
||||
import co.aikar.commands.annotation.Description;
|
||||
import co.aikar.commands.annotation.Subcommand;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.managers.BukkitPluginManager;
|
||||
import net.frankheijden.serverutils.bukkit.utils.BukkitUtils;
|
||||
import net.frankheijden.serverutils.common.commands.Plugins;
|
||||
|
|
|
|||
|
|
@ -13,16 +13,15 @@ import co.aikar.commands.annotation.Default;
|
|||
import co.aikar.commands.annotation.Dependency;
|
||||
import co.aikar.commands.annotation.Description;
|
||||
import co.aikar.commands.annotation.Subcommand;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.ServerUtils;
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitLoadResult;
|
||||
import net.frankheijden.serverutils.bukkit.managers.BukkitPluginManager;
|
||||
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.common.config.Messenger;
|
||||
|
|
@ -55,6 +54,7 @@ public class CommandServerUtils extends BaseCommand {
|
|||
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);
|
||||
}
|
||||
|
||||
@Dependency
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package net.frankheijden.serverutils.bukkit.entities;
|
|||
|
||||
import java.io.File;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.ServerUtils;
|
||||
import net.frankheijden.serverutils.bukkit.managers.BukkitPluginManager;
|
||||
import net.frankheijden.serverutils.bukkit.managers.BukkitTaskManager;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package net.frankheijden.serverutils.bukkit.entities;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.ServerUtils;
|
||||
import net.frankheijden.serverutils.common.config.YamlConfig;
|
||||
import net.frankheijden.serverutils.common.providers.ResourceProvider;
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import java.util.Collection;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import net.frankheijden.serverutils.common.config.YamlConfig;
|
||||
import org.bukkit.configuration.MemorySection;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import java.util.Map;
|
|||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.ServerUtils;
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitLoadResult;
|
||||
import net.frankheijden.serverutils.bukkit.reflection.RCommandMap;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import java.lang.reflect.Field;
|
|||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.SimpleCommandMap;
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ import java.lang.reflect.Field;
|
|||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Warning;
|
||||
|
|
@ -67,7 +66,8 @@ public class RCraftServer {
|
|||
fieldOf("playerList"));
|
||||
methods = getAllMethods(craftServerClass,
|
||||
methodOf("loadIcon"),
|
||||
methodOf("syncCommands", min(13)));
|
||||
methodOf("syncCommands", min(13)),
|
||||
methodOf("getHandle"));
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
|
@ -89,7 +89,7 @@ public class RCraftServer {
|
|||
* @throws IllegalAccessException When prohibited access to the method.
|
||||
*/
|
||||
public static File getOptionsFile(String option) throws IllegalAccessException, InvocationTargetException {
|
||||
Object console = get(fields, craftServer, "console");
|
||||
Object console = getConsole();
|
||||
Object options = get(RDedicatedServer.getFields(), console, "options");
|
||||
return (File) invoke(ROptionSet.getMethods(), options, "valueOf", option);
|
||||
}
|
||||
|
|
@ -106,6 +106,10 @@ public class RCraftServer {
|
|||
invoke(methods, craftServer, "syncCommands");
|
||||
}
|
||||
|
||||
public static Object getConsole() throws IllegalAccessException {
|
||||
return get(fields, craftServer, "console");
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads the bukkit configuration.
|
||||
* @throws ReflectiveOperationException Iff exception thrown regarding reflection.
|
||||
|
|
@ -114,7 +118,7 @@ public class RCraftServer {
|
|||
YamlConfiguration bukkit = YamlConfiguration.loadConfiguration(getConfigFile());
|
||||
set(fields, craftServer, "configuration", bukkit);
|
||||
|
||||
Object console = get(fields, craftServer, "console");
|
||||
Object console = getConsole();
|
||||
RDedicatedServer.reload(console);
|
||||
|
||||
set(fields, craftServer, "monsterSpawn", bukkit.getInt("spawn-limits.monsters"));
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import java.util.Collection;
|
|||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
import net.frankheijden.serverutils.common.utils.MapUtils;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
|
|
|||
|
|
@ -14,11 +14,15 @@ import static net.frankheijden.serverutils.common.reflection.VersionParam.exact;
|
|||
import static net.frankheijden.serverutils.common.reflection.VersionParam.max;
|
||||
import static net.frankheijden.serverutils.common.reflection.VersionParam.min;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Map;
|
||||
|
||||
import java.util.Properties;
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
import net.frankheijden.serverutils.common.reflection.VersionParam;
|
||||
|
||||
|
|
@ -62,6 +66,14 @@ public class RDedicatedServer {
|
|||
}
|
||||
}
|
||||
|
||||
public static Class<?> getClazz() {
|
||||
return dedicatedServerClass;
|
||||
}
|
||||
|
||||
public static Object getCustomRegistry(Object dedicatedServer) throws ReflectiveOperationException {
|
||||
return invoke(methods, dedicatedServer, "getCustomRegistry");
|
||||
}
|
||||
|
||||
public static Map<String, Field> getFields() {
|
||||
return fields;
|
||||
}
|
||||
|
|
@ -115,6 +127,30 @@ public class RDedicatedServer {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads server.properties.
|
||||
* @throws ReflectiveOperationException Iff exception thrown regarding reflection.
|
||||
*/
|
||||
public static void reloadServerProperties() throws ReflectiveOperationException {
|
||||
Object console = RCraftServer.getConsole();
|
||||
Object playerList = get(RMinecraftServer.getFields(), console, "playerList");
|
||||
Object propertyManager = get(fields, console, "propertyManager");
|
||||
Path path = RDedicatedServerSettings.getServerPropertiesPath(propertyManager);
|
||||
|
||||
Properties properties = new Properties();
|
||||
try (InputStream in = new FileInputStream(path.toFile())) {
|
||||
properties.load(in);
|
||||
} catch (IOException ex) {
|
||||
throw new ReflectiveOperationException("Unable to load server.properties", ex);
|
||||
}
|
||||
|
||||
int maxPlayers = Integer.parseInt(properties.getProperty("max-players"));
|
||||
set(RPlayerList.getFields(), playerList, "maxPlayers", maxPlayers);
|
||||
|
||||
int viewDistance = Integer.parseInt(properties.getProperty("view-distance"));
|
||||
RPlayerList.setViewDistance(playerList, viewDistance);
|
||||
}
|
||||
|
||||
public static Object getConfigValue(Object config, String key) throws IllegalAccessException {
|
||||
return get(RDedicatedServerProperties.getFields(), config, key);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get
|
|||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Map;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
|
||||
public class RDedicatedServerProperties {
|
||||
|
|
|
|||
|
|
@ -1,21 +1,26 @@
|
|||
package net.frankheijden.serverutils.bukkit.reflection;
|
||||
|
||||
import static net.frankheijden.serverutils.common.reflection.ConstructorParam.constructorOf;
|
||||
import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
|
||||
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
|
||||
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get;
|
||||
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllConstructors;
|
||||
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
|
||||
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
|
||||
public class RDedicatedServerSettings {
|
||||
|
||||
private static Class<?> serverSettingsClass;
|
||||
private static Map<String, Method> methods;
|
||||
private static Map<String, Field> fields;
|
||||
private static List<Constructor<?>> constructors;
|
||||
|
||||
static {
|
||||
|
|
@ -24,6 +29,8 @@ public class RDedicatedServerSettings {
|
|||
BukkitReflection.NMS));
|
||||
methods = getAllMethods(serverSettingsClass,
|
||||
methodOf("getProperties"));
|
||||
fields = getAllFields(serverSettingsClass,
|
||||
fieldOf("path"));
|
||||
constructors = getAllConstructors(serverSettingsClass,
|
||||
constructorOf(Class.forName("joptsimple.OptionSet")),
|
||||
constructorOf(Class.forName(String.format("net.minecraft.server.%s.IRegistryCustom",
|
||||
|
|
@ -52,6 +59,10 @@ public class RDedicatedServerSettings {
|
|||
return getConstructor().newInstance(registry, options);
|
||||
}
|
||||
|
||||
public static Path getServerPropertiesPath(Object instance) throws ReflectiveOperationException {
|
||||
return (Path) get(fields, instance, "path");
|
||||
}
|
||||
|
||||
public static Map<String, Method> getMethods() {
|
||||
return methods;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import java.lang.reflect.Field;
|
|||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public class RJavaPlugin {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get
|
|||
import java.lang.reflect.Field;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bukkit.plugin.java.JavaPluginLoader;
|
||||
|
||||
public class RJavaPluginLoader {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.inv
|
|||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
|
||||
public class RJsonList {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import java.util.Locale;
|
|||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,20 @@
|
|||
package net.frankheijden.serverutils.bukkit.reflection;
|
||||
|
||||
import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
|
||||
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
|
||||
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
|
||||
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
|
||||
public class RMinecraftServer {
|
||||
|
||||
private static Class<?> minecraftServerClass;
|
||||
private static Map<String, Method> methods;
|
||||
private static Map<String, Field> fields;
|
||||
|
||||
static {
|
||||
try {
|
||||
|
|
@ -20,6 +23,8 @@ public class RMinecraftServer {
|
|||
methods = getAllMethods(minecraftServerClass,
|
||||
methodOf("getServer"),
|
||||
methodOf("getCraftingManager"));
|
||||
fields = getAllFields(minecraftServerClass,
|
||||
fieldOf("playerList"));
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
|
@ -28,4 +33,8 @@ public class RMinecraftServer {
|
|||
public static Map<String, Method> getMethods() {
|
||||
return methods;
|
||||
}
|
||||
|
||||
public static Map<String, Field> getFields() {
|
||||
return fields;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,24 +1,33 @@
|
|||
package net.frankheijden.serverutils.bukkit.reflection;
|
||||
|
||||
import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
|
||||
import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
|
||||
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
|
||||
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
|
||||
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.invoke;
|
||||
import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.set;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
|
||||
public class RPlayerList {
|
||||
|
||||
private static Class<?> playerListClass;
|
||||
private static Map<String, Method> methods;
|
||||
private static Map<String, Field> fields;
|
||||
|
||||
static {
|
||||
try {
|
||||
playerListClass = Class.forName(String.format("net.minecraft.server.%s.PlayerList", BukkitReflection.NMS));
|
||||
methods = getAllMethods(playerListClass,
|
||||
methodOf("getIPBans"),
|
||||
methodOf("getProfileBans"));
|
||||
methodOf("getProfileBans"),
|
||||
methodOf("a", int.class));
|
||||
fields = getAllFields(playerListClass,
|
||||
fieldOf("maxPlayers"),
|
||||
fieldOf("viewDistance"));
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
|
@ -27,4 +36,13 @@ public class RPlayerList {
|
|||
public static Map<String, Method> getMethods() {
|
||||
return methods;
|
||||
}
|
||||
|
||||
public static Map<String, Field> getFields() {
|
||||
return fields;
|
||||
}
|
||||
|
||||
public static void setViewDistance(Object instance, int viewDistance) throws ReflectiveOperationException {
|
||||
set(fields, instance, "viewDistance", viewDistance);
|
||||
invoke(methods, instance, "a", viewDistance);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,6 +54,6 @@ public class RPluginClassLoader {
|
|||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static Map<String, Class<?>> getClasses(Object pluginLoader) throws IllegalAccessException {
|
||||
return (Map<String,Class<?>>) get(fields, pluginLoader, "classes");
|
||||
return (Map<String, Class<?>>) get(fields, pluginLoader, "classes");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get
|
|||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Map;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
|
||||
public class RPropertyManager {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get
|
|||
import java.lang.reflect.Field;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
import net.frankheijden.serverutils.common.utils.MapUtils;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get
|
|||
import java.lang.reflect.Field;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import net.frankheijden.serverutils.bukkit.entities.BukkitReflection;
|
||||
import net.frankheijden.serverutils.common.utils.MapUtils;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import java.util.List;
|
|||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginLoader;
|
||||
import org.bukkit.plugin.SimplePluginManager;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue