Modularise project

This commit is contained in:
Frank van der Heijden 2020-07-03 15:52:56 +02:00
parent 2be3825438
commit 4416d55173
No known key found for this signature in database
GPG key ID: 26DA56488D314D11
55 changed files with 388 additions and 331 deletions

24
Bukkit/build.gradle Normal file
View file

@ -0,0 +1,24 @@
group = rootProject.group + '.bukkit'
String dependencyDir = group + '.dependencies'
version = rootProject.version
archivesBaseName = rootProject.name + '-Bukkit'
dependencies {
implementation 'co.aikar:acf-paper:0.5.0-SNAPSHOT'
implementation 'org.bstats:bstats-bukkit:1.7'
implementation project(":Common")
compileOnly 'com.destroystokyo.paper:paper-api:1.16.1-R0.1-SNAPSHOT'
}
processResources {
from('src/main/resources') {
include 'plugin.yml'
expand(version: project.version)
}
}
shadowJar {
relocate 'org.bstats.bukkit', dependencyDir + '.bstats'
relocate 'co.aikar.commands', dependencyDir + '.acf'
relocate 'co.aikar.locales', dependencyDir + '.locales'
}

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils; package net.frankheijden.serverutils.bukkit;
import co.aikar.commands.BukkitCommandCompletionContext; import co.aikar.commands.BukkitCommandCompletionContext;
import co.aikar.commands.CommandCompletions; import co.aikar.commands.CommandCompletions;
@ -10,15 +10,16 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import net.frankheijden.serverutils.commands.CommandPlugins; import net.frankheijden.serverutils.bukkit.commands.CommandPlugins;
import net.frankheijden.serverutils.commands.CommandServerUtils; import net.frankheijden.serverutils.bukkit.commands.CommandServerUtils;
import net.frankheijden.serverutils.config.Config; import net.frankheijden.serverutils.bukkit.config.Config;
import net.frankheijden.serverutils.config.Messenger; import net.frankheijden.serverutils.bukkit.config.Messenger;
import net.frankheijden.serverutils.listeners.MainListener; import net.frankheijden.serverutils.bukkit.listeners.MainListener;
import net.frankheijden.serverutils.managers.VersionManager; import net.frankheijden.serverutils.bukkit.managers.VersionManager;
import net.frankheijden.serverutils.reflection.RCommandMap; import net.frankheijden.serverutils.bukkit.reflection.BukkitReflection;
import net.frankheijden.serverutils.reflection.RCraftServer; import net.frankheijden.serverutils.bukkit.reflection.RCommandMap;
import net.frankheijden.serverutils.tasks.UpdateCheckerTask; import net.frankheijden.serverutils.bukkit.reflection.RCraftServer;
import net.frankheijden.serverutils.bukkit.tasks.UpdateCheckerTask;
import org.bstats.bukkit.Metrics; import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@ -45,6 +46,7 @@ public class ServerUtils extends JavaPlugin implements CommandExecutor {
instance = this; instance = this;
new Metrics(this, BSTATS_METRICS_ID); new Metrics(this, BSTATS_METRICS_ID);
new BukkitReflection();
this.commandManager = new PaperCommandManager(this); this.commandManager = new PaperCommandManager(this);
commandManager.registerCommand(new CommandServerUtils()); commandManager.registerCommand(new CommandServerUtils());
@ -53,7 +55,7 @@ public class ServerUtils extends JavaPlugin implements CommandExecutor {
CommandCompletions<BukkitCommandCompletionContext> completions = commandManager.getCommandCompletions(); CommandCompletions<BukkitCommandCompletionContext> completions = commandManager.getCommandCompletions();
completions.registerAsyncCompletion("plugins", context -> getPluginNames()); completions.registerAsyncCompletion("plugins", context -> getPluginNames());
completions.registerAsyncCompletion("pluginJars", context -> getPluginFileNames()); completions.registerAsyncCompletion("pluginJars", context -> getPluginFileNames());
completions.registerAsyncCompletion("supportedConfigs", context -> CommandServerUtils.getSupportedConfigs()); completions.registerAsyncCompletion("supportedConfigs ", context -> CommandServerUtils.getSupportedConfigs());
completions.registerAsyncCompletion("commands", context -> { completions.registerAsyncCompletion("commands", context -> {
try { try {
return RCommandMap.getKnownCommands(RCraftServer.getCommandMap()).keySet(); return RCommandMap.getKnownCommands(RCraftServer.getCommandMap()).keySet();
@ -116,8 +118,8 @@ public class ServerUtils extends JavaPlugin implements CommandExecutor {
restoreBukkitPluginCommand(); restoreBukkitPluginCommand();
} }
new Config(copyResourceIfNotExists("config.yml")); new Config(copyResourceIfNotExists("config.yml", "bukkit-config.yml"));
new Messenger(copyResourceIfNotExists("messages.yml")); new Messenger(copyResourceIfNotExists("messages.yml", "bukkit-messages.yml"));
if (!Config.getInstance().getBoolean("settings.disable-plugins-command")) { if (!Config.getInstance().getBoolean("settings.disable-plugins-command")) {
this.removeCommands("pl", "plugins"); this.removeCommands("pl", "plugins");
@ -146,13 +148,15 @@ public class ServerUtils extends JavaPlugin implements CommandExecutor {
} }
} }
private File copyResourceIfNotExists(String resource) { private File copyResourceIfNotExists(String targetName, String resource) {
createDataFolderIfNotExists(); createDataFolderIfNotExists();
File file = new File(getDataFolder(), resource); File file = new File(getDataFolder(), targetName);
if (!file.exists()) { if (!file.exists()) {
getLogger().info(String.format("'%s' not found, creating!", resource)); getLogger().info(String.format("'%s' not found, creating!", targetName));
saveResource(resource, false); saveResource(resource, false);
File copiedFile = new File(getDataFolder(), resource);
copiedFile.renameTo(file);
} }
return file; return file;
} }

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.commands; package net.frankheijden.serverutils.bukkit.commands;
import co.aikar.commands.BaseCommand; import co.aikar.commands.BaseCommand;
import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.CommandAlias;
@ -9,9 +9,9 @@ import co.aikar.commands.annotation.Subcommand;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import net.frankheijden.serverutils.config.Messenger; import net.frankheijden.serverutils.bukkit.config.Messenger;
import net.frankheijden.serverutils.utils.ListBuilder; import net.frankheijden.serverutils.common.utils.ListBuilder;
import net.frankheijden.serverutils.utils.ListFormat; import net.frankheijden.serverutils.common.utils.ListFormat;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;

View file

@ -1,7 +1,7 @@
package net.frankheijden.serverutils.commands; package net.frankheijden.serverutils.bukkit.commands;
import static net.frankheijden.serverutils.config.Messenger.sendMessage; import static net.frankheijden.serverutils.bukkit.config.Messenger.sendMessage;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MINOR; import static net.frankheijden.serverutils.bukkit.reflection.BukkitReflection.MINOR;
import co.aikar.commands.BaseCommand; import co.aikar.commands.BaseCommand;
import co.aikar.commands.annotation.CommandAlias; import co.aikar.commands.annotation.CommandAlias;
@ -17,18 +17,18 @@ import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import net.frankheijden.serverutils.ServerUtils; import net.frankheijden.serverutils.bukkit.ServerUtils;
import net.frankheijden.serverutils.config.Messenger; import net.frankheijden.serverutils.bukkit.config.Messenger;
import net.frankheijden.serverutils.managers.CloseableResult; import net.frankheijden.serverutils.bukkit.managers.CloseableResult;
import net.frankheijden.serverutils.managers.LoadResult; import net.frankheijden.serverutils.bukkit.managers.LoadResult;
import net.frankheijden.serverutils.managers.PluginManager; import net.frankheijden.serverutils.bukkit.managers.PluginManager;
import net.frankheijden.serverutils.managers.Result; import net.frankheijden.serverutils.bukkit.managers.Result;
import net.frankheijden.serverutils.reflection.RCraftServer; import net.frankheijden.serverutils.bukkit.reflection.RCraftServer;
import net.frankheijden.serverutils.utils.FormatBuilder; import net.frankheijden.serverutils.bukkit.utils.FormatBuilder;
import net.frankheijden.serverutils.utils.ForwardFilter; import net.frankheijden.serverutils.bukkit.utils.ForwardFilter;
import net.frankheijden.serverutils.utils.ListBuilder; import net.frankheijden.serverutils.bukkit.utils.ReloadHandler;
import net.frankheijden.serverutils.utils.ListFormat; import net.frankheijden.serverutils.common.utils.ListBuilder;
import net.frankheijden.serverutils.utils.ReloadHandler; import net.frankheijden.serverutils.common.utils.ListFormat;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.config; package net.frankheijden.serverutils.bukkit.config;
import java.io.File; import java.io.File;
@ -7,7 +7,7 @@ public class Config extends YamlResource {
private static Config instance; private static Config instance;
public Config(File file) { public Config(File file) {
super(file, "config.yml"); super(file, "bukkit-config.yml");
instance = this; instance = this;
} }

View file

@ -1,8 +1,8 @@
package net.frankheijden.serverutils.config; package net.frankheijden.serverutils.bukkit.config;
import java.io.File; import java.io.File;
import net.frankheijden.serverutils.ServerUtils; import net.frankheijden.serverutils.bukkit.ServerUtils;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -12,7 +12,7 @@ public class Messenger extends YamlResource {
private static Messenger instance; private static Messenger instance;
public Messenger(File file) { public Messenger(File file) {
super(file, "messages.yml"); super(file, "bukkit-messages.yml");
instance = this; instance = this;
} }
@ -27,7 +27,7 @@ public class Messenger extends YamlResource {
if (message != null) { if (message != null) {
return apply(message, replacements); return apply(message, replacements);
} else { } else {
plugin.getLogger().severe("Missing locale in messages.yml at path '" + path + "'!"); plugin.getLogger().severe("Missing locale in bukkit-messages.yml at path '" + path + "'!");
} }
return null; return null;
} }

View file

@ -1,11 +1,11 @@
package net.frankheijden.serverutils.config; package net.frankheijden.serverutils.bukkit.config;
import java.io.File; import java.io.File;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import net.frankheijden.serverutils.ServerUtils; import net.frankheijden.serverutils.bukkit.ServerUtils;
import net.frankheijden.serverutils.utils.YamlUtils; import net.frankheijden.serverutils.bukkit.utils.YamlUtils;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
public abstract class YamlResource { public abstract class YamlResource {

View file

@ -1,7 +1,7 @@
package net.frankheijden.serverutils.listeners; package net.frankheijden.serverutils.bukkit.listeners;
import net.frankheijden.serverutils.config.Config; import net.frankheijden.serverutils.bukkit.config.Config;
import net.frankheijden.serverutils.tasks.UpdateCheckerTask; import net.frankheijden.serverutils.bukkit.tasks.UpdateCheckerTask;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.managers; package net.frankheijden.serverutils.bukkit.managers;
import java.io.Closeable; import java.io.Closeable;
import java.io.IOException; import java.io.IOException;

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.managers; package net.frankheijden.serverutils.bukkit.managers;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;

View file

@ -1,20 +1,18 @@
package net.frankheijden.serverutils.managers; package net.frankheijden.serverutils.bukkit.managers;
import java.io.Closeable; import java.io.Closeable;
import java.io.File; import java.io.File;
import java.lang.reflect.InvocationTargetException;
import java.util.Map; import java.util.Map;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import net.frankheijden.serverutils.ServerUtils; import net.frankheijden.serverutils.bukkit.ServerUtils;
import net.frankheijden.serverutils.reflection.RCommandMap; import net.frankheijden.serverutils.bukkit.reflection.RCommandMap;
import net.frankheijden.serverutils.reflection.RCraftServer; import net.frankheijden.serverutils.bukkit.reflection.RCraftServer;
import net.frankheijden.serverutils.reflection.RCraftingManager; import net.frankheijden.serverutils.bukkit.reflection.RCraftingManager;
import net.frankheijden.serverutils.reflection.RJavaPlugin; import net.frankheijden.serverutils.bukkit.reflection.RJavaPlugin;
import net.frankheijden.serverutils.reflection.RPlugin; import net.frankheijden.serverutils.bukkit.reflection.RPluginClassLoader;
import net.frankheijden.serverutils.reflection.RPluginClassLoader; import net.frankheijden.serverutils.bukkit.reflection.RSimplePluginManager;
import net.frankheijden.serverutils.reflection.RSimplePluginManager;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommand;

View file

@ -1,6 +1,6 @@
package net.frankheijden.serverutils.managers; package net.frankheijden.serverutils.bukkit.managers;
import net.frankheijden.serverutils.config.Messenger; import net.frankheijden.serverutils.bukkit.config.Messenger;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
public enum Result { public enum Result {

View file

@ -1,6 +1,6 @@
package net.frankheijden.serverutils.managers; package net.frankheijden.serverutils.bukkit.managers;
import net.frankheijden.serverutils.ServerUtils; import net.frankheijden.serverutils.bukkit.ServerUtils;
public class VersionManager { public class VersionManager {

View file

@ -0,0 +1,28 @@
package net.frankheijden.serverutils.bukkit.reflection;
import net.frankheijden.serverutils.common.reflection.ReflectionUtils;
import net.frankheijden.serverutils.common.reflection.VersionParam;
import org.bukkit.Bukkit;
public class BukkitReflection extends ReflectionUtils {
public static String NMS;
public static int MAJOR;
public static int MINOR;
public static int PATCH;
static {
String bukkitPackage = Bukkit.getServer().getClass().getPackage().getName();
NMS = bukkitPackage.substring(bukkitPackage.lastIndexOf('.') + 1);
String[] split = NMS.split("_");
MAJOR = Integer.parseInt(split[0].substring(1));
MINOR = Integer.parseInt(split[1]);
PATCH = Integer.parseInt(split[2].substring(1, 2));
}
@Override
public boolean isCompatible(VersionParam versionParam) {
return versionParam.min <= MINOR && MINOR <= versionParam.max;
}
}

View file

@ -1,6 +1,6 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getDeclaredField; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getDeclaredField;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;

View file

@ -1,18 +1,18 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.FieldParam.fieldOf; import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.max; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.min; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.versionOf; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getDeclaredField;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.get; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getDeclaredMethod;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllFields; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.invoke;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.set;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getDeclaredField; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getDeclaredMethod; import static net.frankheijden.serverutils.common.reflection.VersionParam.max;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.invoke; import static net.frankheijden.serverutils.common.reflection.VersionParam.min;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.set; import static net.frankheijden.serverutils.common.reflection.VersionParam.versionOf;
import java.io.File; import java.io.File;
import java.lang.reflect.Field; import java.lang.reflect.Field;
@ -40,7 +40,7 @@ public class RCraftServer {
static { static {
try { try {
craftServerClass = Class.forName(String.format("org.bukkit.craftbukkit.%s.CraftServer", craftServerClass = Class.forName(String.format("org.bukkit.craftbukkit.%s.CraftServer",
ReflectionUtils.NMS)); BukkitReflection.NMS));
craftServer = craftServerClass.cast(Bukkit.getServer()); craftServer = craftServerClass.cast(Bukkit.getServer());
commandsConfigFile = (File) getDeclaredMethod(craftServerClass, commandsConfigFile = (File) getDeclaredMethod(craftServerClass,

View file

@ -1,11 +1,11 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.FieldParam.fieldOf; import static net.frankheijden.serverutils.bukkit.reflection.BukkitReflection.MINOR;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MINOR; import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.min; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.get; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllFields; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.invoke;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.invoke; import static net.frankheijden.serverutils.common.reflection.VersionParam.min;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
@ -14,7 +14,7 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Predicate; import java.util.function.Predicate;
import net.frankheijden.serverutils.utils.MapUtils; import net.frankheijden.serverutils.common.utils.MapUtils;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
public class RCraftingManager { public class RCraftingManager {
@ -25,7 +25,7 @@ public class RCraftingManager {
static { static {
try { try {
craftingManagerClass = Class.forName(String.format("net.minecraft.server.%s.CraftingManager", craftingManagerClass = Class.forName(String.format("net.minecraft.server.%s.CraftingManager",
ReflectionUtils.NMS)); BukkitReflection.NMS));
fields = getAllFields(craftingManagerClass, fields = getAllFields(craftingManagerClass,
fieldOf("recipes", min(12))); fieldOf("recipes", min(12)));
} catch (Exception ex) { } catch (Exception ex) {

View file

@ -1,15 +1,15 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.FieldParam.fieldOf; import static net.frankheijden.serverutils.bukkit.reflection.BukkitReflection.MINOR;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MINOR; import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.min; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.get; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllFields; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.invoke;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.set;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.invoke; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.set; import static net.frankheijden.serverutils.common.reflection.VersionParam.min;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
@ -25,7 +25,7 @@ public class RDedicatedServer {
static { static {
try { try {
dedicatedServerClass = Class.forName(String.format("net.minecraft.server.%s.DedicatedServer", dedicatedServerClass = Class.forName(String.format("net.minecraft.server.%s.DedicatedServer",
ReflectionUtils.NMS)); BukkitReflection.NMS));
fields = getAllFields(dedicatedServerClass, fields = getAllFields(dedicatedServerClass,
fieldOf("propertyManager", ALL_VERSIONS), fieldOf("propertyManager", ALL_VERSIONS),

View file

@ -1,8 +1,8 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.FieldParam.fieldOf; import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllFields; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Map; import java.util.Map;
@ -15,7 +15,7 @@ public class RDedicatedServerProperties {
static { static {
try { try {
serverPropertiesClass = Class.forName(String.format("net.minecraft.server.%s.DedicatedServerProperties", serverPropertiesClass = Class.forName(String.format("net.minecraft.server.%s.DedicatedServerProperties",
ReflectionUtils.NMS)); BukkitReflection.NMS));
fields = getAllFields(serverPropertiesClass, fields = getAllFields(serverPropertiesClass,
fieldOf("spawnAnimals", ALL_VERSIONS), fieldOf("spawnAnimals", ALL_VERSIONS),
fieldOf("spawnNpcs", ALL_VERSIONS), fieldOf("spawnNpcs", ALL_VERSIONS),

View file

@ -1,8 +1,8 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
@ -15,7 +15,7 @@ public class RDedicatedServerSettings {
static { static {
try { try {
serverSettingsClass = Class.forName(String.format("net.minecraft.server.%s.DedicatedServerSettings", serverSettingsClass = Class.forName(String.format("net.minecraft.server.%s.DedicatedServerSettings",
ReflectionUtils.NMS)); BukkitReflection.NMS));
methods = getAllMethods(serverSettingsClass, methods = getAllMethods(serverSettingsClass,
methodOf("getProperties", ALL_VERSIONS)); methodOf("getProperties", ALL_VERSIONS));
} catch (Exception ex) { } catch (Exception ex) {

View file

@ -1,9 +1,9 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.invoke;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.invoke; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;

View file

@ -1,9 +1,9 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.invoke;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.invoke; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -16,7 +16,7 @@ public class RJsonList {
static { static {
try { try {
jsonListClass = Class.forName(String.format("net.minecraft.server.%s.JsonList", ReflectionUtils.NMS)); jsonListClass = Class.forName(String.format("net.minecraft.server.%s.JsonList", BukkitReflection.NMS));
methods = getAllMethods(jsonListClass, methods = getAllMethods(jsonListClass,
methodOf("load", ALL_VERSIONS)); methodOf("load", ALL_VERSIONS));
} catch (Exception ex) { } catch (Exception ex) {

View file

@ -1,10 +1,11 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.FieldParam.fieldOf; import static net.frankheijden.serverutils.bukkit.reflection.BukkitReflection.MINOR;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.max; import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.min; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.get; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllFields; import static net.frankheijden.serverutils.common.reflection.VersionParam.max;
import static net.frankheijden.serverutils.common.reflection.VersionParam.min;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Locale; import java.util.Locale;
@ -22,7 +23,7 @@ public class RMinecraftKey {
static { static {
try { try {
minecraftKeyClass = Class.forName(String.format("net.minecraft.server.%s.MinecraftKey", minecraftKeyClass = Class.forName(String.format("net.minecraft.server.%s.MinecraftKey",
ReflectionUtils.NMS)); BukkitReflection.NMS));
fields = getAllFields(minecraftKeyClass, fields = getAllFields(minecraftKeyClass,
fieldOf("a", max(13)), fieldOf("a", max(13)),
fieldOf("namespace", min(14))); fieldOf("namespace", min(14)));
@ -38,7 +39,7 @@ public class RMinecraftKey {
* @throws IllegalAccessException When prohibited access to the field. * @throws IllegalAccessException When prohibited access to the field.
*/ */
public static String getNameSpace(Object instance) throws IllegalAccessException { public static String getNameSpace(Object instance) throws IllegalAccessException {
if (ReflectionUtils.MINOR <= 13) { if (MINOR <= 13) {
return (String) get(fields, instance, "a"); return (String) get(fields, instance, "a");
} }
return (String) get(fields, instance, "namespace"); return (String) get(fields, instance, "namespace");

View file

@ -1,8 +1,8 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
@ -15,7 +15,7 @@ public class RMinecraftServer {
static { static {
try { try {
minecraftServerClass = Class.forName(String.format("net.minecraft.server.%s.MinecraftServer", minecraftServerClass = Class.forName(String.format("net.minecraft.server.%s.MinecraftServer",
ReflectionUtils.NMS)); BukkitReflection.NMS));
methods = getAllMethods(minecraftServerClass, methods = getAllMethods(minecraftServerClass,
methodOf("getServer", ALL_VERSIONS), methodOf("getServer", ALL_VERSIONS),
methodOf("getCraftingManager", ALL_VERSIONS)); methodOf("getCraftingManager", ALL_VERSIONS));

View file

@ -1,8 +1,8 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;

View file

@ -1,8 +1,8 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
@ -14,7 +14,7 @@ public class RPlayerList {
static { static {
try { try {
playerListClass = Class.forName(String.format("net.minecraft.server.%s.PlayerList", ReflectionUtils.NMS)); playerListClass = Class.forName(String.format("net.minecraft.server.%s.PlayerList", BukkitReflection.NMS));
methods = getAllMethods(playerListClass, methods = getAllMethods(playerListClass,
methodOf("getIPBans", ALL_VERSIONS), methodOf("getIPBans", ALL_VERSIONS),
methodOf("getProfileBans", ALL_VERSIONS)); methodOf("getProfileBans", ALL_VERSIONS));

View file

@ -1,6 +1,6 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getDeclaredMethod; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getDeclaredMethod;
import java.io.File; import java.io.File;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;

View file

@ -1,9 +1,9 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.FieldParam.fieldOf; import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllFields; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.set;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.set; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.io.Closeable; import java.io.Closeable;
import java.lang.reflect.Field; import java.lang.reflect.Field;

View file

@ -1,8 +1,8 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.MethodParam.methodOf; import static net.frankheijden.serverutils.common.reflection.MethodParam.methodOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllMethods;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllMethods; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
@ -15,7 +15,7 @@ public class RPropertyManager {
static { static {
try { try {
propertyManagerClass = Class.forName(String.format("net.minecraft.server.%s.PropertyManager", propertyManagerClass = Class.forName(String.format("net.minecraft.server.%s.PropertyManager",
ReflectionUtils.NMS)); BukkitReflection.NMS));
methods = getAllMethods(propertyManagerClass, methods = getAllMethods(propertyManagerClass,
methodOf("getBoolean", ALL_VERSIONS, String.class, boolean.class), methodOf("getBoolean", ALL_VERSIONS, String.class, boolean.class),
methodOf("getString", ALL_VERSIONS, String.class, String.class)); methodOf("getString", ALL_VERSIONS, String.class, String.class));

View file

@ -1,15 +1,15 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.FieldParam.fieldOf; import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.get; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllFields; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import net.frankheijden.serverutils.utils.MapUtils; import net.frankheijden.serverutils.common.utils.MapUtils;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
public class RRegistryMaterials { public class RRegistryMaterials {
@ -21,7 +21,7 @@ public class RRegistryMaterials {
static { static {
try { try {
registryMaterialsClass = Class.forName(String.format("net.minecraft.server.%s.RegistryMaterials", registryMaterialsClass = Class.forName(String.format("net.minecraft.server.%s.RegistryMaterials",
ReflectionUtils.NMS)); BukkitReflection.NMS));
fields = getAllFields(registryMaterialsClass, fields = getAllFields(registryMaterialsClass,
fieldOf("b", ALL_VERSIONS)); fieldOf("b", ALL_VERSIONS));
} catch (Exception ex) { } catch (Exception ex) {

View file

@ -1,15 +1,15 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.FieldParam.fieldOf; import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.get; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllFields; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import net.frankheijden.serverutils.utils.MapUtils; import net.frankheijden.serverutils.common.utils.MapUtils;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
public class RRegistrySimple { public class RRegistrySimple {
@ -20,7 +20,7 @@ public class RRegistrySimple {
static { static {
try { try {
registrySimpleClass = Class.forName(String.format("net.minecraft.server.%s.RegistrySimple", registrySimpleClass = Class.forName(String.format("net.minecraft.server.%s.RegistrySimple",
ReflectionUtils.NMS)); BukkitReflection.NMS));
fields = getAllFields(registrySimpleClass, fields = getAllFields(registrySimpleClass,
fieldOf("c", ALL_VERSIONS)); fieldOf("c", ALL_VERSIONS));
} catch (Exception ex) { } catch (Exception ex) {

View file

@ -1,9 +1,9 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.bukkit.reflection;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.FieldParam.fieldOf; import static net.frankheijden.serverutils.common.reflection.FieldParam.fieldOf;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.VersionParam.ALL_VERSIONS; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.get;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.get; import static net.frankheijden.serverutils.common.reflection.ReflectionUtils.getAllFields;
import static net.frankheijden.serverutils.reflection.ReflectionUtils.getAllFields; import static net.frankheijden.serverutils.common.reflection.VersionParam.ALL_VERSIONS;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.List; import java.util.List;

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.tasks; package net.frankheijden.serverutils.bukkit.tasks;
import com.google.gson.JsonArray; import com.google.gson.JsonArray;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
@ -13,14 +13,14 @@ import java.net.SocketTimeoutException;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.util.logging.Level; import java.util.logging.Level;
import net.frankheijden.serverutils.ServerUtils; import net.frankheijden.serverutils.bukkit.ServerUtils;
import net.frankheijden.serverutils.config.Config; import net.frankheijden.serverutils.bukkit.config.Config;
import net.frankheijden.serverutils.config.Messenger; import net.frankheijden.serverutils.bukkit.config.Messenger;
import net.frankheijden.serverutils.managers.CloseableResult; import net.frankheijden.serverutils.bukkit.managers.CloseableResult;
import net.frankheijden.serverutils.managers.PluginManager; import net.frankheijden.serverutils.bukkit.managers.PluginManager;
import net.frankheijden.serverutils.managers.VersionManager; import net.frankheijden.serverutils.bukkit.managers.VersionManager;
import net.frankheijden.serverutils.utils.FileUtils; import net.frankheijden.serverutils.common.utils.FileUtils;
import net.frankheijden.serverutils.utils.VersionUtils; import net.frankheijden.serverutils.common.utils.VersionUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;

View file

@ -1,9 +1,9 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.bukkit.utils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import net.frankheijden.serverutils.config.Messenger; import net.frankheijden.serverutils.bukkit.config.Messenger;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
public class FormatBuilder { public class FormatBuilder {

View file

@ -1,8 +1,9 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.bukkit.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.utils.PredicateFilter;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.bukkit.utils;
public interface ReloadHandler { public interface ReloadHandler {

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.bukkit.utils;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;

View file

@ -1,5 +1,5 @@
name: ServerUtils name: ServerUtils
main: net.frankheijden.serverutils.ServerUtils main: net.frankheijden.serverutils.bukkit.ServerUtils
version: ${version} version: ${version}
author: FrankHeijden author: FrankHeijden
api-version: '1.13' api-version: '1.13'

11
Common/build.gradle Normal file
View file

@ -0,0 +1,11 @@
group = rootProject.group + '.common'
version = rootProject.version
archivesBaseName = rootProject.name + '-Common'
repositories {
mavenCentral()
}
dependencies {
compileOnly 'com.google.code.gson:gson:2.8.6'
}

View file

@ -0,0 +1,15 @@
package net.frankheijden.serverutils.common.reflection;
public class FieldParam {
public String field;
public VersionParam versionParam;
private FieldParam(String field, VersionParam versionParam) {
this.field = field;
this.versionParam = versionParam;
}
public static FieldParam fieldOf(String field, VersionParam versionParam) {
return new FieldParam(field, versionParam);
}
}

View file

@ -0,0 +1,18 @@
package net.frankheijden.serverutils.common.reflection;
public class MethodParam {
public String method;
public VersionParam versionParam;
public Class<?>[] params;
private MethodParam(String method, VersionParam versionParam, Class<?>... params) {
this.method = method;
this.versionParam = versionParam;
this.params = params;
}
public static MethodParam methodOf(String method, VersionParam versionParam, Class<?>... params) {
return new MethodParam(method, versionParam, params);
}
}

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.reflection; package net.frankheijden.serverutils.common.reflection;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
@ -6,25 +6,20 @@ import java.lang.reflect.Method;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import org.bukkit.Bukkit; public abstract class ReflectionUtils {
public class ReflectionUtils { private static ReflectionUtils instance;
public static String NMS; public ReflectionUtils() {
public static int MAJOR; instance = this;
public static int MINOR;
public static int PATCH;
static {
String bukkitPackage = Bukkit.getServer().getClass().getPackage().getName();
NMS = bukkitPackage.substring(bukkitPackage.lastIndexOf('.') + 1);
String[] split = NMS.split("_");
MAJOR = Integer.parseInt(split[0].substring(1));
MINOR = Integer.parseInt(split[1]);
PATCH = Integer.parseInt(split[2].substring(1, 2));
} }
public static ReflectionUtils getInstance() {
return instance;
}
public abstract boolean isCompatible(VersionParam param);
/** /**
* Retrieves a declared field from a class and makes it accessible. * Retrieves a declared field from a class and makes it accessible.
* @param clazz The class of the method. * @param clazz The class of the method.
@ -90,7 +85,7 @@ public class ReflectionUtils {
public static Map<String, Field> getAllFields(Class<?> clazz, FieldParam... fieldParams) { public static Map<String, Field> getAllFields(Class<?> clazz, FieldParam... fieldParams) {
Map<String, Field> map = new HashMap<>(); Map<String, Field> map = new HashMap<>();
for (FieldParam fieldParam : fieldParams) { for (FieldParam fieldParam : fieldParams) {
if (!fieldParam.versionParam.isCompatible()) continue; if (!getInstance().isCompatible(fieldParam.versionParam)) continue;
try { try {
map.put(fieldParam.field, getDeclaredField(clazz, fieldParam.field)); map.put(fieldParam.field, getDeclaredField(clazz, fieldParam.field));
} catch (NoSuchFieldException ignored) { } catch (NoSuchFieldException ignored) {
@ -113,7 +108,7 @@ public class ReflectionUtils {
public static Map<String, Method> getAllMethods(Class<?> clazz, MethodParam... methodParams) { public static Map<String, Method> getAllMethods(Class<?> clazz, MethodParam... methodParams) {
Map<String, Method> map = new HashMap<>(); Map<String, Method> map = new HashMap<>();
for (MethodParam methodParam : methodParams) { for (MethodParam methodParam : methodParams) {
if (!methodParam.versionParam.isCompatible()) continue; if (!getInstance().isCompatible(methodParam.versionParam)) continue;
try { try {
map.put(methodParam.method, getDeclaredMethod(clazz, methodParam.method, methodParam.params)); map.put(methodParam.method, getDeclaredMethod(clazz, methodParam.method, methodParam.params));
} catch (NoSuchMethodException ignored) { } catch (NoSuchMethodException ignored) {
@ -174,70 +169,4 @@ public class ReflectionUtils {
if (field == null) return; if (field == null) return;
field.set(instance, value); field.set(instance, value);
} }
public static class VersionParam {
public static VersionParam ALL_VERSIONS = new VersionParam(Integer.MIN_VALUE, Integer.MAX_VALUE);
public int min;
public int max;
private VersionParam(int min, int max) {
this.min = min;
this.max = max;
}
public static VersionParam versionOf(int ver) {
return new VersionParam(ver, ver);
}
public static VersionParam between(int min, int max) {
return new VersionParam(min, max);
}
public static VersionParam min(int min) {
return between(min, Integer.MAX_VALUE);
}
public static VersionParam max(int max) {
return between(Integer.MIN_VALUE, max);
}
public boolean isCompatible() {
return VersionParam.isCompatible(this);
}
public static boolean isCompatible(VersionParam versionParam) {
return versionParam.min <= MINOR && MINOR <= versionParam.max;
}
}
public static class FieldParam {
public String field;
public VersionParam versionParam;
private FieldParam(String field, VersionParam versionParam) {
this.field = field;
this.versionParam = versionParam;
}
public static FieldParam fieldOf(String field, VersionParam versionParam) {
return new FieldParam(field, versionParam);
}
}
public static class MethodParam {
public String method;
public VersionParam versionParam;
public Class<?>[] params;
private MethodParam(String method, VersionParam versionParam, Class<?>... params) {
this.method = method;
this.versionParam = versionParam;
this.params = params;
}
public static MethodParam methodOf(String method, VersionParam versionParam, Class<?>... params) {
return new MethodParam(method, versionParam, params);
}
}
} }

View file

@ -0,0 +1,30 @@
package net.frankheijden.serverutils.common.reflection;
public class VersionParam {
public static VersionParam ALL_VERSIONS = new VersionParam(Integer.MIN_VALUE, Integer.MAX_VALUE);
public int min;
public int max;
private VersionParam(int min, int max) {
this.min = min;
this.max = max;
}
public static VersionParam versionOf(int ver) {
return new VersionParam(ver, ver);
}
public static VersionParam between(int min, int max) {
return new VersionParam(min, max);
}
public static VersionParam min(int min) {
return between(min, Integer.MAX_VALUE);
}
public static VersionParam max(int max) {
return between(Integer.MIN_VALUE, max);
}
}

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.common.utils;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.common.utils;
import java.util.List; import java.util.List;

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.common.utils;
public interface ListFormat<T> { public interface ListFormat<T> {

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.common.utils;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.common.utils;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.logging.Filter; import java.util.logging.Filter;

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.common.utils;
import java.util.regex.Pattern; import java.util.regex.Pattern;

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.common.utils;
import static java.util.Arrays.asList; import static java.util.Arrays.asList;
import static java.util.Collections.singletonList; import static java.util.Collections.singletonList;

View file

@ -1,4 +1,4 @@
package net.frankheijden.serverutils.utils; package net.frankheijden.serverutils.common.utils;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.params.provider.Arguments.of; import static org.junit.jupiter.params.provider.Arguments.of;

View file

@ -1,61 +1,58 @@
plugins { plugins {
id 'java' id 'java'
id 'checkstyle'
id 'com.github.johnrengelman.shadow' version '5.2.0' id 'com.github.johnrengelman.shadow' version '5.2.0'
} }
String packagePath = 'net.frankheijden.serverutils' group = 'net.frankheijden.serverutils'
group = packagePath version = '1.5.3'
version '1.5.3'
sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8
repositories { subprojects {
mavenCentral() apply plugin: 'java'
maven { url 'https://repo.aikar.co/content/groups/aikar/' } apply plugin: 'checkstyle'
maven { url 'https://papermc.io/repo/repository/maven-public/' } apply plugin: 'com.github.johnrengelman.shadow'
sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8
repositories {
mavenCentral()
maven { url 'https://repo.aikar.co/content/groups/aikar/' }
maven { url 'https://papermc.io/repo/repository/maven-public/' }
}
dependencies {
testCompile 'org.assertj:assertj-core:3.15.0'
testCompile 'org.junit.jupiter:junit-jupiter-api:5.6.2'
testCompile 'org.junit.jupiter:junit-jupiter-params:5.6.2'
testCompile 'org.junit.jupiter:junit-jupiter-engine:5.6.2'
}
compileJava {
options.compilerArgs += ["-parameters"]
options.fork = true
options.forkOptions.executable = 'javac'
}
test {
useJUnitPlatform()
}
checkstyle {
toolVersion "8.25"
configFile = rootProject.file('config/checkstyle/checkstyle.xml')
ignoreFailures = false
maxErrors = 0
maxWarnings = 0
}
shadowJar.dependsOn checkstyleMain, checkstyleTest, test
} }
dependencies { dependencies {
implementation 'co.aikar:acf-paper:0.5.0-SNAPSHOT' compile project(path: ':Common', configuration: 'shadow')
implementation 'org.bstats:bstats-bukkit:1.7' compile project(path: ':Bukkit', configuration: 'shadow')
compileOnly 'com.destroystokyo.paper:paper-api:1.16.1-R0.1-SNAPSHOT'
testCompile 'org.assertj:assertj-core:3.15.0'
testCompile 'org.junit.jupiter:junit-jupiter-api:5.6.2'
testCompile 'org.junit.jupiter:junit-jupiter-params:5.6.2'
testCompile 'org.junit.jupiter:junit-jupiter-engine:5.6.2'
}
processResources {
from('src/main/resources') {
include 'plugin.yml'
expand(version: project.version)
}
}
compileJava {
options.compilerArgs += ["-parameters"]
options.fork = true
options.forkOptions.executable = 'javac'
}
shadowJar {
relocate 'co.aikar.commands', packagePath + '.acf'
relocate 'co.aikar.locales', packagePath + '.locales'
relocate 'org.bstats.bukkit', packagePath + '.dependencies.bstats'
}
checkstyle {
toolVersion "8.25"
configFile = rootProject.file('config/checkstyle/checkstyle.xml')
ignoreFailures = false
maxErrors = 0
maxWarnings = 0
}
test {
useJUnitPlatform()
} }
build.dependsOn shadowJar build.dependsOn shadowJar

View file

@ -1,2 +1,3 @@
rootProject.name = 'ServerUtils' rootProject.name = 'ServerUtils'
include 'Common', 'Bukkit'