diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 31e9d92b..ad348d45 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -7,35 +7,36 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 17.0.2
- uses: actions/setup-java@v1
+ - uses: actions/checkout@v4
+ - name: Set up JDK 21
+ uses: actions/setup-java@v4
with:
- java-version: 17.0
-
+ java-version: 21.0
+ cache: maven
+ distribution: 'temurin'
+
- name: Cache Maven packages
- uses: actions/cache@v2
+ uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2-
- name: Compile
run: mvn -B clean package -DskipTests
- working-directory: AtlasParent/
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Atlas
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: AtlasBukkit
- path: AtlasParent/AtlasBukkit/target/AtlasBukkit-*.jar
+ path: AtlasBukkit/target/AtlasBukkit-*.jar
- name: Upload AtlasBungee
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: AtlasBungee
- path: AtlasParent/AtlasBungee/target/AtlasBungee-*.jar
+ path: AtlasBungee/target/AtlasBungee-*.jar
- name: Upload AtlasVelocity
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v4
with:
name: AtlasVelocity
- path: AtlasParent/AtlasVelocity/target/AtlasVelocity-*.jar
+ path: AtlasVelocity/target/AtlasVelocity-*.jar
diff --git a/AtlasParent/Atlas/pom.xml b/Atlas/pom.xml
similarity index 84%
rename from AtlasParent/Atlas/pom.xml
rename to Atlas/pom.xml
index 23b387f7..b4923445 100644
--- a/AtlasParent/Atlas/pom.xml
+++ b/Atlas/pom.xml
@@ -10,10 +10,11 @@
Atlas
+ 1.12.1.1
scm:git:https://github.com/funkemunky/Atlas
- 1.12.1
+ 1.12.1.1
@@ -27,8 +28,9 @@
maven-compiler-plugin
3.13.0
- 8
- 8
+ 17
+ 17
+ true
-XDignore.symbol.file
@@ -50,6 +52,7 @@
shade
+ false
true
@@ -58,15 +61,31 @@
co.aikar.commands
- cc.funkemunky.api.co.aikar.commands
+ cc.funkemunky.api.utils.co.aikar.commands
+
+
+ co.aikar.locales
+ cc.funkemunky.api.utils.co.aikar.locales
com.google.gson
cc.funkemunky.api.utils.com.google.gson
- org.snakeyaml
- cc.funkemunky.api.utils.org.snakeyaml
+ com.google.errorprone
+ cc.funkemunky.api.utils.com.google.gson
+
+
+ com.google.j2objc
+ cc.funkemunky.api.utils.com.google.j2objc
+
+
+ com.google.thirdparty
+ cc.funkemunky.api.utils.com.google.thirdparty
+
+
+ org.yaml
+ cc.funkemunky.api.utils.org.yaml
org.objectweb.asm
@@ -80,6 +99,30 @@
it.unimi.dsi
cc.funkemunky.api.utils.it.unimi.dsi
+
+ com.mongodb
+ cc.funkemunky.api.utils.com.mongodb
+
+
+ okhttp3
+ cc.funkemunky.api.utils.okhttp3
+
+
+ okio
+ cc.funkemunky.api.utils.okio
+
+
+ org.bson
+ cc.funkemunky.api.utils.org.bson
+
+
+ org.json
+ cc.funkemunky.api.utils.org.json
+
+
+ org.slf4j
+ cc.funkemunky.api.utils.org.slf4j
+
@@ -95,7 +138,7 @@
- cc.funkemunky.utils:Atlas
+ cc.funkemunky.api:Atlas
**
@@ -198,6 +241,12 @@
+
+ org.yaml
+ snakeyaml
+ 2.2
+ compile
+
dev.brighten.db
Assembly
@@ -217,15 +266,15 @@
provided
- org.github.paperspigot
- 1.19.4
- 1.19.4
+ org.spigotmc
+ spigot
+ 1.21.11-R0.2-SNAPSHOT
provided
- org.spigotmc
- spigot
- 1.19-R0.1
+ org.github.paperspigot
+ 1.19.4
+ 1.19.4
provided
@@ -283,16 +332,10 @@
1.16.2
provided
-
- org.yaml
- snakeyaml
- 2.2
- compile
-
club.minnced
discord-webhooks
- 0.7.5
+ 0.8.4
compile
@@ -334,7 +377,7 @@
com.google.guava
guava
- 31.1-jre
+ 33.4.0-jre
compile
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/Atlas.java b/Atlas/src/main/java/cc/funkemunky/api/Atlas.java
similarity index 90%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/Atlas.java
rename to Atlas/src/main/java/cc/funkemunky/api/Atlas.java
index 5c979ac6..0dd5c3de 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/Atlas.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/Atlas.java
@@ -1,3 +1,4 @@
+
package cc.funkemunky.api;
import cc.funkemunky.api.bungee.BungeeManager;
@@ -85,19 +86,16 @@ public class Atlas extends JavaPlugin {
private final Map worldInfoMap = new HashMap<>();
@ConfigSetting(path = "updater", name = "autoDownload")
- private static boolean autoDownload = false;
+ private static volatile boolean autoDownload = false;
@ConfigSetting(path = "logging", name = "verbose")
- private static boolean verboseLogging = true;
+ private static volatile boolean verboseLogging = true;
@ConfigSetting(name = "metrics")
- private static boolean metricsEnabled = true;
-
- @ConfigSetting(path = "init", name = "reloadDependingPlugins")
- private static boolean enableDependingPlugins = true;
+ private static volatile boolean metricsEnabled = true;
@ConfigSetting(path = "ticking", name = "runAsync")
- private static boolean runAsync = false;
+ private static volatile boolean runAsync = false;
@ConfigSetting(name = "debug")
public static boolean debugMode = false;
@@ -226,15 +224,19 @@ private void shutdownExecutor() {
schedular.shutdown();
}
- public Configuration loadConfig(Plugin plugin) {
- return loadConfig(plugin, "config");
+ public void loadConfig(Plugin plugin) {
+ loadConfig(plugin, "config");
}
@SneakyThrows
- public Configuration loadConfig(Plugin plugin, String name) {
+ public void loadConfig(Plugin plugin, String name) {
File configFile = new File(plugin.getDataFolder(), name +".yml");
if(!configFile.exists()){
- configFile.getParentFile().mkdirs();
+ if(configFile.getParentFile().mkdirs()) {
+ alog(true, "&7Created plugin folder for &e%s&7!", plugin.getName());
+ } else {
+ alog(true, "&cFailed to create plugin folder for &e%s&c! Please check your permissions.", plugin.getName());
+ }
MiscUtils.copy(plugin.getResource(name + ".yml"), configFile);
}
Configuration yaml = ConfigurationProvider.getProvider(YamlConfiguration.class)
@@ -248,7 +250,6 @@ public Configuration loadConfig(Plugin plugin, String name) {
return value;
});
- return yaml;
}
public Configuration getConfig(Plugin plugin, String name) {
@@ -270,7 +271,7 @@ public void saveConfig(Plugin plugin, String name) {
ConfigurationProvider.getProvider(YamlConfiguration.class)
.save(config, new File(plugin.getDataFolder(), name + ".yml"));
} catch (IOException e) {
- e.printStackTrace();
+ getLogger().log(Level.WARNING, "Failed to save config for plugin " + plugin.getName(), e);
}
}
@@ -282,11 +283,11 @@ public void reloadConfig(Plugin plugin, String name) {
loadConfig(plugin, name);
}
+
public void reloadConfig(Plugin plugin) {
reloadConfig(plugin, "config");
}
- @Deprecated
public CommandManager getCommandManager(Plugin plugin) {
return pluginCommandManagers.computeIfAbsent(plugin.getName(), key -> new CommandManager(plugin));
}
@@ -364,10 +365,14 @@ public void initializeScanner(Class extends Plugin> mainClass, Plugin plugin,
try {
if(loader instanceof RemoteClassLoader) {
return new WrappedClass(((RemoteClassLoader)loader).findClass(name));
- } else
- return new WrappedClass(Class.forName(name, true, loader));
+ } else return new WrappedClass(Class.forName(name, true, loader));
} catch (ClassNotFoundException e) {
- e.printStackTrace();
+ if(debugMode) getLogger().log(Level.WARNING, "Failed to load class: " + name, e);
+ //If the class is not found, we return null so it can be filtered out later.
+ if(e.getMessage() != null && e.getMessage().contains("Unsupported major.minor version")) {
+ alog(true, "&cThe class &e%s &cis not supported by this version of Atlas! "
+ + "Please update your server to a newer version.", name);
+ }
}
return null;
} else {
@@ -378,7 +383,8 @@ public void initializeScanner(Class extends Plugin> mainClass, Plugin plugin,
if(c == null) return false;
Init init = c.getAnnotation(Init.class);
//If the current version is 1.8, but the required version is 1.9, this will return false.
- if(ProtocolVersion.getGameVersion().isBelow(init.requireProtocolVersion())) return false;
+ if(ProtocolVersion.getGameVersion() != ProtocolVersion.UNKNOWN
+ && ProtocolVersion.getGameVersion().isBelow(init.requireProtocolVersion())) return false;
String[] required = init.requirePlugins();
@@ -458,7 +464,7 @@ public void initializeScanner(Class extends Plugin> mainClass, Plugin plugin,
} else if(field.isAnnotationPresent(ConfigSetting.class)) {
ConfigSetting setting = field.getAnnotation(ConfigSetting.class);
- String name = setting.name().length() > 0
+ String name = !setting.name().isEmpty()
? setting.name()
: field.getField().getName();
@@ -469,12 +475,12 @@ public void initializeScanner(Class extends Plugin> mainClass, Plugin plugin,
FileConfiguration config = plugin.getConfig();
- if(config.get((setting.path().length() > 0 ? setting.path() + "." : "") + name) == null) {
+ if(config.get((!setting.path().isEmpty() ? setting.path() + "." : "") + name) == null) {
alog(true,"&7Value not set in config! Setting value...");
- config.set((setting.path().length() > 0 ? setting.path() + "." : "") + name, field.get(obj));
+ config.set((!setting.path().isEmpty() ? setting.path() + "." : "") + name, field.get(obj));
plugin.saveConfig();
} else {
- Object configObj = config.get((setting.path().length() > 0 ? setting.path() + "." : "") + name);
+ Object configObj = config.get((!setting.path().isEmpty() ? setting.path() + "." : "") + name);
alog(true, "&7Set field to value &e%s&7.",
(setting.hide() ? "HIDDEN" : configObj));
field.set(obj, configObj);
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeAPI.java b/Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeAPI.java
similarity index 86%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeAPI.java
rename to Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeAPI.java
index fdee969b..de9a9809 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeAPI.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeAPI.java
@@ -6,7 +6,6 @@
import cc.funkemunky.api.utils.Color;
import cc.funkemunky.api.utils.ConfigSetting;
import cc.funkemunky.api.utils.Init;
-import lombok.val;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -15,6 +14,7 @@
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.UUID;
+import java.util.logging.Level;
@Init
@@ -39,7 +39,7 @@ public static void broadcastMessage(String message, String permission) {
Atlas.getInstance().getBungeeManager().sendData(stream.toByteArray(), "atlas:out");
} catch(IOException e) {
- e.printStackTrace();
+ Atlas.getInstance().getLogger().log(Level.WARNING, "Failed to send broadcast msg", e);
}
}
@@ -52,7 +52,8 @@ public static void movePlayerToServer(String playerName, String server) {
oStream.writeUTF(playerName);
oStream.writeUTF(server);
} catch (IOException e) {
- e.printStackTrace();
+ Atlas.getInstance().getLogger().log(Level.WARNING, "Failed to move player to server", e);
+ return;
}
Atlas.getInstance().getBungeeManager().sendData(stream.toByteArray());
}
@@ -70,7 +71,8 @@ public static void kickPlayer(String name, String reason) {
oStream.writeUTF(name);
oStream.writeUTF(reason);
} catch (IOException e) {
- e.printStackTrace();
+ Atlas.getInstance().getLogger().log(Level.WARNING, "Failed to kick player", e);
+ return;
}
Atlas.getInstance().getBungeeManager().sendData(stream.toByteArray());
@@ -86,7 +88,7 @@ public static void requestVersionFromBungee(UUID uuid) {
Atlas.getInstance().getBungeeManager().sendData(stream.toByteArray());
} catch(IOException e) {
- e.printStackTrace();
+ Atlas.getInstance().getLogger().log(Level.WARNING, "Failed to request version from Bungee", e);
}
}
@@ -100,7 +102,7 @@ public static void sendMessageToPlayer(String name, String message) {
oStream.close();
Atlas.getInstance().getBungeeManager().sendData(stream.toByteArray());
} catch (IOException e) {
- e.printStackTrace();
+ Atlas.getInstance().getLogger().log(Level.WARNING, "Failed to send message to player: " + name, e);
}
}
@@ -133,11 +135,11 @@ public static void sendCommand(String command) {
oStream.writeUTF("commandBungee");
oStream.writeObject(command);
oStream.close();
- val array = stream.toByteArray();
+ var array = stream.toByteArray();
Atlas.getInstance().getBungeeManager().sendData(array, "atlas:out");
} catch (IOException e) {
- e.printStackTrace();
+ Atlas.getInstance().getLogger().log(Level.WARNING, "Failed to send command to Bungee", e);
}
}
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeManager.java b/Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeManager.java
similarity index 99%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeManager.java
rename to Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeManager.java
index 61d3eff0..55e05b90 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeManager.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/bungee/BungeeManager.java
@@ -11,7 +11,6 @@
import cc.funkemunky.api.utils.RunUtils;
import cc.funkemunky.api.utils.Tuple;
import lombok.Getter;
-import lombok.val;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.messaging.PluginMessageListener;
@@ -46,7 +45,7 @@ public BungeeManager() {
Bukkit.getMessenger().registerIncomingPluginChannel(Atlas.getInstance(), atlasIn, this);
try {
- val wrappedClass = new WrappedClass(Class.forName("org.spigotmc.SpigotConfig"));
+ var wrappedClass = new WrappedClass(Class.forName("org.spigotmc.SpigotConfig"));
isBungee = wrappedClass.getFieldByName("bungee").get(null);
} catch(ClassNotFoundException e) {
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/events/BungeeReceiveEvent.java b/Atlas/src/main/java/cc/funkemunky/api/bungee/events/BungeeReceiveEvent.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/events/BungeeReceiveEvent.java
rename to Atlas/src/main/java/cc/funkemunky/api/bungee/events/BungeeReceiveEvent.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/objects/BungeePlayer.java b/Atlas/src/main/java/cc/funkemunky/api/bungee/objects/BungeePlayer.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/objects/BungeePlayer.java
rename to Atlas/src/main/java/cc/funkemunky/api/bungee/objects/BungeePlayer.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/objects/Version.java b/Atlas/src/main/java/cc/funkemunky/api/bungee/objects/Version.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/bungee/objects/Version.java
rename to Atlas/src/main/java/cc/funkemunky/api/bungee/objects/Version.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/CommandMessages.java b/Atlas/src/main/java/cc/funkemunky/api/commands/CommandMessages.java
similarity index 96%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/CommandMessages.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/CommandMessages.java
index 018c45d2..8e3dd5f0 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/CommandMessages.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/CommandMessages.java
@@ -7,7 +7,6 @@
@Getter
@Setter
@AllArgsConstructor
-@Deprecated
public class CommandMessages {
private String noPermission, invalidArguments, playerOnly, consoleOnly, primaryColor, secondaryColor, titleColor, errorColor, valueColor, successColor;
}
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeArgument.java b/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeArgument.java
similarity index 73%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeArgument.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/FunkeArgument.java
index c218825f..cb515fcc 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeArgument.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeArgument.java
@@ -9,7 +9,6 @@
@Getter
@Setter
-@Deprecated
public abstract class FunkeArgument {
private FunkeCommand parent;
private String name, display, description;
@@ -18,15 +17,6 @@ public abstract class FunkeArgument {
private Map> tabComplete = new HashMap<>();
private String[] permission;
- public FunkeArgument(FunkeCommand parent, String name, String display, String description) {
- this.parent = parent;
- this.name = name;
- this.display = display;
- this.description = description;
-
- playerOnly = false;
- }
-
public FunkeArgument(FunkeCommand parent, String name, String display, String description, String... permission) {
this.parent = parent;
this.name = name;
@@ -36,10 +26,6 @@ public FunkeArgument(FunkeCommand parent, String name, String display, String de
playerOnly = false;
}
- public void addAlias(String alias) {
- aliases.add(alias);
- }
-
public void addTabComplete(int arg, String... name) {
List completion = tabComplete.getOrDefault(arg, new ArrayList<>());
@@ -50,8 +36,5 @@ public void addTabComplete(int arg, String... name) {
public abstract void onArgument(CommandSender sender, Command cmd, String[] args);
- public FunkeCommand getParent() {
- return this.parent;
- }
}
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommand.java b/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommand.java
similarity index 80%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommand.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommand.java
index bd79fe89..89575a60 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommand.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommand.java
@@ -16,6 +16,7 @@
import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
+import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
@@ -23,50 +24,19 @@
@Getter
@Setter
-@Deprecated
public abstract class FunkeCommand
implements CommandExecutor, TabCompleter {
- private static FunkeCommand instance;
private String name, display, permission, description, adminPerm = "api.admin";
private boolean helpPage, playerOnly;
private final List arguments;
private CommandMessages commandMessages;
public FunkeCommand(JavaPlugin plugin, String name, String display, String description, String permission) {
- this.name = name;
- this.display = display;
- this.permission = permission;
- this.description = description;
-
- commandMessages = new CommandMessages("No permission.", "Invalid arguments. Please check the help page for more information.", "You must be a player to use this feature", "Only console can use this feature.", Color.Gray, Color.Yellow, Color.Gold, Color.Red, Color.White, Color.Green);
-
- this.arguments = new ArrayList<>();
- instance = this;
- helpPage = true;
- plugin.getCommand(name).setExecutor(this);
- plugin.getCommand(name).setTabCompleter(this);
-
- this.addArguments();
+ this(plugin, name, display, description, permission, false, false);
}
public FunkeCommand(JavaPlugin plugin, String name, String display, String description, String permission, boolean registerLater) {
- this.name = name;
- this.display = display;
- this.permission = permission;
- this.description = description;
-
- commandMessages = new CommandMessages("No permission.", "Invalid arguments. Please check the help page for more information.", "You must be a player to use this feature", "Only console can use this feature.", Color.Gray, Color.Yellow, Color.Gold, Color.Red, Color.White, Color.Green);
-
- this.arguments = new ArrayList<>();
- instance = this;
- helpPage = true;
-
- if(!registerLater) {
- plugin.getCommand(name).setExecutor(this);
- plugin.getCommand(name).setTabCompleter(this);
- }
-
- this.addArguments();
+ this(plugin, name, display, description, permission, false, registerLater);
}
public FunkeCommand(JavaPlugin plugin, String name, String display, String permission, String description, boolean helpPage, boolean registerLater) {
@@ -76,20 +46,24 @@ public FunkeCommand(JavaPlugin plugin, String name, String display, String permi
this.description = description;
this.helpPage = helpPage;
- commandMessages = new CommandMessages("No permission.", "Invalid arguments. Please check the help page for more information.", "You must be a player to use this feature", "Only console can use this feature.", Color.Gray, Color.Yellow, Color.Gold, Color.Red, Color.White, Color.Green);
commandMessages = new CommandMessages("No permission.", "Invalid arguments. Please check the help page for more information.", "You must be a player to use this feature", "Only console can use this feature.", Color.Gray, Color.Yellow, Color.Gold, Color.Red, Color.White, Color.Green);
this.arguments = new ArrayList<>();
- instance = this;
if(!registerLater) {
- plugin.getCommand(name).setExecutor(this);
- plugin.getCommand(name).setTabCompleter(this);
+ var command = plugin.getCommand(name);
+
+ if(command != null) {
+ command.setExecutor(this);
+ command.setTabCompleter(this);
+ } else {
+ Atlas.getInstance().getLogger().warning("Command " + name + " not found in plugin.yml. Please ensure it is registered.");
+ }
}
this.addArguments();
}
- public List onTabComplete(CommandSender commandSender, Command command, String label, String[] args) {
+ public List onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, String label, String[] args) {
Atlas.getInstance().getProfile().start("command:" + getName() + "#tabComplete");
List toReturn = new ArrayList<>();
@@ -125,11 +99,11 @@ public List onTabComplete(CommandSender commandSender, Command command,
}
Atlas.getInstance().getProfile().stop("command:" + getName() + "#tabComplete");
- return toReturn.size() == 0 ? null : toReturn;
+ return toReturn.isEmpty() ? null : toReturn;
}
@Override
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
+ public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String label, String[] args) {
Atlas.getInstance().getProfile().start("command:" + getName() + "#onCommand");
if (this.permission != null && !sender.hasPermission(this.permission)) {
sender.sendMessage(commandMessages.getErrorColor() + commandMessages.getNoPermission());
@@ -155,7 +129,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String label, String
StringBuilder aliasesFormatted = new StringBuilder();
List aliases = argument.getAliases();
- if (aliases.size() > 0) {
+ if (!aliases.isEmpty()) {
for (String aliase : aliases) {
aliasesFormatted.append(Color.White).append(aliase).append(Color.Gray).append(", ");
}
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommandManager.java b/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommandManager.java
similarity index 86%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommandManager.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommandManager.java
index 0dbf4c63..33343389 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommandManager.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/FunkeCommandManager.java
@@ -1,7 +1,6 @@
package cc.funkemunky.api.commands;
import lombok.Getter;
-import lombok.val;
import org.bukkit.plugin.Plugin;
import java.util.ArrayList;
@@ -9,8 +8,8 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+@SuppressWarnings("unused")
@Getter
-@Deprecated
public class FunkeCommandManager {
private final Map> commands;
@@ -19,7 +18,7 @@ public FunkeCommandManager() {
}
public void addCommand(Plugin plugin, FunkeCommand command) {
- val list = commands.getOrDefault(plugin, new ArrayList<>());
+ var list = commands.getOrDefault(plugin, new ArrayList<>());
list.add(command);
@@ -32,7 +31,7 @@ public void removeAllCommands() {
public void removeCommand(String name) {
commands.keySet().forEach(key -> {
- val list = commands.get(key);
+ var list = commands.get(key);
list.stream().filter(cmd -> cmd.getName().equalsIgnoreCase(name)).forEach(list::remove);
});
@@ -44,7 +43,7 @@ public void removeAll(Plugin plugin) {
public void removeCommand(FunkeCommand command) {
commands.keySet().stream().filter(key -> commands.get(key).contains(command)).forEach(key -> {
- val list = commands.get(key);
+ var list = commands.get(key);
list.remove(command);
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/ColorScheme.java b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/ColorScheme.java
similarity index 95%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/ColorScheme.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/ColorScheme.java
index df5515ca..a4a2fe3e 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/ColorScheme.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/ColorScheme.java
@@ -7,7 +7,6 @@
@AllArgsConstructor
@Getter
@Setter
-@Deprecated
public class ColorScheme {
private String title, body, key, value, colon, error, body2nd;
}
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/Command.java b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/Command.java
similarity index 98%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/Command.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/Command.java
index 097d07dd..9d13c80c 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/Command.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/Command.java
@@ -7,7 +7,6 @@
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
-@Deprecated
public @interface Command {
String name() default "";
String display() default "";
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandAdapter.java b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandAdapter.java
similarity index 97%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandAdapter.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandAdapter.java
index ea67799c..b26063c3 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandAdapter.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandAdapter.java
@@ -10,7 +10,6 @@
@Getter
@Setter
@AllArgsConstructor
-@Deprecated
public class CommandAdapter {
private CommandSender sender;
private Command command;
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandManager.java b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandManager.java
similarity index 86%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandManager.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandManager.java
index 203b1ff4..05738904 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandManager.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandManager.java
@@ -5,14 +5,11 @@
import cc.funkemunky.api.reflections.types.WrappedClass;
import cc.funkemunky.api.reflections.types.WrappedField;
import cc.funkemunky.api.reflections.types.WrappedMethod;
-import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion;
-import cc.funkemunky.api.tinyprotocol.packet.types.v1_13.DontImportIfNotLatestThanks;
import cc.funkemunky.api.utils.Color;
import cc.funkemunky.api.utils.JsonMessage;
import cc.funkemunky.api.utils.MathUtils;
import cc.funkemunky.api.utils.MiscUtils;
import lombok.Getter;
-import lombok.val;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
@@ -20,23 +17,22 @@
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.SimplePluginManager;
+import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Field;
-import java.lang.reflect.Method;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.logging.Level;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@Getter
-@Deprecated
public class CommandManager implements CommandExecutor {
- private Map commands = new ConcurrentHashMap<>();
- private Plugin plugin;
+ private final Map commands = new ConcurrentHashMap<>();
+ private final Plugin plugin;
@Getter
public SimpleCommandMap map;
public List registered = new ArrayList<>();
- private static DontImportIfNotLatestThanks stuff;
public CommandManager(Plugin plugin) {
this.plugin = plugin;
@@ -45,23 +41,17 @@ public CommandManager(Plugin plugin) {
}
public void createCommandMap(Plugin plugin) {
- if (plugin.getServer().getPluginManager() instanceof SimplePluginManager) {
- SimplePluginManager manager = (SimplePluginManager) plugin.getServer().getPluginManager();
+ if (plugin.getServer().getPluginManager() instanceof SimplePluginManager manager) {
try {
Field field = SimplePluginManager.class.getDeclaredField("commandMap");
field.setAccessible(true);
map = (SimpleCommandMap) field.get(manager);
} catch (IllegalArgumentException | SecurityException | NoSuchFieldException | IllegalAccessException e) {
- e.printStackTrace();
+ Atlas.getInstance().getLogger().log(Level.WARNING, "Failed to create command map", e);
}
}
}
- @Deprecated
- public void registerCommands(Plugin plugin, Object clazz) {
- registerCommands(clazz);
- }
-
public void registerCommands(Object clazz) {
try {
new WrappedClass(clazz.getClass()).getMethods().stream()
@@ -78,7 +68,7 @@ public void registerCommands(Object clazz) {
}
});
} catch(Exception e) {
- e.printStackTrace();
+ Atlas.getInstance().getLogger().log(Level.WARNING, "Failed to register commands for " + clazz.getClass().getName(), e);
}
}
@@ -86,11 +76,11 @@ public void registerCommands(Object clazz) {
public void unregisterCommands(Plugin plugin) {
commands.keySet().stream().filter(key -> commands.get(key).getPlugin().getName().equals(plugin.getName())).forEach(key -> {
- val split = key.split(".");
+ var split = key.split("\\.");
- val name = split[0];
+ var name = split[0];
- val cmd = map.getCommand(name);
+ var cmd = map.getCommand(name);
if(cmd != null) {
cmd.unregister(map);
@@ -108,8 +98,8 @@ public void unregisterCommands() {
commands.clear();
}
- private static WrappedClass scmClass = new WrappedClass(SimpleCommandMap.class);
- private static WrappedField fieldKnownCommands = scmClass.getFieldByType(Map.class, 0);
+ private static final WrappedClass scmClass = new WrappedClass(SimpleCommandMap.class);
+ private static final WrappedField fieldKnownCommands = scmClass.getFieldByType(Map.class, 0);
public void unregisterCommand(String name) {
registered.stream()
@@ -133,26 +123,26 @@ public void unregisterBukkitCommand(org.bukkit.command.Command cmd) {
}
}
} catch (Exception e) {
- e.printStackTrace();
+ Atlas.getInstance().getLogger().log(Level.WARNING, "Failed to unregister command: " + cmd.getName(), e);
}
}
@Override
- public boolean onCommand(CommandSender sender, org.bukkit.command.Command cmd, String label, String[] argsArray) {
+ public boolean onCommand(@NotNull CommandSender sender, @NotNull org.bukkit.command.Command cmd, String label, String[] argsArray) {
List argsList = new ArrayList<>();
String[] args;
if(label.contains(":")) {
- val splitLabel = (label.replace(label.split(":")[0] + ":", ""))
+ var splitLabel = (label.replace(label.split(":")[0] + ":", ""))
.split(":");
argsList.addAll(Arrays.asList(splitLabel));
argsList.addAll(Arrays.asList(argsArray));
args = argsList.toArray(new String[0]);
} else args = argsArray;
for(int arg = args.length; arg >= 0 ; arg--) {
- StringBuffer buffer = new StringBuffer();
+ StringBuilder buffer = new StringBuilder();
buffer.append(label.toLowerCase());
for (int x = 0; x < arg; x++) {
- buffer.append("." + args[x].toLowerCase());
+ buffer.append(".").append(args[x].toLowerCase());
}
String bufferString = buffer.toString();
if(commands.containsKey(buffer.toString())) {
@@ -183,7 +173,8 @@ public boolean onCommand(CommandSender sender, org.bukkit.command.Command cmd, S
try {
entry.getMethod().invoke(entry.getObject(), adapter);
} catch (Exception e) {
- e.printStackTrace();
+ Atlas.getInstance().getLogger().log(Level.WARNING,
+ "Failed to invoke command method: " + entry.getMethod().getMethod().getName(), e);
}
} else {
sender.sendMessage(Color.translate(command.noPermissionMessage()));
@@ -211,7 +202,8 @@ public boolean onCommand(CommandSender sender, org.bukkit.command.Command cmd, S
try {
entry.getMethod().invoke(entry.getObject(), adapter);
} catch (Exception e) {
- e.printStackTrace();
+ Atlas.getInstance().getLogger().log(Level.WARNING,
+ "Failed to invoke command method: " + entry.getMethod().getMethod().getName(), e);
}
} else {
sender.sendMessage(Color.translate(command.noPermissionMessage()));
@@ -259,7 +251,7 @@ public void runHelpMessage(CommandAdapter command, CommandSender sender, ColorSc
if (sender instanceof Player) {
StringBuilder cmdaliasesFormatted = new StringBuilder();
List cmdaliases = Arrays.asList(command.getAnnotation().aliases());
- if (cmdaliases.size() > 0) {
+ if (!cmdaliases.isEmpty()) {
for (String aliase : cmdaliases) {
cmdaliasesFormatted.append(scheme.getValue()).append(aliase).append(scheme.getBody())
.append(", ");
@@ -284,7 +276,7 @@ public void runHelpMessage(CommandAdapter command, CommandSender sender, ColorSc
Command argument = arguments.get(i);
StringBuilder aliasesFormatted = new StringBuilder();
List aliases = Arrays.asList(argument.aliases());
- if (aliases.size() > 0) {
+ if (!aliases.isEmpty()) {
for (String aliase : aliases) {
aliasesFormatted.append(scheme.getValue()).append(aliase).append(scheme.getBody())
.append(", ");
@@ -301,7 +293,7 @@ public void runHelpMessage(CommandAdapter command, CommandSender sender, ColorSc
: scheme.getTitle() + "Permission: " + scheme.getValue() + "none")
+ "\n" + scheme.getTitle() + "Aliases: " + scheme.getValue() + aliasesFormatted.toString());
message.addText(scheme.getBody()+ "/" + command.getLabel().toLowerCase()
- + scheme.getValue() + " " + (argument.display().length() > 0 ? argument.display()
+ + scheme.getValue() + " " + (!argument.display().isEmpty() ? argument.display()
: argument.name()) + scheme.getBody() + " to " + argument.description())
.addHoverText(hoverText);
message.sendToPlayer((Player) sender);
@@ -312,7 +304,7 @@ public void runHelpMessage(CommandAdapter command, CommandSender sender, ColorSc
for (int i = (page - 1) * 6; i < Math.min(arguments.size(), page * 6); i++) {
Command argument = arguments.get(i);
sender.sendMessage(scheme.getBody()+ "/" + command.getLabel().toLowerCase() + scheme.getValue()
- + " " + (argument.display().length() > 0 ? argument.display() : argument.name())
+ + " " + (!argument.display().isEmpty() ? argument.display() : argument.name())
+ scheme.getBody() + " to " + argument.description());
}
}
@@ -329,7 +321,7 @@ public void registerCommand(Command command, String label, WrappedMethod method,
commands.put(annotation.name().toLowerCase(), cmdReg);
- val split = ("/" + annotation.name().toLowerCase()).split("\\.");
+ var split = ("/" + annotation.name().toLowerCase()).split("\\.");
if(split.length > 0) {
String[] requirements;
if(split.length > 1) {
@@ -348,7 +340,7 @@ public void registerCommand(Command command, String label, WrappedMethod method,
if (map.getCommand(cmdLabel) == null) {
SpigotCommand cmd = new SpigotCommand(cmdLabel, this, plugin);
Arrays.stream(annotation.tabCompletions()).forEach(string -> {
- val split1 = ("/" + annotation.name().toLowerCase()).split(".");
+ var split1 = ("/" + annotation.name().toLowerCase()).split("\\.");
String[] requirements1;
if(split1.length > 1) {
requirements1 = new String[split1.length - 1];
@@ -365,7 +357,7 @@ public void registerCommand(Command command, String label, WrappedMethod method,
registered.add(cmd);
if(label.contains(".")) {
- String[] args = label.split(".");
+ String[] args = label.split("\\.");
if(args.length > 1) {
StringBuilder completeLabel = new StringBuilder();
@@ -380,36 +372,37 @@ public void registerCommand(Command command, String label, WrappedMethod method,
}
}
if (!command.description().equalsIgnoreCase("") && Objects.equals(cmdLabel, label)) {
- map.getCommand(cmdLabel).setDescription(command.description());
+ var cmdFromLabel = map.getCommand(cmdLabel);
+
+ if(cmdFromLabel != null) {
+ cmdFromLabel.setDescription(command.description());
+ }
}
if (!command.usage().equalsIgnoreCase("") && Objects.equals(cmdLabel, label)) {
- map.getCommand(cmdLabel).setUsage(command.usage());
+ var cmdFromLabel = map.getCommand(cmdLabel);
+ if(cmdFromLabel != null) {
+ cmdFromLabel.setUsage(command.usage());
+ }
}
}
- @Deprecated
- public void registerCommand(Plugin plugin, Command command, String label, Method method, Object clazz) {
- registerCommand(command, label, new WrappedMethod(new WrappedClass(clazz.getClass()), method), clazz);
- }
-
public void addCompletionsForCommand(String command, String...completions) {
if(commands.containsKey(command)) {
CommandRegister reg = commands.get(command);
- String[] split = command.split(".");
+ String[] split = command.split("\\.");
String label = split[0];
SpigotCommand cmd = (SpigotCommand) map.getCommand(label);
+
for (String completion : completions) {
+ if(cmd == null) {
+ Atlas.getInstance().getLogger().log(Level.WARNING, "Command " + label + " not found in command map.");
+ break;
+ }
cmd.completer.addCompleter(command, completion);
}
}
}
-
- static {
- if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_13)) {
- stuff = new DontImportIfNotLatestThanks();
- }
- }
}
\ No newline at end of file
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandRegister.java b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandRegister.java
similarity index 96%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandRegister.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandRegister.java
index 7198fdc0..4bbb62bb 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandRegister.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/CommandRegister.java
@@ -9,7 +9,6 @@
@AllArgsConstructor
@Getter
@Setter
-@Deprecated
public class CommandRegister {
private Plugin plugin;
private WrappedMethod method;
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCommand.java b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCommand.java
similarity index 80%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCommand.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCommand.java
index b4014f9b..e1b6eeae 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCommand.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCommand.java
@@ -1,20 +1,22 @@
package cc.funkemunky.api.commands.ancmd;
+import lombok.Setter;
import org.apache.commons.lang.Validate;
import org.bukkit.command.CommandException;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.bukkit.plugin.Plugin;
+import org.jetbrains.annotations.NotNull;
import java.util.List;
-@Deprecated
public class SpigotCommand extends org.bukkit.command.Command {
- private Plugin owningPlugin;
+ private final Plugin owningPlugin;
protected SpigotCompleter completer;
- private CommandExecutor executor;
+ private final CommandExecutor executor;
+ @Setter
private boolean notAno = false;
@@ -25,23 +27,15 @@ public SpigotCommand(String label, CommandExecutor executor, Plugin owner) {
this.usageMessage = "";
}
- public SpigotCommand(String label, CommandExecutor executor, Plugin owner, boolean notAno) {
- super(label);
- this.executor = executor;
- this.owningPlugin = owner;
- this.usageMessage = "";
- this.notAno = notAno;
- }
-
@Override
- public boolean execute(CommandSender sender, String commandLabel, String[] args) {
+ public boolean execute(@NotNull CommandSender sender, @NotNull String commandLabel, String[] args) {
if (!owningPlugin.isEnabled()) {
return false;
}
if(notAno) {
return executor.onCommand(sender, this, commandLabel, args);
} else {
- boolean success = false;
+ boolean success;
if (!testPermission(sender)) {
return true;
@@ -53,7 +47,7 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args)
throw new CommandException("Unhandled exception executing ancmd '" + commandLabel + "' in plugin " + owningPlugin.getDescription().getFullName(), ex);
}
- if (!success && usageMessage.length() > 0) {
+ if (!success && !usageMessage.isEmpty()) {
for (String line : usageMessage.replace("", commandLabel).split("\n")) {
sender.sendMessage(line);
}
@@ -64,7 +58,8 @@ public boolean execute(CommandSender sender, String commandLabel, String[] args)
}
@Override
- public java.util.List tabComplete(CommandSender sender, String alias, String[] args) throws CommandException, IllegalArgumentException {
+ @NotNull
+ public java.util.List tabComplete(@NotNull CommandSender sender, @NotNull String alias, String[] args) throws CommandException, IllegalArgumentException {
Validate.notNull(sender, "Sender cannot be null");
Validate.notNull(args, "Arguments cannot be null");
Validate.notNull(alias, "Alias cannot be null");
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCompleter.java b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCompleter.java
similarity index 77%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCompleter.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCompleter.java
index be5fe9f6..7ae924af 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCompleter.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/ancmd/SpigotCompleter.java
@@ -9,10 +9,9 @@
import java.util.List;
import java.util.Map;
-@Deprecated
public class SpigotCompleter implements TabCompleter {
- private Map> completers = new HashMap<>();
+ private final Map> completers = new HashMap<>();
public void addCompleter(String label, String completer) {
List completers = this.completers.getOrDefault(label, new ArrayList<>());
@@ -22,15 +21,15 @@ public void addCompleter(String label, String completer) {
this.completers.put(label, completers);
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("NullableProblems")
@Override
public List onTabComplete(CommandSender sender, Command command, String label, String[] args) {
for (int i = args.length; i >= 0; i--) {
- StringBuffer buffer = new StringBuffer();
+ StringBuilder buffer = new StringBuilder();
buffer.append(label.toLowerCase());
for (int x = 0; x < i; x++) {
- if (!args[x].equals("") && !args[x].equals(" ")) {
- buffer.append("." + args[x].toLowerCase());
+ if (!args[x].isEmpty() && !args[x].equals(" ")) {
+ buffer.append(".").append(args[x].toLowerCase());
}
}
String cmdLabel = buffer.toString();
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/AtlasCommand.java b/Atlas/src/main/java/cc/funkemunky/api/commands/impl/AtlasCommand.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/AtlasCommand.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/impl/AtlasCommand.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/BungeeCommand.java b/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/BungeeCommand.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/BungeeCommand.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/BungeeCommand.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ProfileArgument.java b/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ProfileArgument.java
similarity index 97%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ProfileArgument.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ProfileArgument.java
index 949582ae..fbf8647b 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ProfileArgument.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ProfileArgument.java
@@ -8,7 +8,6 @@
import cc.funkemunky.api.utils.MiscUtils;
import cc.funkemunky.api.utils.Pastebin;
import cc.funkemunky.api.utils.Tuple;
-import lombok.val;
import org.apache.commons.lang.time.DateFormatUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@@ -61,7 +60,7 @@ private void makePaste(CommandSender sender, ResultsType type) {
List body = new ArrayList<>();
body.add(MiscUtils.lineNoStrike());
float totalPCT = 0;
- val results = Atlas.getInstance().getProfile().results(type);
+ var results = Atlas.getInstance().getProfile().results(type);
for (String key : results.keySet()) {
//Converting nanoseconds to millis to be more readable.
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ReloadArgument.java b/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ReloadArgument.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ReloadArgument.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ReloadArgument.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ToggleArgument.java b/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ToggleArgument.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ToggleArgument.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/ToggleArgument.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/UpdateArgument.java b/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/UpdateArgument.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/UpdateArgument.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/impl/args/UpdateArgument.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/tab/TabHandler.java b/Atlas/src/main/java/cc/funkemunky/api/commands/tab/TabHandler.java
similarity index 94%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/tab/TabHandler.java
rename to Atlas/src/main/java/cc/funkemunky/api/commands/tab/TabHandler.java
index 7d16111f..9e2a25dc 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/commands/tab/TabHandler.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/commands/tab/TabHandler.java
@@ -9,11 +9,10 @@
import java.util.*;
@Init(priority = Priority.HIGH)
-@Deprecated
public class TabHandler implements AtlasListener {
public static TabHandler INSTANCE;
- private Map> tabArgs = new HashMap<>();
+ private final Map> tabArgs = new HashMap<>();
private static DontImportIfNotLatestThanks stuff;
public TabHandler() {
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/config/ConfigUtils.java b/Atlas/src/main/java/cc/funkemunky/api/config/ConfigUtils.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/config/ConfigUtils.java
rename to Atlas/src/main/java/cc/funkemunky/api/config/ConfigUtils.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/config/MessageConfig.java b/Atlas/src/main/java/cc/funkemunky/api/config/MessageConfig.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/config/MessageConfig.java
rename to Atlas/src/main/java/cc/funkemunky/api/config/MessageConfig.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/config/MessageHandler.java b/Atlas/src/main/java/cc/funkemunky/api/config/MessageHandler.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/config/MessageHandler.java
rename to Atlas/src/main/java/cc/funkemunky/api/config/MessageHandler.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/AtlasEvent.java b/Atlas/src/main/java/cc/funkemunky/api/events/AtlasEvent.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/AtlasEvent.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/AtlasEvent.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/AtlasListener.java b/Atlas/src/main/java/cc/funkemunky/api/events/AtlasListener.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/AtlasListener.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/AtlasListener.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/Cancellable.java b/Atlas/src/main/java/cc/funkemunky/api/events/Cancellable.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/Cancellable.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/Cancellable.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/EventManager.java b/Atlas/src/main/java/cc/funkemunky/api/events/EventManager.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/EventManager.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/EventManager.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/Listen.java b/Atlas/src/main/java/cc/funkemunky/api/events/Listen.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/Listen.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/Listen.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/ListenerMethod.java b/Atlas/src/main/java/cc/funkemunky/api/events/ListenerMethod.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/ListenerMethod.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/ListenerMethod.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/ListenerPriority.java b/Atlas/src/main/java/cc/funkemunky/api/events/ListenerPriority.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/ListenerPriority.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/ListenerPriority.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/exceptions/ListenParamaterException.java b/Atlas/src/main/java/cc/funkemunky/api/events/exceptions/ListenParamaterException.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/exceptions/ListenParamaterException.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/exceptions/ListenParamaterException.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketLoginEvent.java b/Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketLoginEvent.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketLoginEvent.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketLoginEvent.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketReceiveEvent.java b/Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketReceiveEvent.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketReceiveEvent.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketReceiveEvent.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketSendEvent.java b/Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketSendEvent.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketSendEvent.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/impl/PacketSendEvent.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/impl/TickEvent.java b/Atlas/src/main/java/cc/funkemunky/api/events/impl/TickEvent.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/events/impl/TickEvent.java
rename to Atlas/src/main/java/cc/funkemunky/api/events/impl/TickEvent.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/ForgeHandler.java b/Atlas/src/main/java/cc/funkemunky/api/handlers/ForgeHandler.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/ForgeHandler.java
rename to Atlas/src/main/java/cc/funkemunky/api/handlers/ForgeHandler.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/ModData.java b/Atlas/src/main/java/cc/funkemunky/api/handlers/ModData.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/ModData.java
rename to Atlas/src/main/java/cc/funkemunky/api/handlers/ModData.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/PluginLoaderHandler.java b/Atlas/src/main/java/cc/funkemunky/api/handlers/PluginLoaderHandler.java
similarity index 90%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/PluginLoaderHandler.java
rename to Atlas/src/main/java/cc/funkemunky/api/handlers/PluginLoaderHandler.java
index 900373a4..bdc27f66 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/PluginLoaderHandler.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/handlers/PluginLoaderHandler.java
@@ -3,7 +3,6 @@
import cc.funkemunky.api.Atlas;
import cc.funkemunky.api.utils.AutoLoad;
import lombok.Getter;
-import lombok.val;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
@@ -22,7 +21,7 @@ public class PluginLoaderHandler implements Listener {
@EventHandler(priority = EventPriority.HIGH)
public void onEvent(PluginEnableEvent event) {
- val description = event.getPlugin().getDescription();
+ var description = event.getPlugin().getDescription();
if(description.getDepend().contains("Atlas") || description.getSoftDepend().contains("Atlas")) {
Atlas.getInstance().alog("&7Plugin &f" + description.getName() + " &7has been detected!");
loadedPlugins.add(event.getPlugin());
@@ -34,7 +33,7 @@ public void onEvent(PluginEnableEvent event) {
@EventHandler
public void onEvent(PluginDisableEvent event) {
if(loadedPlugins.contains(event.getPlugin())) {
- val description = event.getPlugin().getDescription();
+ var description = event.getPlugin().getDescription();
Atlas.getInstance().alog("&7Plugin &f" + description.getName() + " &7is being unloaded.");
loadedPlugins.remove(event.getPlugin());
@@ -51,7 +50,7 @@ public boolean isPluginLoaded(Plugin plugin) {
private void loadPlugin(Plugin plugin) {
try {
- val plClass = Class.forName(plugin.getDescription().getMain());
+ var plClass = Class.forName(plugin.getDescription().getMain());
if(plClass.isAnnotationPresent(AutoLoad.class)) {
Atlas.getInstance().alog("&cAutoload is commencing...");
Atlas.getInstance().initializeScanner((JavaPlugin) plugin, true, true);
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/chat/ChatHandler.java b/Atlas/src/main/java/cc/funkemunky/api/handlers/chat/ChatHandler.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/chat/ChatHandler.java
rename to Atlas/src/main/java/cc/funkemunky/api/handlers/chat/ChatHandler.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/chat/OnChat.java b/Atlas/src/main/java/cc/funkemunky/api/handlers/chat/OnChat.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/chat/OnChat.java
rename to Atlas/src/main/java/cc/funkemunky/api/handlers/chat/OnChat.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/Protocol.java b/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/Protocol.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/Protocol.java
rename to Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/Protocol.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/ProtocolAPI.java b/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/ProtocolAPI.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/ProtocolAPI.java
rename to Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/ProtocolAPI.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/NoAPI.java b/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/NoAPI.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/NoAPI.java
rename to Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/NoAPI.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/ProtocolSupport.java b/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/ProtocolSupport.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/ProtocolSupport.java
rename to Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/ProtocolSupport.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/ViaVersionAPI.java b/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/ViaVersionAPI.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/ViaVersionAPI.java
rename to Atlas/src/main/java/cc/funkemunky/api/handlers/protocolsupport/impl/ViaVersionAPI.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/tab/TabHandler.java b/Atlas/src/main/java/cc/funkemunky/api/handlers/tab/TabHandler.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/handlers/tab/TabHandler.java
rename to Atlas/src/main/java/cc/funkemunky/api/handlers/tab/TabHandler.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/listeners/AtlasConnectionListeners.java b/Atlas/src/main/java/cc/funkemunky/api/listeners/AtlasConnectionListeners.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/listeners/AtlasConnectionListeners.java
rename to Atlas/src/main/java/cc/funkemunky/api/listeners/AtlasConnectionListeners.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/listeners/ConnectionListeners.java b/Atlas/src/main/java/cc/funkemunky/api/listeners/ConnectionListeners.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/listeners/ConnectionListeners.java
rename to Atlas/src/main/java/cc/funkemunky/api/listeners/ConnectionListeners.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/listeners/PluginShutdownListeners.java b/Atlas/src/main/java/cc/funkemunky/api/listeners/PluginShutdownListeners.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/listeners/PluginShutdownListeners.java
rename to Atlas/src/main/java/cc/funkemunky/api/listeners/PluginShutdownListeners.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/metrics/Metrics.java b/Atlas/src/main/java/cc/funkemunky/api/metrics/Metrics.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/metrics/Metrics.java
rename to Atlas/src/main/java/cc/funkemunky/api/metrics/Metrics.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/profiling/BaseProfiler.java b/Atlas/src/main/java/cc/funkemunky/api/profiling/BaseProfiler.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/profiling/BaseProfiler.java
rename to Atlas/src/main/java/cc/funkemunky/api/profiling/BaseProfiler.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/profiling/Profiler.java b/Atlas/src/main/java/cc/funkemunky/api/profiling/Profiler.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/profiling/Profiler.java
rename to Atlas/src/main/java/cc/funkemunky/api/profiling/Profiler.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/profiling/ResultsType.java b/Atlas/src/main/java/cc/funkemunky/api/profiling/ResultsType.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/profiling/ResultsType.java
rename to Atlas/src/main/java/cc/funkemunky/api/profiling/ResultsType.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/profiling/Timing.java b/Atlas/src/main/java/cc/funkemunky/api/profiling/Timing.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/profiling/Timing.java
rename to Atlas/src/main/java/cc/funkemunky/api/profiling/Timing.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/profiling/ToggleableProfiler.java b/Atlas/src/main/java/cc/funkemunky/api/profiling/ToggleableProfiler.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/profiling/ToggleableProfiler.java
rename to Atlas/src/main/java/cc/funkemunky/api/profiling/ToggleableProfiler.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/Reflections.java b/Atlas/src/main/java/cc/funkemunky/api/reflections/Reflections.java
similarity index 95%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/Reflections.java
rename to Atlas/src/main/java/cc/funkemunky/api/reflections/Reflections.java
index a6a1e1d9..598ad3f6 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/Reflections.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/reflections/Reflections.java
@@ -12,18 +12,13 @@
import cc.funkemunky.api.Atlas;
import cc.funkemunky.api.reflections.types.WrappedClass;
import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion;
-import cc.funkemunky.api.tinyprotocol.reflection.Reflection;
import cc.funkemunky.api.utils.ClassScanner;
import cc.funkemunky.api.utils.objects.QuadFunction;
import cc.funkemunky.api.utils.objects.TriFunction;
import lombok.Getter;
import lombok.SneakyThrows;
-import lombok.val;
import org.bukkit.Bukkit;
-import org.bukkit.craftbukkit.Main;
-import java.awt.print.Paper;
-import java.io.File;
import java.lang.invoke.LambdaMetafactory;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
@@ -107,7 +102,7 @@ public static WrappedClass getUtilClass(String name) {
@SneakyThrows
public static T createMethodLambda(Method method) {
if(!method.isAccessible()) return null;
- val handle = lookup.unreflect(method);
+ var handle = lookup.unreflect(method);
Class> functionType;
switch(method.getParameterCount()) {
case 0:
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/impl/BukkitReflection.java b/Atlas/src/main/java/cc/funkemunky/api/reflections/impl/BukkitReflection.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/impl/BukkitReflection.java
rename to Atlas/src/main/java/cc/funkemunky/api/reflections/impl/BukkitReflection.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/impl/CraftReflection.java b/Atlas/src/main/java/cc/funkemunky/api/reflections/impl/CraftReflection.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/impl/CraftReflection.java
rename to Atlas/src/main/java/cc/funkemunky/api/reflections/impl/CraftReflection.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/impl/MinecraftReflection.java b/Atlas/src/main/java/cc/funkemunky/api/reflections/impl/MinecraftReflection.java
similarity index 63%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/impl/MinecraftReflection.java
rename to Atlas/src/main/java/cc/funkemunky/api/reflections/impl/MinecraftReflection.java
index f03413e4..8c50b804 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/impl/MinecraftReflection.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/reflections/impl/MinecraftReflection.java
@@ -90,84 +90,70 @@ public class MinecraftReflection {
private static WrappedField networkChannelField = null;
private static WrappedField primaryThread = null;
private static WrappedMethod fluidMethod = null, getFlowMethod = null;
- private static WrappedMethod getMobEffect = null;
- private static WrappedMethod getMobEffectId = null;
// Initialization
static {
- try {
- chunkStatus = Reflections.getNMSClass("ChunkStatus");
- } catch (Throwable ignored) {
-
- }
-
try {
axisAlignedBB = Reflections.getNMSClass("AxisAlignedBB");
- chunkProviderServer = Reflections.getNMSClass("ChunkProviderServer");
+ chunkProviderServer = Reflections.getNMSClass(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16) && ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9) ? "IChunkProvider" : "ChunkProviderServer");
enumChatFormat = Reflections.getNMSClass("EnumChatFormat");
- } catch (Throwable ignored) {
-
+ if (ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_13)) {
+ chunkStatus = Reflections.getNMSClass("ChunkStatus");
+ }
+ }
+ catch (Throwable ignored) {
+ try {
+ axisAlignedBB = Reflections.getNMSClass("AABB");
+ } catch (Throwable ignored2) {
+ axisAlignedBB = Reflections.getClass("net.minecraft.world.phys.AxisAlignedBB");
+ }
+ chunkProviderServer = Reflections.getNMSClass("ServerChunkCache");
+ enumChatFormat = Reflections.getNMSClass("ChatFormatting");
+ chunkStatus = Reflections.getClass("net.minecraft.world.level.chunk.status.ChunkStatus");
}
-
try {
- // Begin static initialization, everything is wrapped in this try/catch
entity = Reflections.getNMSClass("Entity");
try {
entityHuman = Reflections.getNMSClass("EntityHuman");
entityLiving = Reflections.getNMSClass("EntityLiving");
world = Reflections.getNMSClass("World");
worldServer = Reflections.getNMSClass("WorldServer");
- } catch (Throwable t) {
+ }
+ catch (Throwable t) {
entityLiving = Reflections.getNMSClass("LivingEntity");
entityHuman = Reflections.getNMSClass("Player");
world = Reflections.getNMSClass("Level");
worldServer = Reflections.getNMSClass("ServerLevel");
}
-
block = Reflections.getNMSClass("Block");
- itemClass = Reflections.getNMSClass("Item");;
- playerInventory = Reflections.getNMSClass("PlayerInventory");
+ itemClass = Reflections.getNMSClass("Item");
+ playerInventory = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_20_1) ? Reflections.getClass("net.minecraft.world.entity.player.Inventory") : Reflections.getNMSClass("PlayerInventory");
itemStack = Reflections.getNMSClass("ItemStack");
item = Reflections.getNMSClass("Item");
- chunk = Reflections.getNMSClass("Chunk");
+ chunk = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_20_1) ? Reflections.getNMSClass("Chunk") : Reflections.getNMSClass("LevelChunk");
minecraftServer = Reflections.getNMSClass("MinecraftServer");
- entityPlayer = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17)
- ? Reflections.getClass("net.minecraft.server.level.EntityPlayer")
- : Reflections.getNMSClass("EntityPlayer");
- playerConnection = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_20_1)
- ? Reflections.getNMSClass("ServerPlayerConnection")
- : Reflections.getNMSClass("PlayerConnection");
- networkManager = Reflections.getNMSClass("NetworkManager");
- serverConnection = Reflections.getNMSClass("ServerConnection");
+ entityPlayer = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_20_1) ? Reflections.getNMSClass("ServerPlayer") : Reflections.getNMSClass("EntityPlayer");
+ playerConnection = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_20_1) ? Reflections.getNMSClass("ServerPlayerConnection") : Reflections.getNMSClass("PlayerConnection");
+ networkManager = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_20_1) ? Reflections.getNMSClass("NetworkManager") : Reflections.getClass("net.minecraft.network.Connection");
+ serverConnection = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_20_1) ? Reflections.getNMSClass("ServerConnection") : Reflections.getNMSClass("ServerConnectionListener");
gameProfile = Reflections.getUtilClass("com.mojang.authlib.GameProfile");
- WrappedClass propertyMap = Reflections.getUtilClass("com.mojang.authlib.properties.PropertyMap");
- WrappedClass forwardMultiMap = Reflections.getUtilClass("com.google.common.collect.ForwardingMultimap");
- iChatBaseComponent = Reflections.getNMSClass("IChatBaseComponent");
- vec3D = Reflections.getNMSClass("Vec3D");
- enumAnimation = Reflections.getNMSClass("EnumAnimation");
-
- getProfile = CraftReflection.craftPlayer.getMethod("getProfile");
- methodGetServerConnection = minecraftServer
- .getMethodByType(serverConnection.getParent(), ProtocolVersion.getGameVersion()
- .isBelow(ProtocolVersion.V1_13) ? 1 : 0);
-
+ iChatBaseComponent = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_20_1) ? Reflections.getNMSClass("IChatBaseComponent") : Reflections.getClass("net.minecraft.network.chat.Component");
+ WrappedClass wrappedClass = vec3D = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_20_1) ? Reflections.getNMSClass("Vec3D") : Reflections.getNMSClass("Vec3");
+ enumAnimation = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_20_1) ? Reflections.getNMSClass("EnumAnimation") : (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_21_11) ? Reflections.getNMSClass("UseAnim") : Reflections.getNMSClass("ItemUseAnimation"));
+ getProfile = CraftReflection.craftPlayer.getMethod("getProfile", new Class[0]);
+ methodGetServerConnection = minecraftServer.getMethodByType(serverConnection.getParent(), ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_13) ? 1 : 0);
if (ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_7_10)) {
- iBlockData = Reflections.getNMSClass("IBlockData");
- blockPos = Reflections.getNMSClass("BlockPosition");
+ iBlockData = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_20_1) ? Reflections.getNMSClass("IBlockData") : Reflections.getNMSClass("BlockState");
+ blockPos = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_20_1) ? Reflections.getNMSClass("BlockPosition") : Reflections.getNMSClass("BlockPos");
getBlock = iBlockData.getMethodByType(block.getParent(), 0);
- blockData = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17)
- ? block.getFieldByType(iBlockData.getParent(), 0)
- : block.getFieldByName("blockData");
+ blockData = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17) ? block.getFieldByType(iBlockData.getParent(), 0) : block.getFieldByName("blockData");
getBlockData = block.getMethodByType(iBlockData.getParent(), 0);
- aabbConstructor = axisAlignedBB
- .getConstructor(double.class, double.class, double.class, double.class, double.class, double.class);
+ aabbConstructor = axisAlignedBB.getConstructor(Double.TYPE, Double.TYPE, Double.TYPE, Double.TYPE, Double.TYPE, Double.TYPE);
worldGetType = worldServer.getMethodByType(iBlockData.getParent(), 0, blockPos.getParent());
} else {
- idioticOldStaticConstructorAABB = axisAlignedBB.getMethod("a",
- double.class, double.class, double.class, double.class, double.class, double.class);
- worldGetType = worldServer.getMethod("getType", int.class, int.class, int.class);
+ idioticOldStaticConstructorAABB = axisAlignedBB.getMethod("a", Double.TYPE, Double.TYPE, Double.TYPE, Double.TYPE, Double.TYPE, Double.TYPE);
+ worldGetType = worldServer.getMethod("getType", Integer.TYPE, Integer.TYPE, Integer.TYPE);
}
-
aBB = axisAlignedBB.getFieldByName("a");
bBB = axisAlignedBB.getFieldByName("b");
cBB = axisAlignedBB.getFieldByName("c");
@@ -175,202 +161,64 @@ public class MinecraftReflection {
eBB = axisAlignedBB.getFieldByName("e");
fBB = axisAlignedBB.getFieldByName("f");
entitySimpleCollisionBox = entity.getFirstFieldByType(axisAlignedBB.getParent());
-
- // Colliding box/collision initialization
- WrappedClass voxelShape = null;
- WrappedClass worldReader = null;
+ WrappedClass voxelShape;
+ WrappedClass worldReader;
if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_12)) {
getCubes = world.getMethod("a", axisAlignedBB.getParent());
-
if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) {
- addCBoxes = block.getMethod("a", world.getParent(), int.class, int.class, int.class,
- axisAlignedBB.getParent(), List.class, entity.getParent());
- methodBlockCollisionBox = block
- .getMethod("a", world.getParent(), int.class, int.class, int.class);
+ addCBoxes = block.getMethod("a", world.getParent(), Integer.TYPE, Integer.TYPE, Integer.TYPE, axisAlignedBB.getParent(), List.class, entity.getParent());
+ methodBlockCollisionBox = block.getMethod("a", world.getParent(), Integer.TYPE, Integer.TYPE, Integer.TYPE);
} else {
- addCBoxes = block.getMethod("a", world.getParent(), blockPos.getParent(), iBlockData.getParent(),
- axisAlignedBB.getParent(), List.class, entity.getParent());
- if (ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) {
- methodBlockCollisionBox = block
- .getMethod("a", iBlockData.getParent(), world.getParent(), blockPos.getParent());
- } else {
- methodBlockCollisionBox = block
- .getMethod("a", world.getParent(), blockPos.getParent(), iBlockData.getParent());
- }
+ addCBoxes = block.getMethod("a", world.getParent(), blockPos.getParent(), iBlockData.getParent(), axisAlignedBB.getParent(), List.class, entity.getParent());
+ methodBlockCollisionBox = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9) ? block.getMethod("a", iBlockData.getParent(), world.getParent(), blockPos.getParent()) : block.getMethod("a", world.getParent(), blockPos.getParent(), iBlockData.getParent());
}
- getFlowMethod = Reflections.getNMSClass("BlockFluids")
- .getDeclaredMethodByType(vec3D.getParent(), 0);
+ getFlowMethod = Reflections.getNMSClass("BlockFluids").getDeclaredMethodByType(vec3D.getParent(), 0);
} else if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_13)) {
getCubes = world.getMethod("getCubes", entity.getParent(), axisAlignedBB.getParent());
- addCBoxes = block.getMethod("a", iBlockData.getParent(), world.getParent(), blockPos.getParent(),
- axisAlignedBB.getParent(), List.class, entity.getParent(), boolean.class);
- methodBlockCollisionBox = block
- .getMethod("a", iBlockData.getParent(), world.getParent(), blockPos.getParent());
- getFlowMethod = Reflections.getNMSClass("BlockFluids")
- .getDeclaredMethodByType(vec3D.getParent(), 0);
- } else {
- classBlockInfo = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_16)
- ? Reflections.getNMSClass("BlockBase$Info") : Reflections.getNMSClass("Block$Info");
+ addCBoxes = block.getMethod("a", iBlockData.getParent(), world.getParent(), blockPos.getParent(), axisAlignedBB.getParent(), List.class, entity.getParent(), Boolean.TYPE);
+ methodBlockCollisionBox = block.getMethod("a", iBlockData.getParent(), world.getParent(), blockPos.getParent());
+ getFlowMethod = Reflections.getNMSClass("BlockFluids").getDeclaredMethodByType(vec3D.getParent(), 0);
+ } else if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_20_1)) {
+ classBlockInfo = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_16) ? Reflections.getNMSClass("BlockBase$Info") : Reflections.getNMSClass("Block$Info");
worldReader = Reflections.getNMSClass("IWorldReader");
- getCubes = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_18)
- ? worldReader.getMethodByType(List.class, 0, entity.getParent(), axisAlignedBB.getParent())
- : (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16) ?
- worldReader.getMethod("a", entity.getParent(), axisAlignedBB.getParent(),
- double.class, double.class, double.class)
- : world.getMethod("c", entity.getParent(), axisAlignedBB.getParent(), Predicate.class));
+ getCubes = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_18) ? worldReader.getMethodByType(List.class, 0, entity.getParent(), axisAlignedBB.getParent()) : (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16) ? worldReader.getMethod("a", entity.getParent(), axisAlignedBB.getParent(), Double.TYPE, Double.TYPE, Double.TYPE) : world.getMethod("c", entity.getParent(), axisAlignedBB.getParent(), Predicate.class));
voxelShape = Reflections.getNMSClass("VoxelShape");
getCubesFromVoxelShape = voxelShape.getMethodByType(List.class, 0);
fluidMethod = world.getMethodByType(Reflections.getNMSClass("Fluid").getParent(), 0, blockPos.getParent());
getFlowMethod = Reflections.getNMSClass("Fluid").getMethodByType(vec3D.getParent(), 0);
-
if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_19)) {
chatComponentText = Reflections.getNMSClass("ChatComponentText");
chatComponentTextConst = chatComponentText.getConstructor(String.class);
}
- }
-
- if (ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_16)) {
- blockBase = Reflections.getNMSClass("BlockBase");
- }
- if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) {
- activeItemField = entityHuman.getFieldByType(itemStack.getParent(), 0);
} else {
- activeItemField = entityLiving.getFieldByType(itemStack.getParent(), 0);
+ classBlockInfo = Reflections.getNMSClass("BlockBehaviour$Properties");
+ worldReader = Reflections.getNMSClass("LevelReader");
+ getCubes = worldReader.getMethod("getEntityCollisions", entity.getParent(), axisAlignedBB.getParent());
+ voxelShape = Reflections.getNMSClass("VoxelShape");
+ getCubesFromVoxelShape = voxelShape.getMethod("toAabbs", new Class[0]);
+ WrappedClass fluidClass = Reflections.getClass("net.minecraft.world.level.material.FluidState");
+ fluidMethod = world.getMethodByType(fluidClass.getParent(), 0, blockPos.getParent());
+ getFlowMethod = fluidClass.getMethodByType(vec3D.getParent(), 0);
}
-
- canDestroyMethod = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16)
- ? playerInventory.getMethod("b",
- ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_8_9)
- ? iBlockData.getParent() : itemClass.getParent())
- : itemStack.getMethodByType(boolean.class, 0, iBlockData.getParent());
-
- if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17)) {
- frictionFactor = (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16)
- ? block : blockBase).getFieldByName("frictionFactor");
- } else {
- frictionFactor = blockBase.getFieldByType(float.class, 1);
+ if (ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_16)) {
+ blockBase = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_20_1) ? Reflections.getNMSClass("BlockBehaviour") : Reflections.getNMSClass("BlockBase");
}
- strength = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17)
- ? blockBase.getFieldByType(float.class, 0)
- : (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16)
- ? block.getFieldByName("strength") : blockBase.getFieldByName("durability"));
-
+ activeItemField = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9) ? entityHuman.getFieldByType(itemStack.getParent(), 0) : entityLiving.getFieldByType(itemStack.getParent(), 0);
+ WrappedMethod wrappedMethod = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16) ? playerInventory.getMethod("b", ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_8_9) ? iBlockData.getParent() : itemClass.getParent()) : (canDestroyMethod = itemStack.getMethodByType(Boolean.TYPE, 0, iBlockData.getParent()));
+ frictionFactor = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17) ? (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16) ? block : blockBase).getFieldByName("frictionFactor") : blockBase.getFieldByType(Float.TYPE, 1);
+ strength = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17) ? blockBase.getFieldByType(Float.TYPE, 0) : (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16) ? block.getFieldByName("strength") : blockBase.getFieldByName("durability"));
enumAnimationStack = itemStack.getMethodByType(enumAnimation.getParent(), 0);
getItemMethod = itemStack.getMethodByType(item.getParent(), 0);
getAnimationMethod = itemClass.getMethodByType(enumAnimation.getParent(), 0);
- itemStackAsBukkitCopy = CraftReflection.craftItemStack
- .getMethod("asBukkitCopy", itemStack.getParent());
-
- chunkProvider = MinecraftReflection.worldServer
- .getFieldByType(Reflections.getNMSClass(ProtocolVersion.getGameVersion()
- .isBelow(ProtocolVersion.v1_16)
- && ProtocolVersion.getGameVersion()
- .isOrAbove(ProtocolVersion.V1_9) ? "IChunkProvider" : "ChunkProviderServer")
- .getParent(), 0);
-
+ itemStackAsBukkitCopy = CraftReflection.craftItemStack.getMethod("asBukkitCopy", itemStack.getParent());
+ chunkProvider = worldServer.getFieldByType(chunkProviderServer.getParent(), 0);
connectionField = entityPlayer.getFieldByType(playerConnection.getParent(), 0);
- connectionNetworkField = playerConnection.getFieldByType(networkManager.getParent(), 0);
- networkChannelField = networkManager.getFieldByType(
- Reflections.getUtilClass("io.netty.channel.Channel").getParent(), 0);
+ connectionNetworkField = Reflections.getNMSClass("ServerCommonPacketListenerImpl").getFieldByType(networkManager.getParent(), 0);
+ networkChannelField = networkManager.getFieldByType(Reflections.getUtilClass("io.netty.channel.Channel").getParent(), 0);
primaryThread = minecraftServer.getFirstFieldByType(Thread.class);
-
- WrappedClass mobEffectList = Reflections.getNMSClass("MobEffectList");
- getMobEffect = ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_9)
- ? mobEffectList.getMethodByType(mobEffectList.getParent(), 0, int.class) : null;
- getMobEffectId = ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_9)
- ? mobEffectList.getMethodByType(int.class, 0, mobEffectList.getParent()) : null;
-
- if(ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_7_10)) {
- iBlockData = Reflections.getNMSClass("IBlockData");
- blockPos = Reflections.getNMSClass("BlockPosition");
- getBlock = iBlockData.getMethodByType(block.getParent(), 0);
- blockData = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17)
- ? block.getFieldByType(iBlockData.getParent(), 0) : block.getFieldByName("blockData");
- getBlockData = block.getMethodByType(iBlockData.getParent(), 0);
- aabbConstructor = axisAlignedBB
- .getConstructor(double.class, double.class, double.class, double.class, double.class, double.class);
- worldGetType = worldServer.getMethodByType(iBlockData.getParent(), 0, blockPos.getParent());
- } else {
- idioticOldStaticConstructorAABB = axisAlignedBB.getMethod("a",
- double.class, double.class, double.class, double.class, double.class, double.class);
- worldGetType = worldServer.getMethod("getType", int.class, int.class, int.class);
- }
- if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_12)) {
- getCubes = world.getMethod("a", axisAlignedBB.getParent());
-
- if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) {
- //1.7.10 does not have the BlockPosition object yet.
- addCBoxes = block.getMethod("a", world.getParent(), int.class, int.class, int.class,
- axisAlignedBB.getParent(), List.class, entity.getParent());
- methodBlockCollisionBox = block
- .getMethod("a", world.getParent(), int.class, int.class, int.class);
- } else {
- addCBoxes = block.getMethod("a", world.getParent(), blockPos.getParent(), iBlockData.getParent(),
- axisAlignedBB.getParent(), List.class, entity.getParent());
- if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) {
- methodBlockCollisionBox = block
- .getMethod("a", iBlockData.getParent(), world.getParent(), blockPos.getParent());
- } else methodBlockCollisionBox = block
- .getMethod("a", world.getParent(), blockPos.getParent(), iBlockData.getParent());
- }
-
- getFlowMethod = Reflections.getNMSClass("BlockFluids")
- .getDeclaredMethodByType(vec3D.getParent(), 0);
- } else if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_13)) {
- getCubes = world.getMethod("getCubes", entity.getParent(), axisAlignedBB.getParent());
- addCBoxes = block.getMethod("a", iBlockData.getParent(), world.getParent(), blockPos.getParent(),
- axisAlignedBB.getParent(), List.class, entity.getParent(), boolean.class);
- methodBlockCollisionBox = block
- .getMethod("a", iBlockData.getParent(), world.getParent(), blockPos.getParent());
- getFlowMethod = Reflections.getNMSClass("BlockFluids")
- .getDeclaredMethodByType(vec3D.getParent(), 0);
- } else {
- classBlockInfo = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_16)
- ? Reflections.getNMSClass("BlockBase$Info") : Reflections.getNMSClass("Block$Info");
- worldReader = Reflections.getNMSClass("IWorldReader");
- //1.13 and 1.13.1 returns just VoxelShape while 1.13.2+ returns a Stream
- getCubes = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_18)
- ? worldReader.getMethodByType(List.class, 0, entity.getParent(), axisAlignedBB.getParent())
- : (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16) ?
- worldReader.getMethod("a", entity.getParent(), axisAlignedBB.getParent(),
- double.class, double.class, double.class)
- : world.getMethod("c", entity.getParent(), axisAlignedBB.getParent(), Predicate.class));
- voxelShape = Reflections.getNMSClass("VoxelShape");
- getCubesFromVoxelShape = voxelShape.getMethodByType(List.class, 0);
- fluidMethod = world.getMethodByType(Reflections.getNMSClass("Fluid").getParent(), 0, blockPos.getParent());
- getFlowMethod = Reflections.getNMSClass("Fluid").getMethodByType(vec3D.getParent(), 0);
-
- if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_19)) {
- chatComponentText = Reflections.getNMSClass("ChatComponentText");
- chatComponentTextConst = chatComponentText.getConstructor(String.class);
- }
- }
-
- if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_16)) {
- blockBase = Reflections.getNMSClass("BlockBase");
- }
- if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) {
- activeItemField = entityHuman.getFieldByType(itemStack.getParent(), 0);
- } else {
- activeItemField = entityLiving.getFieldByType(itemStack.getParent(), 0);
- }
-
- canDestroyMethod = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16)
- ? playerInventory.getMethod("b",
- ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_8_9)
- ? iBlockData.getParent() : itemClass.getParent())
- : itemStack.getMethodByType(boolean.class, 0, iBlockData.getParent());
- if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17)) {
- frictionFactor = (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16)
- ? block : blockBase).getFieldByName("frictionFactor");
- } else frictionFactor = blockBase.getFieldByType(float.class, 1);
- strength = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17)
- ? blockBase.getFieldByType(float.class, 0)
- : (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16)
- ? block.getFieldByName("strength") : blockBase.getFieldByName("durability"));
- } catch (Throwable t) {
- // If *any* error occurs in static field reflection, everything remains null
- t.printStackTrace(); // Or use your preferred logging mechanism
+ }
+ catch (Throwable t) {
+ t.printStackTrace();
}
}
@@ -466,14 +314,6 @@ public static T getItemFromStack(Object object) {
return getItemMethod.invoke(vanillaStack);
}
- public static T getMobEffect(int effectId) {
- return getMobEffect.invoke(null, effectId);
- }
-
- public static int getMobEffectId(Object effect) {
- return getMobEffectId.invoke(null, effect);
- }
-
//Can use either a Bukkit or vanilla object
public static T getItemAnimation(Object object) {
Object vanillaStack;
@@ -548,8 +388,7 @@ public static float getBlockDurability(Object block) {
//Argument can either be org.bukkit.block.Block or vanilla Block.
public static T getBlockData(Object object) {
- if(object instanceof Block) {
- Block block = (Block) object;
+ if(object instanceof Block block) {
Object vworld = CraftReflection.getVanillaWorld(block.getWorld());
if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) {
return worldGetType.invoke(vworld, block.getX(), block.getY(), block.getZ());
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedClass.java b/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedClass.java
similarity index 99%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedClass.java
rename to Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedClass.java
index f132539f..bb276beb 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedClass.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedClass.java
@@ -8,11 +8,9 @@
*/
package cc.funkemunky.api.reflections.types;
-import cc.funkemunky.api.utils.RunUtils;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.Getter;
-import lombok.val;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
@@ -101,7 +99,7 @@ public List getConstructors() {
}
public WrappedConstructor getConstructor() {
- val optional = Arrays.stream(this.parent.getConstructors()).filter(cons -> cons.getParameterCount() == 0).findFirst();
+ var optional = Arrays.stream(this.parent.getConstructors()).filter(cons -> cons.getParameterCount() == 0).findFirst();
return optional.map(constructor -> new WrappedConstructor(this, constructor)).orElse(null);
}
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedConstructor.java b/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedConstructor.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedConstructor.java
rename to Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedConstructor.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedField.java b/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedField.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedField.java
rename to Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedField.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedMethod.java b/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedMethod.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedMethod.java
rename to Atlas/src/main/java/cc/funkemunky/api/reflections/types/WrappedMethod.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/settings/MongoSettings.java b/Atlas/src/main/java/cc/funkemunky/api/settings/MongoSettings.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/settings/MongoSettings.java
rename to Atlas/src/main/java/cc/funkemunky/api/settings/MongoSettings.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/settings/MySQLSettings.java b/Atlas/src/main/java/cc/funkemunky/api/settings/MySQLSettings.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/settings/MySQLSettings.java
rename to Atlas/src/main/java/cc/funkemunky/api/settings/MySQLSettings.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/GeneralObject.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/GeneralObject.java
similarity index 79%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/GeneralObject.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/GeneralObject.java
index 48830790..54911ee9 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/GeneralObject.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/GeneralObject.java
@@ -1,7 +1,10 @@
package cc.funkemunky.api.tinyprotocol;
import cc.funkemunky.api.reflections.types.WrappedClass;
-import lombok.*;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
import java.util.Arrays;
@@ -23,7 +26,7 @@ public GeneralObject(WrappedClass wrapper) {
}
public T wrap(Object... args) {
- val classes = Arrays.stream(args).map(Object::getClass).toArray(Class>[]::new);
+ var classes = Arrays.stream(args).map(Object::getClass).toArray(Class>[]::new);
T instance = wrapper.getConstructor(classes).newInstance(args);
object = instance;
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/Parameter.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/Parameter.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/Parameter.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/Parameter.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/GeneralField.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/GeneralField.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/GeneralField.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/GeneralField.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/GeneralWrapper.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/GeneralWrapper.java
similarity index 92%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/GeneralWrapper.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/GeneralWrapper.java
index c5de3113..e09a97b3 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/GeneralWrapper.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/GeneralWrapper.java
@@ -4,7 +4,6 @@
import cc.funkemunky.api.reflections.types.WrappedMethod;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import lombok.val;
import java.util.ArrayList;
import java.util.Arrays;
@@ -26,7 +25,7 @@ public GeneralWrapper(Object object) {
}
public T build(Object... args) {
- val classes = Arrays.stream(args).map(Object::getClass).toArray(Class>[]::new);
+ var classes = Arrays.stream(args).map(Object::getClass).toArray(Class>[]::new);
return objectClass.getConstructor(classes).newInstance(args);
}
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/NMSObject.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/NMSObject.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/NMSObject.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/NMSObject.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/Packet.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/Packet.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/Packet.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/Packet.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/ProtocolVersion.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/ProtocolVersion.java
similarity index 70%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/ProtocolVersion.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/ProtocolVersion.java
index 2b538c98..1a30f096 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/ProtocolVersion.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/ProtocolVersion.java
@@ -8,6 +8,7 @@
import cc.funkemunky.api.Atlas;
import cc.funkemunky.api.reflections.Reflections;
import cc.funkemunky.api.reflections.types.WrappedClass;
+import cc.funkemunky.api.reflections.types.WrappedMethod;
import cc.funkemunky.api.tinyprotocol.reflection.Reflection;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -67,7 +68,11 @@ public enum ProtocolVersion {
V1_21_1(767, "v1_21_R1"),
V1_21_2(768, "v1_21_R1"),
V1_21_4(769, "v1_21_R1"),
-
+ V1_21_5(770, "v1_21_R1"),
+ V1_21_6(771, "v1_21_R1"),
+ V1_21_7(772, "v1_21_R1"),
+ V1_21_9(773, "v1_21_R1"),
+ V1_21_11(774, "v1_21_R1"),
UNKNOWN(-1, "UNKNOWN");
@Getter
@@ -79,53 +84,29 @@ public enum ProtocolVersion {
private static ProtocolVersion fetchServerVersion() {
ProtocolVersion toReturn = UNKNOWN;
- for (ProtocolVersion version : values()) {
- if (version.getServerVersion() != null && version.getServerVersion().equals(Reflection.VERSION)) {
- toReturn = version;
- break;
- }
+ for (ProtocolVersion version : ProtocolVersion.values()) {
+ if (version.getServerVersion() == null || !version.getServerVersion().equals(Reflection.VERSION)) continue;
+ toReturn = version;
+ break;
}
-
- if(toReturn.isOrAbove(ProtocolVersion.v1_17)) {
- WrappedClass mv = Reflections.getNMSClass("MinecraftVersion");
- Object mvObject = mv.getFieldByName("a").get(null);
-
- String version = mv.getFieldByType(String.class, 1).get(mvObject);
-
- switch(version) {
- case "1.19.4": {
- toReturn = V1_19_4;
- break;
- }
- case "1.19": {
- toReturn = v1_19;
- break;
- }
- case "1.18.2": {
- toReturn = v1_18_2;
- break;
- }
- case "1.18.1":
- case "1.18": {
- toReturn = v1_18;
- Bukkit.getLogger().log(Level.INFO, "Version is 1.18");
- break;
- }
- case "1.17.1": {
- toReturn = v1_17_1;
- break;
- }
- default: {
- toReturn = v1_17;
- break;
- }
+ if (toReturn.isOrAbove(v1_17) || toReturn == UNKNOWN) {
+ WrappedMethod protocolVersionMethod;
+ WrappedClass mv;
+ WrappedClass worldVersion = Reflections.getClass("net.minecraft.WorldVersion");
+ try {
+ mv = Reflections.getNMSClass("MinecraftVersion");
+ protocolVersionMethod = worldVersion.getMethodByType(Integer.TYPE, 0);
}
+ catch (Exception e) {
+ mv = Reflections.getNMSClass("DetectedVersion");
+ protocolVersionMethod = worldVersion.getMethodByType(Integer.TYPE, 0);
+ }
+ Atlas.getInstance().alog("Method found: %s", protocolVersionMethod.getName());
+ Object mvObject = mv.getFieldByType(worldVersion.getParent(), 0).get(null);
+ int protocolVersion = (Integer)protocolVersionMethod.invoke(mvObject, new Object[0]);
+ Atlas.getInstance().alog("Detected protocol version: %s", protocolVersion);
+ toReturn = ProtocolVersion.getVersion(protocolVersion);
}
-
- for(int i = 0 ; i < 10 ; i++) {
- Atlas.getInstance().alog("Version: %s", toReturn);
- }
-
return toReturn;
}
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/TPConfig.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/TPConfig.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/TPConfig.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/TPConfig.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/TinyProtocolHandler.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/TinyProtocolHandler.java
similarity index 96%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/TinyProtocolHandler.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/TinyProtocolHandler.java
index 6bfd6635..5aa8e288 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/TinyProtocolHandler.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/TinyProtocolHandler.java
@@ -6,6 +6,7 @@
import cc.funkemunky.api.events.impl.PacketSendEvent;
import cc.funkemunky.api.handlers.protocolsupport.ProtocolAPI;
import cc.funkemunky.api.tinyprotocol.api.packets.AbstractTinyProtocol;
+import cc.funkemunky.api.tinyprotocol.api.packets.channelhandler.NoProtocol;
import cc.funkemunky.api.tinyprotocol.api.packets.channelhandler.TinyProtocol1_7;
import cc.funkemunky.api.tinyprotocol.api.packets.channelhandler.TinyProtocol1_8;
import lombok.Getter;
@@ -34,6 +35,11 @@ public TinyProtocolHandler() {
TinyProtocolHandler self = this;
// 1.8+ and 1.7 NMS have different class paths for their libraries used. This is why we have to separate the two.
// These feed the packets asynchronously, before Minecraft processes it, into our own methods to process and be used as an API.
+
+ if(ProtocolVersion.getGameVersion() == ProtocolVersion.UNKNOWN) {
+ instance = new NoProtocol();
+ return;
+ }
instance = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8) ?
new TinyProtocol1_7(Atlas.getInstance()) {
@Override
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/AbstractTinyProtocol.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/AbstractTinyProtocol.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/AbstractTinyProtocol.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/AbstractTinyProtocol.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/Result.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/Result.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/Result.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/Result.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/NoProtocol.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/NoProtocol.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/NoProtocol.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/NoProtocol.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_7.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_7.java
similarity index 99%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_7.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_7.java
index e91521c1..128c9e5d 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_7.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_7.java
@@ -6,7 +6,6 @@
import cc.funkemunky.api.tinyprotocol.reflection.MethodInvoker;
import cc.funkemunky.api.tinyprotocol.reflection.Reflection;
import com.google.common.collect.MapMaker;
-import lombok.val;
import net.minecraft.util.com.mojang.authlib.GameProfile;
import net.minecraft.util.io.netty.channel.*;
import org.bukkit.Bukkit;
@@ -367,7 +366,7 @@ private PacketInterceptor injectChannelInternal(Channel channel) {
// Inject our packet interceptor
if (interceptor == null) {
interceptor = new PacketInterceptor();
- val context = channel.pipeline().context("packet_handler");
+ var context = channel.pipeline().context("packet_handler");
if(context != null) {
channel.pipeline().addBefore("packet_handler", handlerName, interceptor);
uninjectedChannels.remove(channel);
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_8.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_8.java
similarity index 99%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_8.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_8.java
index c5eb0ee2..088c8fc4 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_8.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/api/packets/channelhandler/TinyProtocol1_8.java
@@ -23,7 +23,6 @@
import com.google.common.collect.Lists;
import com.google.common.collect.MapMaker;
import io.netty.channel.*;
-import lombok.val;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -129,7 +128,7 @@ public void run() {
/*Object ms = CraftReflection.getMinecraftServer();
- val scMethod = MinecraftReflection.minecraftServer
+ var scMethod = MinecraftReflection.minecraftServer
.getMethodByType(MinecraftReflection.serverConnection.getParent(), 0);
serverConnection = scMethod.invoke(ms);
@@ -404,7 +403,7 @@ private PacketInterceptor injectChannelInternal(Channel channel) {
// Inject our packet interceptor
if (interceptor == null) {
interceptor = new PacketInterceptor();
- val context = channel.pipeline().context("packet_handler");
+ var context = channel.pipeline().context("packet_handler");
if(context != null) {
channel.pipeline().addBefore("packet_handler", handlerName, interceptor);
uninjectedChannels.remove(channel);
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/ListenerEntry.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/ListenerEntry.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/ListenerEntry.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/ListenerEntry.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/PacketInfo.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/PacketInfo.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/PacketInfo.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/PacketInfo.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/PacketProcessor.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/PacketProcessor.java
similarity index 97%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/PacketProcessor.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/PacketProcessor.java
index 5e288b3e..be8266b2 100644
--- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/PacketProcessor.java
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/PacketProcessor.java
@@ -4,8 +4,6 @@
import cc.funkemunky.api.tinyprotocol.api.Packet;
import cc.funkemunky.api.tinyprotocol.listener.functions.PacketListener;
import cc.funkemunky.api.utils.RunUtils;
-import lombok.val;
-import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventPriority;
import org.bukkit.plugin.Plugin;
@@ -131,7 +129,7 @@ public boolean call(Player player, Object packet, String type) {
PacketInfo info = new PacketInfo(player, packet, type, System.currentTimeMillis());
if(asyncProcessors.containsKey(type)) {
RunUtils.taskAsync(() -> {
- val list = asyncProcessors.get(type);
+ var list = asyncProcessors.get(type);
for (ListenerEntry tuple : list) {
tuple.getListener().onEvent(info);
@@ -140,7 +138,7 @@ public boolean call(Player player, Object packet, String type) {
}
if(processors.containsKey(type)) {
- val list = processors.get(type);
+ var list = processors.get(type);
boolean cancelled = false;
for (ListenerEntry tuple : list) {
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/functions/PacketListener.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/functions/PacketListener.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/functions/PacketListener.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/listener/functions/PacketListener.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInAbilitiesPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInAbilitiesPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInAbilitiesPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInAbilitiesPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInAdvancementsPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInAdvancementsPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInAdvancementsPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInAdvancementsPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInArmAnimationPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInArmAnimationPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInArmAnimationPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInArmAnimationPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockDigPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockDigPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockDigPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockDigPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockPlace1_9.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockPlace1_9.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockPlace1_9.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockPlace1_9.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockPlacePacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockPlacePacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockPlacePacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInBlockPlacePacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInChatPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInChatPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInChatPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInChatPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInClientCommandPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInClientCommandPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInClientCommandPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInClientCommandPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInCloseWindowPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInCloseWindowPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInCloseWindowPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInCloseWindowPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInCustomPayload.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInCustomPayload.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInCustomPayload.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInCustomPayload.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInEntityActionPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInEntityActionPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInEntityActionPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInEntityActionPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInFlyingPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInFlyingPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInFlyingPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInFlyingPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInHeldItemSlotPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInHeldItemSlotPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInHeldItemSlotPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInHeldItemSlotPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInKeepAlivePacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInKeepAlivePacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInKeepAlivePacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInKeepAlivePacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSetCreativeSlotPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSetCreativeSlotPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSetCreativeSlotPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSetCreativeSlotPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSettingsPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSettingsPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSettingsPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSettingsPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSteerVehiclePacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSteerVehiclePacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSteerVehiclePacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInSteerVehiclePacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTabComplete.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTabComplete.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTabComplete.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTabComplete.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTeleportAccept.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTeleportAccept.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTeleportAccept.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTeleportAccept.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTransactionPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTransactionPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTransactionPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInTransactionPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInUpdateSignPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInUpdateSignPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInUpdateSignPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInUpdateSignPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInUseEntityPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInUseEntityPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInUseEntityPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInUseEntityPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInWindowClickPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInWindowClickPacket.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInWindowClickPacket.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/in/WrappedInWindowClickPacket.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedHandshakingInSetProtocol.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedHandshakingInSetProtocol.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedHandshakingInSetProtocol.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedHandshakingInSetProtocol.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedPacketLoginInStart.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedPacketLoginInStart.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedPacketLoginInStart.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedPacketLoginInStart.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedStatusInPing.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedStatusInPing.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedStatusInPing.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/login/WrappedStatusInPing.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/AtlasPacketPlayInFlying.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/AtlasPacketPlayInFlying.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/AtlasPacketPlayInFlying.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/AtlasPacketPlayInFlying.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_10R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_10R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_10R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_10R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_11R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_11R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_11R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_11R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_12R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_12R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_12R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_12R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_13R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_13R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_13R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_13R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_13R2.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_13R2.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_13R2.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_13R2.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_14R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_14R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_14R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_14R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_15R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_15R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_15R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_15R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R2.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R2.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R2.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R2.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R3.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R3.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R3.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_16R3.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_17_R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_17_R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_17_R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_17_R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_7R4.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_7R4.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_7R4.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_7R4.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R2.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R2.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R2.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R2.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R3.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R3.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R3.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_8R3.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_9R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_9R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_9R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_9R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_9R2.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_9R2.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_9R2.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/v1_9R2.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/vReflection.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/vReflection.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/vReflection.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/flying/versions/vReflection.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/AtlasPacketPlayInTransaction.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/AtlasPacketPlayInTransaction.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/AtlasPacketPlayInTransaction.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/AtlasPacketPlayInTransaction.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_10R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_10R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_10R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_10R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_11R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_11R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_11R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_11R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_12R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_12R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_12R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_12R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_13R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_13R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_13R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_13R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_13R2.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_13R2.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_13R2.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_13R2.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_14R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_14R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_14R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_14R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_15R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_15R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_15R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_15R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R2.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R2.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R2.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R2.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R3.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R3.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R3.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_16R3.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_7R4.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_7R4.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_7R4.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_7R4.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R2.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R2.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R2.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R2.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R3.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R3.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R3.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_8R3.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_9R1.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_9R1.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_9R1.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_9R1.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_9R2.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_9R2.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_9R2.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/v1_9R2.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/vReflection.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/vReflection.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/vReflection.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/incoming/transaction/versions/vReflection.java
diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/outgoing/transaction/AtlasPacketPlayOutTransaction.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/outgoing/transaction/AtlasPacketPlayOutTransaction.java
similarity index 100%
rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/outgoing/transaction/AtlasPacketPlayOutTransaction.java
rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/optimized/outgoing/transaction/AtlasPacketPlayOutTransaction.java
diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutAbilitiesPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutAbilitiesPacket.java
new file mode 100644
index 00000000..8afa9f00
--- /dev/null
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutAbilitiesPacket.java
@@ -0,0 +1,67 @@
+package cc.funkemunky.api.tinyprotocol.packet.out;
+
+import cc.funkemunky.api.reflections.Reflections;
+import cc.funkemunky.api.reflections.types.WrappedClass;
+import cc.funkemunky.api.reflections.types.WrappedField;
+import cc.funkemunky.api.tinyprotocol.api.NMSObject;
+import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion;
+import cc.funkemunky.api.tinyprotocol.reflection.FieldAccessor;
+import lombok.Getter;
+import org.bukkit.entity.Player;
+
+public class WrappedOutAbilitiesPacket extends NMSObject {
+ private static final String packet = Server.ABILITIES;
+
+ private static FieldAccessor
+ invulnerableField = fetchField(packet, boolean.class, 0),
+ flyingField = fetchField(packet, boolean.class, 1),
+ allowedFlightField = fetchField(packet, boolean.class, 2),
+ creativeModeField = fetchField(packet, boolean.class, 3);
+ private static FieldAccessor
+ flySpeedField = fetchField(packet, float.class, 0),
+ walkSpeedField = fetchField(packet, float.class, 1);
+
+ private static WrappedClass abilitiesClass = Reflections.getNMSClass("PlayerAbilities");
+ private static WrappedField invulnerableAcc = abilitiesClass.getFieldByType(boolean.class, 0);
+ private static WrappedField flyingAcc = abilitiesClass.getFieldByType(boolean.class, 1);
+ private static WrappedField allowedFlightAcc = abilitiesClass.getFieldByType(boolean.class, 2);
+ private static WrappedField creativeModeAcc = abilitiesClass.getFieldByType(boolean.class, 3);
+ private static WrappedField flySpeedAcc = abilitiesClass.getFieldByType(float.class, 0);
+ private static WrappedField walkSpeedAcc = abilitiesClass.getFieldByType(float.class, 1);
+ @Getter
+ private boolean invulnerable, flying, allowedFlight, creativeMode;
+ @Getter
+ private float flySpeed, walkSpeed;
+
+
+ public WrappedOutAbilitiesPacket(Object object, Player player) {
+ super(object, player);
+ }
+
+ public WrappedOutAbilitiesPacket(boolean invulernable, boolean flying, boolean allowedFlight, boolean creativeMode, float flySpeed, float walkSpeed) {
+ Object abilities = abilitiesClass.getConstructorAtIndex(0).newInstance();
+ invulnerableAcc.set(abilities, invulernable);
+ flyingAcc.set(abilities, flying);
+ allowedFlightAcc.set(abilities, allowedFlight);
+ creativeModeAcc.set(abilities, creativeMode);
+ flySpeedAcc.set(abilities, flySpeed);
+ walkSpeedAcc.set(abilities, walkSpeed);
+
+ setObject(Reflections.getNMSClass(packet).getConstructor(abilitiesClass.getParent()).newInstance(abilities));
+ }
+
+ @Override
+ public void process(Player player, ProtocolVersion version) {
+ invulnerable = fetch(invulnerableField);
+ flying = fetch(flyingField);
+ allowedFlight = fetch(allowedFlightField);
+ creativeMode = fetch(creativeModeField);
+ flySpeed = fetch(flySpeedField);
+ walkSpeed = fetch(walkSpeedField);
+ }
+
+ @Override
+ public void updateObject() {
+
+ }
+}
\ No newline at end of file
diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutAttachEntity.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutAttachEntity.java
new file mode 100644
index 00000000..54fb4847
--- /dev/null
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutAttachEntity.java
@@ -0,0 +1,75 @@
+package cc.funkemunky.api.tinyprotocol.packet.out;
+
+import cc.funkemunky.api.reflections.Reflections;
+import cc.funkemunky.api.reflections.impl.CraftReflection;
+import cc.funkemunky.api.reflections.types.WrappedClass;
+import cc.funkemunky.api.reflections.types.WrappedConstructor;
+import cc.funkemunky.api.reflections.types.WrappedField;
+import cc.funkemunky.api.tinyprotocol.api.NMSObject;
+import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion;
+import lombok.Getter;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.Player;
+
+import javax.annotation.Nullable;
+
+@Getter
+public class WrappedOutAttachEntity extends NMSObject {
+
+ //Not tested in all versions, just a basically wrapped packet.
+
+ private static final WrappedClass packet = Reflections.getNMSClass(Server.ATTACH);
+ private static final WrappedField fieldA = fetchField(packet, int.class, 0),
+ fieldB = fetchField(packet, int.class, 1);;
+ private static WrappedField fieldC;
+ private static final WrappedConstructor packetConst = packet.getConstructorAtIndex(ProtocolVersion.getGameVersion()
+ .isOrAbove(ProtocolVersion.v1_17) ? 0 : 1);
+
+ private int attachedEntityId, holdingEntityId;
+ private boolean isLeashModifier = true;
+
+
+ public WrappedOutAttachEntity(Object packet, Player player) {
+ super(packet, player);
+ }
+
+ public WrappedOutAttachEntity(Entity holder, @Nullable Entity toAttach, boolean attachLeadNotRideVehicle) {
+ final Object vanillaHolder = CraftReflection.getEntity(holder),
+ vanillaToAttach = toAttach != null ? CraftReflection.getEntity(toAttach) : null;
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) {
+ setObject(packetConst.newInstance(vanillaToAttach, vanillaHolder));
+ } else {
+ setObject(packetConst.newInstance(attachLeadNotRideVehicle ? 1 : 0, vanillaToAttach, vanillaHolder));
+ }
+ }
+
+ @Override
+ public void updateObject() {
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) {
+ set(fieldA, attachedEntityId);
+ set(fieldB, holdingEntityId);
+ } else {
+ set(fieldA, isLeashModifier ? 1 : 0);
+ set(fieldB, attachedEntityId);
+ set(fieldC, holdingEntityId);
+ }
+ }
+
+ @Override
+ public void process(Player player, ProtocolVersion version) {
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) {
+ attachedEntityId = fetch(fieldA);
+ holdingEntityId = fetch(fieldB);
+ } else {
+ isLeashModifier = (int)fetch(fieldA) == 1;
+ attachedEntityId = fetch(fieldB);
+ holdingEntityId = fetch(fieldC);
+ }
+ }
+
+ static {
+ if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) {
+ fieldC = fetchField(packet, int.class, 2);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutBlockChange.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutBlockChange.java
new file mode 100644
index 00000000..e51ad41b
--- /dev/null
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutBlockChange.java
@@ -0,0 +1,83 @@
+package cc.funkemunky.api.tinyprotocol.packet.out;
+
+import cc.funkemunky.api.reflections.Reflections;
+import cc.funkemunky.api.reflections.impl.MinecraftReflection;
+import cc.funkemunky.api.reflections.types.WrappedClass;
+import cc.funkemunky.api.reflections.types.WrappedField;
+import cc.funkemunky.api.reflections.types.WrappedMethod;
+import cc.funkemunky.api.tinyprotocol.api.NMSObject;
+import cc.funkemunky.api.tinyprotocol.api.Packet;
+import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion;
+import cc.funkemunky.api.tinyprotocol.packet.types.BaseBlockPosition;
+import cc.funkemunky.api.tinyprotocol.reflection.FieldAccessor;
+import cc.funkemunky.api.utils.ReflectionsUtil;
+import lombok.Getter;
+import org.bukkit.block.Block;
+import org.bukkit.entity.Player;
+
+@Getter
+public class WrappedOutBlockChange extends NMSObject {
+ private static final String packet = Packet.Server.BLOCK_CHANGE;
+
+ //1.7.10 and below
+ private static FieldAccessor legacyX;
+ private static FieldAccessor legacyY;
+ private static FieldAccessor legacyZ;
+ private static WrappedField blockChangeBlockField;
+ private static WrappedField blockDataIntField;
+ private static WrappedMethod getDataMethod;
+
+ //1.8 and newer
+ private static WrappedField iBlockDataField, blockPosAccessor;
+
+
+ private static final WrappedClass blockChangeClass = Reflections.getNMSClass(packet);
+ private static WrappedClass nmsBlockClass;
+
+ private BaseBlockPosition position;
+
+ public WrappedOutBlockChange(Object packet, Player player) {
+ super(packet, player);
+ }
+
+ public WrappedOutBlockChange(Block block) {
+ if(ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_7_10)) {
+ setPacket(packet, block.getX(), block.getY(), block.getZ(), ReflectionsUtil
+ .getWorldHandle(block.getWorld()));
+ } else {
+ setPacket(packet, ReflectionsUtil.getWorldHandle(block.getWorld()),
+ new BaseBlockPosition(block.getX(), block.getY(), block.getZ()).getAsBlockPosition());
+ }
+ }
+
+ @Override
+ public void process(Player player, ProtocolVersion version) {
+ if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) {
+ position = new BaseBlockPosition(fetch(legacyX), fetch(legacyY), fetch(legacyZ));
+ } else {
+ position = new BaseBlockPosition(fetch(blockPosAccessor));
+ }
+ }
+
+ @Override
+ public void updateObject() {
+
+ }
+
+ static {
+ if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) {
+ legacyX = fetchField(packet, int.class, 0);
+ legacyY = fetchField(packet, int.class, 1);
+ legacyZ = fetchField(packet, int.class, 2);
+
+ nmsBlockClass = Reflections.getNMSClass("Block");
+ blockChangeBlockField = blockChangeClass.getFirstFieldByType(nmsBlockClass.getParent());
+ blockDataIntField = blockChangeClass.getFieldByName("data");
+ getDataMethod = Reflections.getNMSClass("World").getMethod("getData",
+ int.class, int.class, int.class);
+ } else {
+ blockPosAccessor = blockChangeClass.getFieldByType(MinecraftReflection.blockPos.getParent(), 0);
+ iBlockDataField = blockChangeClass.getFieldByType(MinecraftReflection.iBlockData.getParent(), 0);
+ }
+ }
+}
diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutChatPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutChatPacket.java
new file mode 100644
index 00000000..dd2ebb0b
--- /dev/null
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutChatPacket.java
@@ -0,0 +1,127 @@
+package cc.funkemunky.api.tinyprotocol.packet.out;
+
+import cc.funkemunky.api.Atlas;
+import cc.funkemunky.api.reflections.Reflections;
+import cc.funkemunky.api.reflections.impl.CraftReflection;
+import cc.funkemunky.api.reflections.impl.MinecraftReflection;
+import cc.funkemunky.api.reflections.types.WrappedClass;
+import cc.funkemunky.api.reflections.types.WrappedConstructor;
+import cc.funkemunky.api.reflections.types.WrappedField;
+import cc.funkemunky.api.reflections.types.WrappedMethod;
+import cc.funkemunky.api.tinyprotocol.api.NMSObject;
+import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion;
+import cc.funkemunky.api.tinyprotocol.packet.types.WrappedChatMessageType;
+import cc.funkemunky.api.utils.MiscUtils;
+import lombok.Getter;
+import lombok.Setter;
+import net.md_5.bungee.api.chat.BaseComponent;
+import net.md_5.bungee.api.chat.TextComponent;
+import net.md_5.bungee.chat.ComponentSerializer;
+import org.bukkit.Bukkit;
+import org.bukkit.craftbukkit.v1_14_R1.inventory.CraftBlastingRecipe;
+import org.bukkit.entity.Player;
+
+import java.util.UUID;
+import java.util.logging.Level;
+
+@Getter
+@Setter
+public class WrappedOutChatPacket extends NMSObject {
+ private final static String packet = Server.CHAT;
+ public static UUID b = new UUID(0L, 0L);
+
+ public WrappedOutChatPacket(Object packetObj, Player player) {
+ super(packetObj, player);
+ }
+
+ //Constructor (ichatbase, chattype);
+ public WrappedOutChatPacket(TextComponent message, WrappedChatMessageType type) {
+ setObject(constructor.newInstance());
+ this.message = message;
+ this.chatType = type;
+ updateObject();
+ }
+
+ //1.16+ only
+ public WrappedOutChatPacket(TextComponent message, WrappedChatMessageType chatType, UUID uuid) {
+ setObject(constructor.newInstance());
+ this.message = message;
+ this.chatType = chatType;
+ this.uuid = uuid;
+ updateObject();
+ }
+
+ //Saving your fingers from the most common use for using this wrapper.
+ public WrappedOutChatPacket(TextComponent message) {
+ this(message, WrappedChatMessageType.CHAT);
+ }
+
+ private static WrappedClass chatBaseComp = Reflections.getNMSClass("IChatBaseComponent");
+ private static WrappedClass outChatClass = Reflections.getNMSClass(packet);
+ private static WrappedConstructor constructor = outChatClass.getConstructor();
+ private static WrappedClass chatSerialClass = Reflections.getNMSClass("IChatBaseComponent$ChatSerializer");
+ private static WrappedMethod stcToComponent = chatSerialClass.getMethod("a", String.class);
+ private static WrappedMethod getTextMethod = chatBaseComp.getMethod("getText");
+ private static WrappedField chatTypeField, chatCompField, fieldUUID, fieldComponents;
+
+ private TextComponent message;
+ private WrappedChatMessageType chatType;
+ private UUID uuid = b;
+
+ @Override
+ public void process(Player player, ProtocolVersion version) {
+ //Getting the message
+
+ if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) {
+ message = new TextComponent(ComponentSerializer.parse(getTextMethod.invoke(getObject())));
+ } else {
+ BaseComponent[] components = fetch(fieldComponents);
+
+ if (components != null) {
+ message = new TextComponent(components);
+ } else {
+ Object chatComp = fetch(chatCompField);
+
+ if (chatComp != null) {
+ message = new TextComponent(CraftReflection.getMessageFromComp(chatComp, "WHITE"));
+ }
+ }
+ }
+
+
+ //Getting the chat type.
+ chatType = WrappedChatMessageType.fromNMS(fetch(chatTypeField));
+
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_16)) {
+ uuid = fetch(fieldUUID);
+ }
+ }
+
+ @Override
+ public void updateObject() {
+ set(fieldComponents, MiscUtils.toComponentArray(message));
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_12)) {
+ set(chatTypeField, chatType.toNMS());
+ } else if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_8)) {
+ set(chatTypeField, chatType.getTypeAsByte());
+ } else set(chatTypeField, chatType.getType());
+
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_16))
+ set(fieldUUID, b);
+ }
+
+ static {
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_12)) {
+ chatTypeField = outChatClass.getFieldByType(Reflections.getNMSClass("ChatMessageType").getParent(), 0);
+ } else if(ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_7_10)) {
+ chatTypeField = outChatClass.getFieldByType(byte.class, 0);
+ } else {
+ chatTypeField = outChatClass.getFieldByType(int.class, 0);
+ }
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_16)) {
+ fieldUUID = fetchField(outChatClass, UUID.class, 0);
+ }
+ chatCompField = outChatClass.getFieldByType(chatBaseComp.getParent(), 0);
+ fieldComponents = fetchField(outChatClass, BaseComponent[].class, 0);
+ }
+}
diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutCloseWindowPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutCloseWindowPacket.java
new file mode 100644
index 00000000..763e11a1
--- /dev/null
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutCloseWindowPacket.java
@@ -0,0 +1,35 @@
+package cc.funkemunky.api.tinyprotocol.packet.out;
+
+import cc.funkemunky.api.reflections.Reflections;
+import cc.funkemunky.api.reflections.types.WrappedClass;
+import cc.funkemunky.api.reflections.types.WrappedField;
+import cc.funkemunky.api.tinyprotocol.api.NMSObject;
+import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion;
+import org.bukkit.entity.Player;
+
+public class WrappedOutCloseWindowPacket extends NMSObject {
+
+ private static final WrappedClass packet = Reflections.getNMSClass(Server.CLOSE_WINDOW);
+ private static final WrappedField idField = packet.getFieldByType(int.class, 0);
+
+ public WrappedOutCloseWindowPacket(Object object, Player player) {
+ super(object, player);
+ }
+
+ public WrappedOutCloseWindowPacket(int id) {
+ this.id = id;
+ updateObject();
+ }
+
+ public int id;
+
+ @Override
+ public void updateObject() {
+ setObject(NMSObject.construct(getObject(), Server.CLOSE_WINDOW, id));
+ }
+
+ @Override
+ public void process(Player player, ProtocolVersion version) {
+ id = fetch(idField);
+ }
+}
diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutCustomPayload.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutCustomPayload.java
new file mode 100644
index 00000000..a78b4e9b
--- /dev/null
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutCustomPayload.java
@@ -0,0 +1,93 @@
+package cc.funkemunky.api.tinyprotocol.packet.out;
+
+import cc.funkemunky.api.reflections.Reflections;
+import cc.funkemunky.api.reflections.types.WrappedClass;
+import cc.funkemunky.api.reflections.types.WrappedField;
+import cc.funkemunky.api.tinyprotocol.api.NMSObject;
+import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion;
+import cc.funkemunky.api.tinyprotocol.packet.types.WrappedPacketDataSerializer;
+import lombok.Getter;
+import org.bukkit.Bukkit;
+import org.bukkit.entity.Player;
+
+//TODO Make this compatible with 1.13 and newer.
+@Getter
+public class WrappedOutCustomPayload extends NMSObject {
+
+ public WrappedOutCustomPayload(Object object, Player player) {
+ super(object, player);
+ }
+
+ public WrappedOutCustomPayload(String tag, byte[] data) {
+ if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17)) {
+ setObject(payloadClass.getConstructor().newInstance());
+
+ this.tag = tag;
+ this.data = data;
+
+ updateObject();
+ } else {
+ setObject(payloadClass.getConstructor(minecraftKeyWrapper.getParent(),
+ WrappedPacketDataSerializer.vanillaClass.getParent())
+ .newInstance(minecraftKeyWrapper.getConstructor(String.class)
+ .newInstance(tag), new WrappedPacketDataSerializer(data).getObject()));
+ }
+ }
+
+ private static WrappedClass payloadClass = Reflections.getNMSClass(Server.CUSTOM_PAYLOAD);
+ private static WrappedField tagField, dataField;
+
+ private String tag;
+ private byte[] data;
+
+ //1.13+
+ private static WrappedClass minecraftKeyWrapper;
+ private static WrappedField keyOne, keyTwo;
+
+ @Override
+ public void process(Player player, ProtocolVersion version) {
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_13)) {
+ Object mk = tagField.get(getObject());
+ tag = keyOne.get(mk) + ":" + keyTwo.get(mk);
+ } else tag = tagField.get(getObject());
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_8)) {
+ WrappedPacketDataSerializer serial = new WrappedPacketDataSerializer((Object)fetch(dataField));
+
+ if(serial.getRefCount() > 0) {
+ serial.copy();
+ data = serial.getData();
+ } else data = new byte[0];
+
+ } else data = dataField.get(getObject());
+ }
+
+ @Override
+ public void updateObject() {
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_8)) {
+ dataField.set(getObject(), new WrappedPacketDataSerializer(data).getObject());
+ } else dataField.set(getObject(), data);
+
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_13)) {
+ if(tag.contains(":")) {
+ Object mk = tagField.get(getObject());
+ String[] split = tag.split(":");
+ keyOne.set(mk, split[0]);
+ keyTwo.set(mk, split[1]);
+ } else {
+ Bukkit.getLogger().warning("Tag (" + tag + ") must contain a ':' to be valid.");
+ }
+ } else tagField.set(getObject(), tag);
+ }
+
+ static {
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_13)) {
+ minecraftKeyWrapper = Reflections.getNMSClass("MinecraftKey");
+ keyOne = minecraftKeyWrapper.getFieldByType(String.class, 0);
+ keyTwo = minecraftKeyWrapper.getFieldByType(String.class, 1);
+ tagField = payloadClass.getFieldByType(minecraftKeyWrapper.getParent(), 0);
+ } else tagField = payloadClass.getFieldByType(String.class, 0);
+ if(ProtocolVersion.getGameVersion().isOrBelow(ProtocolVersion.V1_7_10)) {
+ dataField = payloadClass.getFieldByType(byte[].class, 0);
+ } else dataField = payloadClass.getFieldByType(WrappedPacketDataSerializer.vanillaClass.getParent(), 0);
+ }
+}
diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityEffectPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityEffectPacket.java
new file mode 100644
index 00000000..085e435a
--- /dev/null
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityEffectPacket.java
@@ -0,0 +1,72 @@
+package cc.funkemunky.api.tinyprotocol.packet.out;
+
+import cc.funkemunky.api.reflections.Reflections;
+import cc.funkemunky.api.reflections.types.WrappedClass;
+import cc.funkemunky.api.reflections.types.WrappedField;
+import cc.funkemunky.api.tinyprotocol.api.NMSObject;
+import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion;
+import org.bukkit.entity.Player;
+
+public class WrappedOutEntityEffectPacket extends NMSObject {
+
+ public int entityId;
+ public int effectId;
+ public byte amplifier;
+ public int duration;
+ public byte flags;
+
+ private static WrappedClass wrapped = Reflections.getNMSClass(Server.ENTITY_EFFECT);
+ private static WrappedField fieldEntityId,
+ fieldEffectId,
+ fieldAmplifier,
+ fieldDuration, fieldFlags;
+
+ public WrappedOutEntityEffectPacket(Object object, Player player) {
+ super(object, player);
+ }
+
+ @Override
+ public void updateObject() {
+ fieldEntityId.set(getObject(), entityId);
+ fieldEffectId.set(getObject(), effectId);
+ fieldAmplifier.set(getObject(), amplifier);
+ fieldDuration.set(getObject(), duration);
+ if(ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_7_10)) fieldFlags.set(getObject(), flags);
+ }
+
+ @Override
+ public void process(Player player, ProtocolVersion version) {
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_18_2)) {
+ entityId = fieldEntityId.get(getObject());
+ effectId = fieldEffectId.get(getObject());
+ } else {
+ entityId = fieldEntityId.get(getObject());
+ effectId = ((byte)fieldEffectId.get(getObject()));
+ }
+ amplifier = fieldAmplifier.get(getObject());
+ duration = ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_7_10)
+ ? fieldDuration.get(getObject()) : (short) fieldDuration.get(getObject());
+ if(ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_7_10))
+ flags = fieldFlags.get(getObject());
+ }
+
+ static {
+ if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_18_2)) {
+ fieldEntityId = wrapped.getFieldByType(int.class, 3);
+ fieldEffectId = wrapped.getFieldByType(int.class, 4);
+ fieldDuration = wrapped.getFieldByType(int.class, 5);
+ fieldAmplifier = wrapped.getFieldByType(byte.class, 0);
+ fieldFlags = wrapped.getFieldByType(byte.class, 1);
+ } else {
+ fieldEntityId = wrapped.getFieldByType(int.class,
+ ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17) ? 3 : 0);
+ fieldEffectId = wrapped.getFieldByType(byte.class, 0);
+ fieldAmplifier = wrapped.getFieldByType(byte.class, 1);
+ if(ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_7_10)) {
+ fieldDuration = wrapped.getFieldByType(int.class, 1
+ + (ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17) ? 3 : 0));
+ fieldFlags = wrapped.getFieldByType(byte.class, 2);
+ } else fieldDuration = wrapped.getFieldByType(short.class, 0);
+ }
+ }
+}
diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityHeadRotation.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityHeadRotation.java
new file mode 100644
index 00000000..b94964cf
--- /dev/null
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityHeadRotation.java
@@ -0,0 +1,42 @@
+package cc.funkemunky.api.tinyprotocol.packet.out;
+
+import cc.funkemunky.api.reflections.Reflections;
+import cc.funkemunky.api.reflections.types.WrappedClass;
+import cc.funkemunky.api.reflections.types.WrappedField;
+import cc.funkemunky.api.tinyprotocol.api.NMSObject;
+import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion;
+import lombok.Getter;
+import org.bukkit.entity.Player;
+
+@Getter
+public class WrappedOutEntityHeadRotation extends NMSObject {
+ private static WrappedClass headRotationClass = Reflections.getNMSClass(Server.ENTITY_HEAD_ROTATION);
+ private static WrappedField entityIdField = headRotationClass.getFirstFieldByType(int.class);
+ private static WrappedField yawField = headRotationClass.getFirstFieldByType(byte.class);
+
+ private int entityId;
+ private byte yaw;
+
+ public WrappedOutEntityHeadRotation(Object object, Player player) {
+ super(object, player);
+ }
+
+ public WrappedOutEntityHeadRotation(int entityId, byte byteThing) {
+ Object headRotation = headRotationClass.getConstructor().newInstance();
+ entityIdField.set(headRotation, entityId);
+ yawField.set(headRotation, byteThing);
+
+ setObject(headRotation);
+ }
+
+ @Override
+ public void updateObject() {
+
+ }
+
+ @Override
+ public void process(Player player, ProtocolVersion version) {
+ entityId = entityIdField.get(getObject());
+ yaw = yawField.get(getObject());
+ }
+}
diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityMetadata.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityMetadata.java
new file mode 100644
index 00000000..2a057224
--- /dev/null
+++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityMetadata.java
@@ -0,0 +1,55 @@
+package cc.funkemunky.api.tinyprotocol.packet.out;
+
+import cc.funkemunky.api.tinyprotocol.api.NMSObject;
+import cc.funkemunky.api.tinyprotocol.api.Packet;
+import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion;
+import cc.funkemunky.api.tinyprotocol.reflection.FieldAccessor;
+import lombok.Getter;
+import lombok.Setter;
+import org.bukkit.entity.Player;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Getter
+@Setter
+public class WrappedOutEntityMetadata extends NMSObject {
+ private static final String packet = Packet.Server.ENTITY_METADATA;
+
+ private static FieldAccessor entityidField;
+ private static FieldAccessor watchableObjectsField;
+
+ private List
@@ -48,8 +48,8 @@
maven-compiler-plugin
3.13.0
- 8
- 8
+ 17
+ 17
-XDignore.symbol.file
@@ -72,6 +72,7 @@
shade
+ false
false
diff --git a/AtlasParent/AtlasVelocity/src/main/java/cc/funkemunky/velocity/AtlasVelocity.java b/AtlasVelocity/src/main/java/cc/funkemunky/velocity/AtlasVelocity.java
similarity index 100%
rename from AtlasParent/AtlasVelocity/src/main/java/cc/funkemunky/velocity/AtlasVelocity.java
rename to AtlasVelocity/src/main/java/cc/funkemunky/velocity/AtlasVelocity.java
diff --git a/AtlasParent/AtlasVelocity/src/main/java/cc/funkemunky/velocity/listener/PluginListener.java b/AtlasVelocity/src/main/java/cc/funkemunky/velocity/listener/PluginListener.java
similarity index 100%
rename from AtlasParent/AtlasVelocity/src/main/java/cc/funkemunky/velocity/listener/PluginListener.java
rename to AtlasVelocity/src/main/java/cc/funkemunky/velocity/listener/PluginListener.java
diff --git a/AtlasParent/Atlas_Compat_1_18/pom.xml b/Atlas_Compat_1_18/pom.xml
similarity index 91%
rename from AtlasParent/Atlas_Compat_1_18/pom.xml
rename to Atlas_Compat_1_18/pom.xml
index ef43e743..f7d63484 100644
--- a/AtlasParent/Atlas_Compat_1_18/pom.xml
+++ b/Atlas_Compat_1_18/pom.xml
@@ -12,8 +12,8 @@
Atlas_Compat_1_18
- 8
- 8
+ 17
+ 17
@@ -23,8 +23,8 @@
maven-compiler-plugin
3.13.0
- 8
- 8
+ 17
+ 17
-XDignore.symbol.file
diff --git a/AtlasParent/Atlas_Compat_1_18/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_18_R1.java b/Atlas_Compat_1_18/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_18_R1.java
similarity index 100%
rename from AtlasParent/Atlas_Compat_1_18/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_18_R1.java
rename to Atlas_Compat_1_18/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_18_R1.java
diff --git a/AtlasParent/Atlas_Compat_1_18_R2/pom.xml b/Atlas_Compat_1_18_R2/pom.xml
similarity index 91%
rename from AtlasParent/Atlas_Compat_1_18_R2/pom.xml
rename to Atlas_Compat_1_18_R2/pom.xml
index 7468d869..2223f456 100644
--- a/AtlasParent/Atlas_Compat_1_18_R2/pom.xml
+++ b/Atlas_Compat_1_18_R2/pom.xml
@@ -12,8 +12,8 @@
Atlas_Compat_1_18_R2
- 8
- 8
+ 17
+ 17
@@ -23,8 +23,8 @@
maven-compiler-plugin
3.13.0
- 8
- 8
+ 17
+ 17
-XDignore.symbol.file
diff --git a/AtlasParent/Atlas_Compat_1_18_R2/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_18_R2.java b/Atlas_Compat_1_18_R2/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_18_R2.java
similarity index 100%
rename from AtlasParent/Atlas_Compat_1_18_R2/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_18_R2.java
rename to Atlas_Compat_1_18_R2/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_18_R2.java
diff --git a/AtlasParent/Atlas_Compat_1_19/pom.xml b/Atlas_Compat_1_19/pom.xml
similarity index 91%
rename from AtlasParent/Atlas_Compat_1_19/pom.xml
rename to Atlas_Compat_1_19/pom.xml
index 23df884e..8a40b0de 100644
--- a/AtlasParent/Atlas_Compat_1_19/pom.xml
+++ b/Atlas_Compat_1_19/pom.xml
@@ -12,8 +12,8 @@
Atlas_Compat_1_19
- 8
- 8
+ 17
+ 17
@@ -23,8 +23,8 @@
maven-compiler-plugin
3.13.0
- 8
- 8
+ 17
+ 17
-XDignore.symbol.file
diff --git a/AtlasParent/Atlas_Compat_1_19/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_19_R1.java b/Atlas_Compat_1_19/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_19_R1.java
similarity index 100%
rename from AtlasParent/Atlas_Compat_1_19/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_19_R1.java
rename to Atlas_Compat_1_19/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_19_R1.java
diff --git a/AtlasParent/pom.xml b/pom.xml
similarity index 90%
rename from AtlasParent/pom.xml
rename to pom.xml
index 2010edee..8df1b382 100644
--- a/AtlasParent/pom.xml
+++ b/pom.xml
@@ -29,8 +29,8 @@
maven-compiler-plugin
3.13.0
- 8
- 8
+ 17
+ 17
-XDignore.symbol.file
@@ -50,7 +50,6 @@
-
Atlas
AtlasBungee
@@ -60,6 +59,7 @@
Atlas_Compat_1_18_R2
Atlas_Compat_1_19
AtlasBukkit
+ AtlasCompat1_20
@@ -80,6 +80,11 @@
1.18.38
provided
+
+ org.jetbrains
+ annotations
+ 26.0.2
+
\ No newline at end of file