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 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 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 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 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 watchableObjects; + private int entityId; + + public WrappedOutEntityMetadata(Object object, Player player) { + super(object, player); + } + + public WrappedOutEntityMetadata(int entityId, List objects) { + setPacket(packet, entityId, objects); + } + + @Override + public void process(Player player, ProtocolVersion version) { + + watchableObjects = new ArrayList<>(); + entityId = fetch(entityidField); + + List list = fetch(watchableObjectsField); + + if(list != null) { + list.forEach(object -> watchableObjects.add(object)); + } + } + + @Override + public void updateObject() { + + } + + static { + watchableObjectsField = fetchField(packet, List.class, 0); + entityidField = fetchField(packet, int.class, 0); + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityTeleportPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityTeleportPacket.java new file mode 100644 index 00000000..7e0ee447 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutEntityTeleportPacket.java @@ -0,0 +1,116 @@ +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.WrappedConstructor; +import cc.funkemunky.api.reflections.types.WrappedField; +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.WrappedPacketDataSerializer; +import cc.funkemunky.api.utils.MathHelper; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.ByteBufAllocator; +import io.netty.buffer.PooledByteBufAllocator; +import io.netty.buffer.Unpooled; +import org.bukkit.entity.Player; + +public class WrappedOutEntityTeleportPacket extends NMSObject { + + private static WrappedField fieldEntityId, fieldX, fieldY, fieldZ, fieldYaw, fieldPitch, fieldOnGround; + private static WrappedClass classEntityTeleport = Reflections.getNMSClass(Packet.Server.ENTITY_TELEPORT); + private static WrappedConstructor emptyConstructor; + + public int entityId; + public double x, y, z; + public float yaw, pitch; + public boolean onGround; + + public WrappedOutEntityTeleportPacket(Object object, Player player) { + super(object, player); + } + + public WrappedOutEntityTeleportPacket(int entityId, double x, double y, double z, float yaw, float pitch, + boolean onGround) { + this.entityId = entityId; + this.x = x; + this.y = y; + this.z = z; + this.yaw = yaw; + this.pitch = pitch; + this.onGround = onGround; + + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17)) { + setObject(emptyConstructor.newInstance()); + updateObject(); + } else { + WrappedPacketDataSerializer buf = new WrappedPacketDataSerializer(Unpooled.buffer()); + buf.d(entityId); + buf.writeDouble(x); + buf.writeDouble(y); + buf.writeDouble(z); + buf.writeFloat(yaw); + buf.writeFloat(pitch); + buf.writeBoolean(onGround); + + setObject(classEntityTeleport.getConstructor(WrappedPacketDataSerializer.vanillaClass.getParent()) + .newInstance(buf.getObject())); + } + } + + @Override + public void process(Player player, ProtocolVersion version) { + entityId = fetch(fieldEntityId); + onGround = fetch(fieldOnGround); + yaw = ((byte)fetch(fieldYaw)) / 256.f * 360.f; + pitch = ((byte)fetch(fieldPitch)) / 256.f * 360.f; + + if(ProtocolVersion.getGameVersion().isOrBelow(ProtocolVersion.V1_8_9)) { + x = ((int)fetch(fieldX)) / 32.; + y = ((int)fetch(fieldY)) / 32.; + z = ((int)fetch(fieldZ)) / 32.; + } else { + x = fetch(fieldX); + y = fetch(fieldY); + z = fetch(fieldZ); + } + } + + @Override + public void updateObject() { + set(fieldEntityId, entityId); + set(fieldYaw, (byte)((int)(yaw * 256.0F / 360.0F))); + set(fieldPitch, (byte)((int)(pitch * 256.0F / 360.0F))); + set(fieldOnGround, onGround); + + if(ProtocolVersion.getGameVersion().isOrBelow(ProtocolVersion.V1_8_9)) { + set(fieldX, MathHelper.floor_double(x * 32.)); + set(fieldY, MathHelper.floor_double(y * 32.)); + set(fieldZ, MathHelper.floor_double(z * 32.)); + } else { + set(fieldX, x); + set(fieldY, y); + set(fieldZ, z); + } + } + + static { + fieldEntityId = fetchField(classEntityTeleport, int.class, 0); + fieldYaw = fetchField(classEntityTeleport, byte.class, 0); + fieldPitch = fetchField(classEntityTeleport, byte.class, 1); + fieldOnGround = fetchField(classEntityTeleport, boolean.class, 0); + + if(ProtocolVersion.getGameVersion().isOrBelow(ProtocolVersion.V1_8_9)) { + fieldX = fetchField(classEntityTeleport, int.class, 1); + fieldY = fetchField(classEntityTeleport, int.class, 2); + fieldZ = fetchField(classEntityTeleport, int.class, 3); + } else { + fieldX = fetchField(classEntityTeleport, double.class, 0); + fieldY = fetchField(classEntityTeleport, double.class, 1); + fieldZ = fetchField(classEntityTeleport, double.class, 2); + } + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17)) { + emptyConstructor = classEntityTeleport.getConstructor(); + } + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutExplosionPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutExplosionPacket.java new file mode 100644 index 00000000..d9c7e136 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutExplosionPacket.java @@ -0,0 +1,86 @@ +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.Packet; +import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion; +import cc.funkemunky.api.tinyprotocol.packet.types.BaseBlockPosition; +import lombok.Getter; +import lombok.Setter; +import org.bukkit.entity.Player; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * PacketPlayOutExplosion + * Compatible with 1.7.10-1.17 + **/ +@Getter +@Setter +public class WrappedOutExplosionPacket extends NMSObject { + + private static final WrappedClass packetClass = Reflections.getNMSClass(Packet.Server.EXPLOSION); + private static final WrappedField fieldX = fetchField(packetClass, double.class, 0), + fieldY = fetchField(packetClass, double.class, 1), + fieldZ = fetchField(packetClass, double.class, 2), + fieldRadius = fetchField(packetClass, float.class, 0), + fieldBlockRecords = fetchField(packetClass, List.class, 0), + fieldMotionX = fetchField(packetClass, float.class, 1), + fieldMotionY = fetchField(packetClass, float.class, 2), + fieldMotionZ = fetchField(packetClass, float.class, 3); + + private double x, y, z; + private List blockRecords = Collections.emptyList(); + private float radius, motionX, motionY, motionZ; + + public WrappedOutExplosionPacket(Object object, Player player) { + super(object, player); + } + + @Override + public void process(Player player, ProtocolVersion version) { + x = fetch(fieldX); + y = fetch(fieldY); + z = fetch(fieldZ); + radius = fetch(fieldRadius); + motionX = fetch(fieldMotionX); + motionY = fetch(fieldMotionY); + motionZ = fetch(fieldMotionZ); + + blockRecords = new ArrayList<>(); + + final List blockRecordObjects = fetch(fieldBlockRecords); + + for (Object blockRecordObject : blockRecordObjects) { + if(blockRecordObject == null) continue; + + blockRecords + .add(new + BaseBlockPosition + (blockRecordObject)); + } + } + + @Override + public void updateObject() { + set(fieldX, x); + set(fieldY, y); + set(fieldZ, z); + set(fieldRadius, radius); + set(fieldMotionX, fieldMotionX); + set(fieldMotionY, fieldMotionY); + set(fieldMotionZ, fieldMotionZ); + + final List objects = new ArrayList<>(); + + for (BaseBlockPosition blockRecord : blockRecords) { + objects.add(blockRecord.getAsBlockPosition()); + } + + set(fieldBlockRecords, objects); + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutHeldItemSlot.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutHeldItemSlot.java new file mode 100644 index 00000000..4627d0c3 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutHeldItemSlot.java @@ -0,0 +1,40 @@ +package cc.funkemunky.api.tinyprotocol.packet.out; + +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; + +@Getter +public class WrappedOutHeldItemSlot extends NMSObject { + private static String packet = Server.HELD_ITEM; + private static FieldAccessor slotField = fetchField(packet, int.class, 0); + + private int slot; + + public WrappedOutHeldItemSlot(Object object, Player player) { + super(object, player); + } + + public WrappedOutHeldItemSlot(int slot) { + this.slot = slot; + + setObject(construct(packet, slot)); + } + + @Override + public void process(Player player, ProtocolVersion version) { + slot = fetch(slotField); + } + + @Override + public Object getObject() { + return super.getObject(); + } + + @Override + public void updateObject() { + + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutKeepAlivePacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutKeepAlivePacket.java new file mode 100644 index 00000000..6c5beb7e --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutKeepAlivePacket.java @@ -0,0 +1,43 @@ +package cc.funkemunky.api.tinyprotocol.packet.out; + +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; + +@Getter +public class WrappedOutKeepAlivePacket extends NMSObject { + private static final String packet = Server.KEEP_ALIVE; + + private static FieldAccessor fieldLegacy; + private static FieldAccessor field; + + private long time; + + public WrappedOutKeepAlivePacket(long time) { + if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_12)) setPacket(packet, (int) time); + else setPacket(packet, time); + } + + public WrappedOutKeepAlivePacket(Object packet, Player player) { + super(packet, player); + } + + @Override + public void process(Player player, ProtocolVersion version) { + if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_12)) { + fieldLegacy = fetchField(packet, int.class, 0); + time = fetch(fieldLegacy); + } + else { + field = fetchField(packet, long.class, 0); + time = fetch(field); + } + } + + @Override + public void updateObject() { + + } +} \ No newline at end of file diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutNamedEntitySpawnPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutNamedEntitySpawnPacket.java new file mode 100644 index 00000000..ad6335c9 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutNamedEntitySpawnPacket.java @@ -0,0 +1,97 @@ +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.tinyprotocol.api.NMSObject; +import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion; +import cc.funkemunky.api.tinyprotocol.packet.types.MathHelper; +import cc.funkemunky.api.tinyprotocol.packet.types.WrappedGameProfile; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + +import java.util.UUID; + +//TODO Add the ability to use this wrapper to spawn a fake entity and implement other field support. +public class WrappedOutNamedEntitySpawnPacket extends NMSObject { + + public WrappedOutNamedEntitySpawnPacket(Object object, Player player) { + super(object, player); + } + + private static WrappedClass packet = Reflections.getNMSClass(Server.NAMED_ENTITY_SPAWN); + + public int entityId; + public UUID uuid; + public double x, y, z; + public byte yaw, pitch; + public int currentItem; + + private static final WrappedField fieldEntityId, fieldUuid, fieldX, fieldY, fieldZ, fieldYaw, fieldPitch, + fieldCurrentItem; + + + @Override + public void process(Player player, ProtocolVersion version) { + entityId = fetch(fieldEntityId); + yaw = fetch(fieldYaw); + pitch = fetch(fieldPitch); + + if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) { + uuid = new WrappedGameProfile(fetch(fieldUuid)).id; + } else uuid = fetch(fieldUuid); + + if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) { + currentItem = fetch(fieldCurrentItem); + x = (int)fetch(fieldX) / 32.; + y = (int)fetch(fieldY) / 32.; + z = (int)fetch(fieldZ) / 32.; + } else { + x = fetch(fieldX); + y = fetch(fieldY); + z = fetch(fieldZ); + } + } + + @Override + public void updateObject() { + if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) { + Player player = Bukkit.getPlayer(uuid); + set(fieldUuid, player != null ? new WrappedGameProfile(player) : null); + } else set(fieldUuid, uuid); + + if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) { + set(fieldCurrentItem, currentItem); + set(fieldX, MathHelper.floor(x * 32.)); + set(fieldY, MathHelper.floor(y * 32.)); + set(fieldZ, MathHelper.floor(z * 32.)); + } else { + set(fieldX, x); + set(fieldY, y); + set(fieldZ, z); + } + } + + static { + fieldEntityId = fetchField(packet, int.class, 0); + fieldYaw = fetchField(packet, byte.class, 0); + fieldPitch = fetchField(packet, byte.class, 1); + + if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) { + fieldUuid = fetchField(packet, MinecraftReflection.gameProfile.getParent(), 0); + } else fieldUuid = fetchField(packet, UUID.class, 0); + + if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) { + fieldX = fetchField(packet, int.class, 1); + fieldY = fetchField(packet, int.class, 2); + fieldZ = fetchField(packet, int.class, 3); + fieldCurrentItem = fetchField(packet, int.class, 4); + } else { + fieldX = fetchField(packet, double.class, 0); + fieldY = fetchField(packet, double.class, 1); + fieldZ = fetchField(packet, double.class, 2); + fieldCurrentItem = null; + } + } +} \ No newline at end of file diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutOpenWindow.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutOpenWindow.java new file mode 100644 index 00000000..e57d7710 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutOpenWindow.java @@ -0,0 +1,75 @@ +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.ProtocolVersion; +import lombok.Getter; +import org.bukkit.entity.Player; + +@Getter +public class WrappedOutOpenWindow extends NMSObject { + + private static WrappedClass packet = Reflections.getNMSClass(Server.OPEN_WINDOW); + + public WrappedOutOpenWindow(Object object, Player player) { + super(object, player); + } + + private static WrappedField idField = fetchField(packet, int.class, 0); + private static WrappedField nameField; + private static WrappedField chatCompField; + private static WrappedField inventorySize; + + private int id; + private String name; //Not a thing in 1.14 and above. + private int size; + + @Override + public void process(Player player, ProtocolVersion version) { + id = fetch(idField); + + if(ProtocolVersion.getGameVersion().isOrBelow(ProtocolVersion.V1_13_2)) { + name = fetch(nameField); + } + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_19)) { + size = getId(fetch(inventorySize)); + } else size = fetch(inventorySize); + } + + @Override + public void updateObject() { + + } + + private static WrappedClass iReg; + private static WrappedField rkeyContainers; + private static Object resourceKeyContainers; + private static WrappedMethod getId; + + private static int getId(Object container) { + return getId.invoke(resourceKeyContainers, container); + } + + static { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_8)) { + chatCompField = fetchField(packet, + MinecraftReflection.iChatBaseComponent.getParent(), 0); + } + if(ProtocolVersion.getGameVersion().isOrBelow(ProtocolVersion.V1_13_2)) { + nameField = fetchField(packet, String.class, 0); + } + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_19)) { + iReg = Reflections.getNMSClass("IRegistry"); + rkeyContainers = iReg.getFieldByName("ah"); + resourceKeyContainers = rkeyContainers.get(null); + getId = iReg.getMethod("a", Object.class); + inventorySize = fetchField(packet, Reflections.getClass("net.minecraft.world.inventory.Containers").getParent(), 0); + } else { + inventorySize = fetchField(packet, int.class, 1); + } + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutPlayerInfo.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutPlayerInfo.java new file mode 100644 index 00000000..1b0fbdf4 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutPlayerInfo.java @@ -0,0 +1,108 @@ +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.WrappedConstructor; +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.WrappedGameProfile; +import cc.funkemunky.api.tinyprotocol.packet.types.WrappedPlayerInfoData; +import cc.funkemunky.api.tinyprotocol.packet.types.enums.WrappedEnumGameMode; +import cc.funkemunky.api.tinyprotocol.packet.types.enums.WrappedEnumPlayerInfoAction; +import cc.funkemunky.api.tinyprotocol.reflection.FieldAccessor; +import cc.funkemunky.api.utils.ReflectionsUtil; +import lombok.val; +import org.bukkit.entity.Player; + +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.List; + +public class WrappedOutPlayerInfo extends NMSObject { + private static String packet = Server.PLAYER_INFO; + + private static WrappedClass playerInfoClass = Reflections.getNMSClass(packet); + private static WrappedClass playerInfoDataClass; + private static WrappedConstructor constructor; + private static WrappedClass chatBaseComp = Reflections.getNMSClass("IChatBaseComponent"); + private static WrappedClass chatSerialClass = Reflections.getNMSClass("IChatBaseComponent$ChatSerializer"); + + private static WrappedMethod stcToComponent = chatSerialClass.getMethod("a", new Class[]{String.class}); + + public WrappedOutPlayerInfo(Object object, Player player) { + super(object, player); + } + + public WrappedOutPlayerInfo(WrappedEnumPlayerInfoAction action, Player player) { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_8)) { + var construct = playerInfoClass.getConstructor(WrappedEnumPlayerInfoAction.enumPlayerInfoAction.getParent(), + Array.newInstance(MinecraftReflection.entityPlayer.getParent(), 0).getClass()); + + Object array = Array.newInstance(MinecraftReflection.entityPlayer.getParent(), 1); + Array.set(array, 0, ReflectionsUtil.getEntityPlayer(player)); + setObject(construct.newInstance(action.toVanilla(), array)); + } else { + Object packet = playerInfoClass.getConstructor().newInstance(); + playerInfoClass.getMethod(action.legacyMethodName, ReflectionsUtil.EntityPlayer) + .invoke(packet, ReflectionsUtil.getEntityPlayer(player)); + + setObject(packet); + } + } + + //1.8+ + private static FieldAccessor playerInfoListAccessor; + private static FieldAccessor actionAcessorEnum; + + //1.7.10 + private static FieldAccessor actionAcessorInteger; + private static FieldAccessor gamemodeAccessor; + private static FieldAccessor profileAcessor; + private static FieldAccessor pingAcessor; + + + private List playerInfo = new ArrayList<>(); + private WrappedEnumPlayerInfoAction action; + + @Override + public void process(Player player, ProtocolVersion version) { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_8)) { + playerInfoListAccessor = fetchField(packet, List.class, 0); + actionAcessorEnum = fetchField(packet, Enum.class, 0); + + List list = fetch(playerInfoListAccessor); + + for (Object object : list) { + playerInfo.add(new WrappedPlayerInfoData(object)); + } + + action = WrappedEnumPlayerInfoAction.valueOf(fetch(actionAcessorEnum).name()); + } else { + actionAcessorInteger = fetchField(packet, Integer.class, 5); + profileAcessor = fetchFieldByName(packet, "player", Object.class); + gamemodeAccessor = fetchField(packet, Integer.class, 6); + pingAcessor = fetchField(packet, Integer.class, 7); + + action = WrappedEnumPlayerInfoAction.values()[fetch(actionAcessorInteger)]; + + WrappedGameProfile profile = new WrappedGameProfile(fetch(profileAcessor)); + WrappedEnumGameMode gamemode = WrappedEnumGameMode.getById(fetch(gamemodeAccessor)); + int ping = fetch(pingAcessor); + playerInfo.add(new WrappedPlayerInfoData(profile, gamemode, ping)); + } + } + + @Override + public void updateObject() { + + } + + static { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_8)) { + playerInfoDataClass = Reflections.getNMSClass(packet + "$PlayerInfoData"); + //constructor = playerInfoDataClass.getConstructor(Object.class, int.class, Object.class, Object.class); + } + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutPositionPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutPositionPacket.java new file mode 100644 index 00000000..96461035 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutPositionPacket.java @@ -0,0 +1,219 @@ +/* + * Copyright (c) 2018 NGXDEV.COM. Licensed under MIT. + */ + +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.Location; +import org.bukkit.entity.Player; + +import java.util.*; +import java.util.stream.Collectors; + +@Getter +public class WrappedOutPositionPacket extends NMSObject { + private static final String packet = Server.POSITION; + + private static WrappedClass packetClass = Reflections.getNMSClass(packet); + private static WrappedField fieldFlags; + private static final WrappedClass enumTeleportFlag; + + // Fields + private static FieldAccessor fieldX = fetchField(packet, double.class, 0); + private static FieldAccessor fieldY = fetchField(packet, double.class, 1); + private static FieldAccessor fieldZ = fetchField(packet, double.class, 2); + private static FieldAccessor fieldYaw = fetchField(packet, float.class, 0); + private static FieldAccessor fieldPitch = fetchField(packet, float.class, 1); + private static WrappedField fieldTeleportAwait; + + // Decoded data + private double x, y, z; + private float yaw, pitch; + private int teleportAwait = 0; + private Set flags; + + public WrappedOutPositionPacket() { + this.flags = new HashSet<>(); + } + + public WrappedOutPositionPacket(Object packet, Player player) { + super(packet, player); + } + + public WrappedOutPositionPacket(Location location, int teleportAwait, EnumPlayerTeleportFlags... flags) { + setObject(packetClass.getConstructor().newInstance()); + this.x = location.getX(); + this.y = location.getY(); + this.z = location.getZ(); + this.yaw = location.getYaw(); + this.pitch = location.getPitch(); + this.teleportAwait = teleportAwait; + this.flags = Arrays.stream(flags).collect(Collectors.toSet()); + + updateObject(); + } + + public WrappedOutPositionPacket(Location location, EnumPlayerTeleportFlags... flags) { + this(location, 0, flags); + } + + @Override + public void process(Player player, ProtocolVersion version) { + if(flags == null) this.flags = new HashSet<>(); + x = fetch(fieldX); + y = fetch(fieldY); + z = fetch(fieldZ); + yaw = fetch(fieldYaw); + pitch = fetch(fieldPitch); + + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) { + byte flagByte = fetch(fieldFlags); + + if((flagByte & 0x01) == 0x01) { + flags.add(EnumPlayerTeleportFlags.X); + } + if((flagByte & 0x02) == 0x02) { + flags.add(EnumPlayerTeleportFlags.Y); + } + if((flagByte & 0x04) == 0x04) { + flags.add(EnumPlayerTeleportFlags.Z); + } + if((flagByte & 0x08) == 0x08) { + flags.add(EnumPlayerTeleportFlags.Y_ROT); + } + if((flagByte & 0x10) == 0x10) { + flags.add(EnumPlayerTeleportFlags.X_ROT); + } + } else { + Set vflags = fetch(fieldFlags); + + for (Enum vflag : vflags) { + flags + .add( + EnumPlayerTeleportFlags + .valueOf( + vflag.name())); + } + + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) { + teleportAwait = fetch(fieldTeleportAwait); + } + } + } + + @Override + public void updateObject() { + set(fieldX, x); + set(fieldY, y); + set(fieldZ, z); + set(fieldYaw, yaw); + set(fieldPitch, pitch); + + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_8)) { + set(fieldFlags, flags.stream().map(f -> enumTeleportFlag.getEnum(f.name())) + .collect(Collectors.toSet())); + + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) { + set(fieldTeleportAwait, teleportAwait); + } + } else { + byte flagByte = 0; + + for (EnumPlayerTeleportFlags flag : flags) { + switch(flag) { + case X: + flagByte|= 0x01; + break; + case Y: + flagByte|= 0x02; + break; + case Z: + flagByte|= 0x04; + break; + case Y_ROT: + flagByte|= 0x08; + break; + case X_ROT: + flagByte|= 0x10; + break; + } + } + set(fieldFlags, flagByte); + } + } + + private List toOrdinal(Set enums) { + List ordinals = new ArrayList<>(); + enums.forEach(e -> ordinals.add(e.ordinal())); + return ordinals; + } + + static { + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) { + fieldFlags = packetClass.getFieldByType(byte.class, 0); + enumTeleportFlag = null; + } else { + enumTeleportFlag = Reflections.getNMSClass("PacketPlayOutPosition$EnumPlayerTeleportFlags"); + fieldFlags = packetClass.getFieldByType(Set.class, 0); + + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) { + fieldTeleportAwait = fetchField(packetClass, int.class, 0); + } + } + } + + public enum EnumPlayerTeleportFlags { + X(0), + Y(1), + Z(2), + Y_ROT(3), + X_ROT(4); + + private int f; + + private EnumPlayerTeleportFlags(int var3) { + this.f = var3; + } + + private int a() { + return 1 << this.f; + } + + private boolean b(int var1) { + return (var1 & this.a()) == this.a(); + } + + public static Set a(int var0) { + EnumSet var1 = EnumSet.noneOf(EnumPlayerTeleportFlags.class); + EnumPlayerTeleportFlags[] var2 = values(); + int var3 = var2.length; + + for(int var4 = 0; var4 < var3; ++var4) { + EnumPlayerTeleportFlags var5 = var2[var4]; + if (var5.b(var0)) { + var1.add(var5); + } + } + + return var1; + } + + public static int a(Set var0) { + int var1 = 0; + + EnumPlayerTeleportFlags var3; + for(Iterator var2 = var0.iterator(); var2.hasNext(); var1 |= var3.a()) { + var3 = (EnumPlayerTeleportFlags)var2.next(); + } + + return var1; + } + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutRelativePosition.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutRelativePosition.java new file mode 100644 index 00000000..449c5f57 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutRelativePosition.java @@ -0,0 +1,201 @@ +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.WrappedConstructor; +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.utils.MathHelper; +import lombok.Getter; +import org.bukkit.entity.Player; + +import java.util.List; + +@Getter +public class WrappedOutRelativePosition extends NMSObject { + private static final String packet = Server.ENTITY; + + private static boolean useLegacy = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8); + private static WrappedClass packetClass = Reflections.getNMSClass(packet), + posClass = Reflections.getNMSClass(useLegacy ? Server.LEGACY_REL_POSITION : Server.REL_POSITION), + posLookClass = Reflections.getNMSClass(useLegacy + ? Server.LEGACY_REL_POSITION_LOOK : Server.REL_POSITION_LOOK), + lookClass = Reflections.getNMSClass(useLegacy ? Server.LEGACY_REL_LOOK : Server.REL_LOOK); + private static WrappedConstructor emptyConst = packetClass.getConstructor(), posLookConst, posConst, lookConst; + private static WrappedField fieldId, fieldX, fieldY, fieldZ, fieldYaw, fieldPitch, fieldGround; + + // Decoded data + private int id; + private boolean look, pos, ground; + + public WrappedOutRelativePosition(int id, float yaw, float pitch, boolean ground) { + super(new Object()); + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17)) { + setObject(lookClass.getConstructor().newInstance()); + + set(fieldId, id); + setYaw(yaw); + setPitch(pitch); + set(fieldGround, ground); + } else { + setObject(lookConst.newInstance(id, (byte)MathHelper.floor_double(yaw * 256.0F / 360.0F), + (byte)MathHelper.floor_double(pitch * 256.0F / 360.0F), + ground)); + } + } + + public WrappedOutRelativePosition(int id, double x, double y, double z, boolean ground) { + super(new Object()); + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17)) { + setObject(posClass.getConstructor().newInstance()); + + set(fieldId, id); + setX(x); + setY(y); + setZ(z); + set(fieldGround, ground); + } else { + setObject(posConst.newInstance(id, (short) MathHelper.floor_double(x * 4096.0D), + (short) MathHelper.floor_double(y * 4096.0D), + (short) MathHelper.floor_double(z * 4096.0D), + ground)); + } + } + + public WrappedOutRelativePosition(int id, double x, double y, double z, float yaw, float pitch, boolean ground) { + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17)) { + setObject(posLookClass.getConstructor().newInstance()); + + set(fieldId, id); + setX(x); + setY(y); + setZ(z); + setYaw(yaw); + setPitch(pitch); + set(fieldGround, ground); + } else { + setObject(posLookConst.newInstance(id, (short) MathHelper.floor_double(x * 4096.0D), + (short) MathHelper.floor_double(y * 4096.0D), + (short) MathHelper.floor_double(z * 4096.0D), + (byte)MathHelper.floor_double(yaw * 256.0F / 360.0F), + (byte)MathHelper.floor_double(pitch * 256.0F / 360.0F), + ground)); + } + } + + public WrappedOutRelativePosition(Object packet, Player player) { + super(packet, player); + } + + @Override + public void process(Player player, ProtocolVersion version) { + String name = getPacketName(); + + if (useLegacy) { + pos = name.equals(Server.LEGACY_REL_POSITION) || name.equals(Server.LEGACY_REL_POSITION_LOOK); + look = name.equals(Server.LEGACY_REL_LOOK) || name.equals(Server.LEGACY_REL_POSITION_LOOK); + } else { + pos = name.equals(Server.REL_POSITION) || name.equals(Server.REL_POSITION_LOOK); + look = name.equals(Server.REL_LOOK) || name.equals(Server.REL_POSITION_LOOK); + } + id = fetch(fieldId); + ground = fetch(fieldGround); + } + + @Override + public void updateObject() { + + } + + public T getX() { + return fetch(fieldX); + } + + public T getY() { + return fetch(fieldY); + } + + public T getZ() { + return fetch(fieldZ); + } + + public T getYaw() { + return fetch(fieldYaw); + } + + public T getPitch() { + return fetch(fieldPitch); + } + + public void setX(double x) { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_14)) { + set(fieldX, (short) MathHelper.floor_double(x * 4096.0D)); + } else if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) { + set(fieldX, (int)MathHelper.floor_double_long(x * 4096)); + } else { + set(fieldX, (byte)MathHelper.floor_double(x * 32D)); + } + } + + public void setY(double y) { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_14)) { + set(fieldY, (short) MathHelper.floor_double(y * 4096.0D)); + } else if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) { + set(fieldY, (int)MathHelper.floor_double_long(y * 4096)); + } else { + set(fieldY, (byte)MathHelper.floor_double(y * 32D)); + } + } + + + public void setZ(double z) { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_14)) { + set(fieldZ, (short) MathHelper.floor_double(z * 4096.0D)); + } else if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) { + set(fieldZ, (int)MathHelper.floor_double_long(z * 4096)); + } else { + set(fieldZ, (byte)MathHelper.floor_double(z * 32D)); + } + } + + public void setYaw(float yaw) { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) { + set(fieldYaw, MathHelper.floor_double(yaw * 256.0F / 360.0F)); + } else { + set(fieldYaw, (byte)MathHelper.floor_double(yaw * 256.0F / 360.0F)); + } + } + + public void setPitch(float pitch) { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_9)) { + set(fieldPitch, MathHelper.floor_double(pitch * 256.0F / 360.0F)); + } else { + set(fieldPitch, (byte)MathHelper.floor_double(pitch * 256.0F / 360.0F)); + } + } + + + static { + List fields = packetClass.getFields(true); + + int addIndex = ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17) + && ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_19) ? 1 : 0; + + fieldId = fields.get(0 + addIndex); + fieldX = fields.get(1 + addIndex); + fieldY = fields.get(2 + addIndex); + fieldZ = fields.get(3 + addIndex); + fieldYaw = fields.get(4 + addIndex); + fieldPitch = fields.get(5 + addIndex); + fieldGround = fields.get(6 + addIndex); + + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17)) { + posLookConst = posLookClass + .getConstructor(int.class, short.class, short.class, + short.class, byte.class, byte.class, boolean.class); + posConst = posClass.getConstructor(int.class, short.class, short.class, short.class, boolean.class); + lookConst = lookClass.getConstructor(int.class, byte.class, byte.class, boolean.class); + } + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutRespawnPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutRespawnPacket.java new file mode 100644 index 00000000..85f60cfe --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutRespawnPacket.java @@ -0,0 +1,106 @@ +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.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.enums.WrappedEnumDifficulty; +import cc.funkemunky.api.tinyprotocol.packet.types.enums.WrappedEnumGameMode; +import cc.funkemunky.api.tinyprotocol.reflection.FieldAccessor; +import lombok.Getter; +import org.bukkit.WorldType; +import org.bukkit.entity.Player; + +@Getter +public class WrappedOutRespawnPacket extends NMSObject { + + public WrappedOutRespawnPacket(Object object, Player player) { + super(object, player); + } + + private static String packet = Server.RESPAWN; + + private static FieldAccessor difficultyAcessor; + private static FieldAccessor gamemodeAccessor; + private static FieldAccessor worldTypeAccessor; + private static WrappedClass worldTypeClass, respawnClass = Reflections.getNMSClass(packet); + private static WrappedField worldTypeNameField; + private static WrappedMethod getTypeWorldType; + private static WrappedConstructor emptyConstructor = respawnClass.getConstructor(); + + //Before 1.13 + private static FieldAccessor dimensionAccesor; + + //1.13 and newer version of World ID + private static FieldAccessor dimensionManagerAcceessor; + private static WrappedClass dimensionManagerClass; + private static WrappedField dimensionManagerField; + private static WrappedMethod dimensionManagerFromId; + + private int dimension; + private WrappedEnumGameMode gamemode; + private WrappedEnumDifficulty difficulty = WrappedEnumDifficulty.NORMAL; + private WorldType worldType; + + public WrappedOutRespawnPacket() { + setObject(emptyConstructor.newInstance()); + } + + public WrappedOutRespawnPacket(int dimension, WrappedEnumGameMode gamemode, + WrappedEnumDifficulty difficulty, WorldType worldType) { + this.dimension = dimension; + this.gamemode = gamemode; + this.difficulty = difficulty; + this.worldType = worldType; + + updateObject(); + } + + @Override + public void process(Player player, ProtocolVersion version) { + if(ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_13)) { + Object dimensionManager = fetch(dimensionManagerAcceessor); + dimension = dimensionManagerField.get(dimensionManager); + } else { + dimension = fetch(dimensionAccesor); + } + gamemode = WrappedEnumGameMode.fromObject(fetch(gamemodeAccessor)); + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16)) { + difficulty = WrappedEnumDifficulty.fromObject(fetch(difficultyAcessor)); + worldType = WorldType.getByName(worldTypeNameField.get(fetch(worldTypeAccessor))); + } else worldType = fetch(worldTypeNameField) ? WorldType.NORMAL : WorldType.FLAT; + } + + @Override + public void updateObject() { + if(ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_13)) { + dimensionManagerAcceessor.set(getObject(), dimensionManagerFromId.invoke(dimension)); + } else dimensionAccesor.set(getObject(), dimension); + gamemodeAccessor.set(getObject(), gamemode.getObject()); + difficultyAcessor.set(getObject(), difficulty.getObject()); + worldTypeAccessor.set(getObject(), getTypeWorldType.invoke(null, worldType.getName())); + } + + static { + if(ProtocolVersion.getGameVersion().isAbove(ProtocolVersion.V1_13)) { + dimensionManagerAcceessor = fetchField(packet, Object.class, 0); + dimensionManagerClass = Reflections.getNMSClass("DimensionManager"); + dimensionManagerField = dimensionManagerClass.getFirstFieldByType(int.class); + dimensionManagerFromId = dimensionManagerClass.getMethod("a", int.class); + } else dimensionAccesor = fetchField(packet, int.class, 0); + + difficultyAcessor = fetchField(packet, Enum.class, 0); + gamemodeAccessor = fetchField(packet, Enum.class, 1); + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_16)) { + worldTypeClass = Reflections.getNMSClass("WorldType"); + worldTypeAccessor = fetchField(packet, worldTypeClass.getParent(), 0); + worldTypeNameField = worldTypeClass.getFirstFieldByType(String.class); + getTypeWorldType = worldTypeClass.getMethod("getType", String.class); + } else { + worldTypeNameField = respawnClass.getFieldByType(boolean.class, 1); + } + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutSetSlotPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutSetSlotPacket.java new file mode 100644 index 00000000..2cae5f67 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutSetSlotPacket.java @@ -0,0 +1,53 @@ +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.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.tinyprotocol.api.NMSObject; +import cc.funkemunky.api.tinyprotocol.api.Packet; +import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion; +import lombok.Getter; +import lombok.Setter; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +@Getter +@Setter +public class WrappedOutSetSlotPacket extends NMSObject { + + private static WrappedClass classSetSlot = Reflections.getNMSClass(Packet.Server.SET_SLOT); + private static WrappedConstructor emptyConstructor = classSetSlot.getConstructor(); + private static WrappedField fieldWindow = fetchField(classSetSlot, int.class, 0), + fieldSlot = fetchField(classSetSlot, int.class, 1), + fieldItem = fetchField(classSetSlot, MinecraftReflection.itemStack.getParent(), 0); + + private int windowId, slot; + private ItemStack item; + + public WrappedOutSetSlotPacket(int windowId, int slot, ItemStack item) { + super((Object)emptyConstructor.newInstance()); + this.windowId = windowId; + this.slot = slot; + this.item = item; + updateObject(); + } + + @Override + public void process(Player player, ProtocolVersion version) { + super.process(player, version); + + windowId = fetch(fieldWindow); + slot = fetch(fieldSlot); + item = MinecraftReflection.toBukkitItemStack(fetch(fieldItem)); + } + + @Override + public void updateObject() { + set(fieldWindow, windowId); + set(fieldSlot, slot); + set(fieldItem, CraftReflection.getVanillaItemStack(item)); + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutSpawnEntityLivingPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutSpawnEntityLivingPacket.java new file mode 100644 index 00000000..2c24e66b --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutSpawnEntityLivingPacket.java @@ -0,0 +1,105 @@ +package cc.funkemunky.api.tinyprotocol.packet.out; + +import cc.funkemunky.api.Atlas; +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.MathHelper; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; + +import java.util.Optional; +import java.util.UUID; + +//TODO Add the ability to use this wrapper to spawn a fake entity and implement other field support. +public class WrappedOutSpawnEntityLivingPacket extends NMSObject { + + public WrappedOutSpawnEntityLivingPacket(Object object, Player player) { + super(object, player); + } + + private static WrappedClass packet = Reflections.getNMSClass(Server.SPAWN_ENTITY_LIVING); + + public Optional entity = Optional.empty(); + public int entityId, type; + public UUID uuid; //1.9+ only + public double x, y, z; //an integer versions below 1.9 + public int yaw, pitch, headPitch; + public byte velocityX, velocityY, velocityZ; + + private static WrappedField fieldEntityId, fieldUuid, fieldType, fieldX, fieldY, fieldZ, + fieldYaw, fieldPitch, fieldHeadPitch, fieldVelocityX, fieldVelocityY, fieldVelocityZ; + + @Override + public void process(Player player, ProtocolVersion version) { + + entityId = fetch(fieldEntityId); + + //if this packet is being sent to this player, the entity will be in the same world. + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) { + x = (int)fetch(fieldX) / 32.; + y = (int)fetch(fieldY) / 32.; + z = (int)fetch(fieldZ) / 32.; + } else { + x = fetch(fieldX); + y = fetch(fieldY); + z = fetch(fieldZ); + uuid = fetch(fieldUuid); + } + + yaw = fetch(fieldYaw); + pitch = fetch(fieldPitch); + headPitch = fetch(fieldHeadPitch); + velocityX = fetch(fieldVelocityX); + velocityY = fetch(fieldVelocityY); + velocityZ = fetch(fieldVelocityZ); + } + + @Override + public void updateObject() { + set(fieldEntityId, entityId); + if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) { + set(fieldX, MathHelper.floor(x * 32.)); + set(fieldY, MathHelper.floor(y * 32.)); + set(fieldZ, MathHelper.floor(z * 32.)); + } else { + set(fieldX, x); + set(fieldY, y); + set(fieldZ, z); + set(fieldUuid, uuid); + } + + set(fieldYaw, yaw); + set(fieldPitch, pitch); + set(fieldHeadPitch, headPitch); + set(fieldVelocityX, velocityX); + set(fieldVelocityY, velocityY); + set(fieldVelocityZ, velocityZ); + } + + static { + fieldEntityId = fetchField(packet, int.class, 0); + fieldType = fetchField(packet, int.class, 1); + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) { + fieldX = fetchField(packet, int.class, 2); + fieldY = fetchField(packet, int.class, 3); + fieldZ = fetchField(packet, int.class, 4); + fieldYaw = fetchField(packet, int.class, 5); + fieldPitch = fetchField(packet, int.class, 6); + fieldHeadPitch = fetchField(packet, int.class, 7); + } else { + fieldX = fetchField(packet, double.class, 0); + fieldY = fetchField(packet, double.class, 1); + fieldZ = fetchField(packet, double.class, 2); + fieldYaw = fetchField(packet, int.class, 2); + fieldPitch = fetchField(packet, int.class, 3); + fieldHeadPitch = fetchField(packet, int.class, 4); + fieldUuid = fetchField(packet, UUID.class, 0); + } + fieldVelocityX = fetchField(packet, byte.class, 0); + fieldVelocityY = fetchField(packet, byte.class, 1); + fieldVelocityZ = fetchField(packet, byte.class, 2); + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutSpawnEntityPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutSpawnEntityPacket.java new file mode 100644 index 00000000..9640626e --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutSpawnEntityPacket.java @@ -0,0 +1,128 @@ +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.Packet; +import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion; +import cc.funkemunky.api.tinyprotocol.packet.types.MathHelper; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; + +import java.util.Optional; +import java.util.UUID; + +//TODO 1.15+ compatibility. +public class WrappedOutSpawnEntityPacket extends NMSObject { + + public Optional entity = Optional.empty(); + public int entityId, type; + public UUID uuid; //1.9+ only + public double x, y, z; //an integer versions below 1.9 + public int pitch, yaw, data, velocityX, velocityY, velocityZ; + + private static final WrappedClass packet = Reflections.getNMSClass(Packet.Server.SPAWN_ENTITY); + private static WrappedField fieldEntityId, fieldType, fieldUuid, fieldX, fieldY, fieldZ, fieldYaw, + fieldPitch, fieldData, fieldVelocityX, fieldVelocityY, fieldVelocityZ; + + + public WrappedOutSpawnEntityPacket(Object object, Player player) { + super(object, player); + } + + //TODO Make this so people can create this packet to send. + public WrappedOutSpawnEntityPacket(Entity entity) { + setObject(packet.getConstructor().newInstance()); + this.entityId = entity.getEntityId(); + this.entity = Optional.of(entity); + this.uuid = entity.getUniqueId(); + this.type = entity.getType().getTypeId(); + this.x = entity.getLocation().getX(); + this.y = entity.getLocation().getY(); + this.z = entity.getLocation().getZ(); + this.pitch = MathHelper.d(entity.getLocation().getPitch() * 256.f / 360.f); + this.yaw = MathHelper.d(entity.getLocation().getYaw() * 256.f / 360.f); + + updateObject(); + } + + @Override + public void process(Player player, ProtocolVersion version) { + entityId = fetch(fieldEntityId); + + //if this packet is being sent to this player, the entity will be in the same world. + entity = player.getWorld().getEntities().stream().filter(ent -> ent.getEntityId() == entityId).findFirst(); + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) { + x = (int)fetch(fieldX) / 32.; + y = (int)fetch(fieldY) / 32.; + z = (int)fetch(fieldZ) / 32.; + entity.ifPresent(ent -> uuid = ent.getUniqueId()); + } else { + x = fetch(fieldX); + y = fetch(fieldY); + z = fetch(fieldZ); + uuid = fetch(fieldUuid); + } + velocityX = fetch(fieldVelocityX); + velocityY = fetch(fieldVelocityY); + velocityZ = fetch(fieldVelocityZ); + pitch = fetch(fieldPitch); + yaw = fetch(fieldYaw); + type = fetch(fieldType); + data = fetch(fieldData); + } + + @Override + public void updateObject() { + set(fieldEntityId, entityId); + + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) { + set(fieldX, MathHelper.floor(x * 32.)); + set(fieldY, MathHelper.floor(y * 32.)); + set(fieldZ, MathHelper.floor(z * 32.)); + } else { + set(fieldX, x); + set(fieldY, y); + set(fieldZ, z); + set(fieldUuid, uuid); + } + + set(fieldVelocityX, velocityX); + set(fieldVelocityY, velocityY); + set(fieldVelocityZ, velocityZ); + set(fieldPitch, pitch); + set(fieldYaw, yaw); + set(fieldType, type); + set(fieldData, data); + } + + static { + fieldEntityId = packet.getFieldByType(int.class, 0); + + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) { + fieldX = packet.getFieldByType(int.class, 1); + fieldY = packet.getFieldByType(int.class, 2); + fieldZ = packet.getFieldByType(int.class, 3); + fieldVelocityX = packet.getFieldByType(int.class, 4); + fieldVelocityY = packet.getFieldByType(int.class, 5); + fieldVelocityZ = packet.getFieldByType(int.class, 6); + fieldPitch = packet.getFieldByType(int.class, 7); + fieldYaw = packet.getFieldByType(int.class, 8); + fieldType = packet.getFieldByType(int.class, 9); + fieldData = packet.getFieldByType(int.class, 10); + } else { + fieldUuid = packet.getFieldByType(UUID.class, 0); + fieldX = packet.getFieldByType(double.class, 0); + fieldY = packet.getFieldByType(double.class, 1); + fieldZ = packet.getFieldByType(double.class, 2); + fieldVelocityX = packet.getFieldByType(int.class, 1); + fieldVelocityY = packet.getFieldByType(int.class, 2); + fieldVelocityZ = packet.getFieldByType(int.class, 3); + fieldPitch = packet.getFieldByType(int.class, 4); + fieldYaw = packet.getFieldByType(int.class, 5); + fieldType = packet.getFieldByType(int.class, 6); + fieldData = packet.getFieldByType(int.class, 7); + } + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutTabComplete.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutTabComplete.java new file mode 100644 index 00000000..e48234d0 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutTabComplete.java @@ -0,0 +1,79 @@ +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.v1_13.DontImportIfNotLatestThanks; +import cc.funkemunky.api.tinyprotocol.packet.types.v1_13.WrappedSuggestions; +import org.bukkit.entity.Player; + +public class WrappedOutTabComplete extends NMSObject { + + private static String packet = Server.TAB_COMPLETE; + private static WrappedClass tabClass = Reflections.getNMSClass(packet); + private static WrappedClass suggestionsClass = WrappedSuggestions.suggestionsClass; + private static DontImportIfNotLatestThanks stuff; + + public String[] suggestions; + + //1.13 only + public int id = -1; + + private static WrappedField suggestionsAccessor; + + //1.13 and above + private static WrappedField idAccessor; + + public WrappedOutTabComplete(Object object) { + super(object); + } + + public WrappedOutTabComplete(Object object, Player player) { + super(object, player); + } + + //For everything below 1.13. + public WrappedOutTabComplete(String... result) { + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_13)) { + setPacket(packet, (Object) result); + } + } + + //For 1.13 and above + public WrappedOutTabComplete(int id, String input, String... result) { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.V1_13)) { + Object suggestions = stuff.getSuggestions(input, result); + + setPacket(packet, id, suggestions); + } + } + + @Override + public void process(Player player, ProtocolVersion version) { + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_13)) { + //Getting suggestions. + suggestions = suggestionsAccessor.get(getObject()); + } else { + //Getting suggestions + id = idAccessor.get(getObject()); + suggestions = stuff.getArrayFromSuggestions(suggestionsAccessor.get(getObject())); + } + } + + @Override + public void updateObject() { + + } + + static { + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_13)) { + suggestionsAccessor = tabClass.getFieldByType(String[].class, 0); + } else { + suggestionsAccessor = tabClass.getFieldByType(suggestionsClass.getParent(), 0); + idAccessor = tabClass.getFieldByType(int.class, 0); + stuff = new DontImportIfNotLatestThanks(); + } + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutTransaction.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutTransaction.java new file mode 100644 index 00000000..d1abe7da --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutTransaction.java @@ -0,0 +1,72 @@ +package cc.funkemunky.api.tinyprotocol.packet.out; + +import cc.funkemunky.api.reflections.Reflections; +import cc.funkemunky.api.reflections.types.WrappedConstructor; +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; + +@Getter +public class WrappedOutTransaction extends NMSObject { + private static final String packet = Server.TRANSACTION; + private static WrappedConstructor rawIntConstructor; + private static final FieldAccessor fieldId = fetchField(packet, int.class, 0); + private static FieldAccessor fieldAction; + private static FieldAccessor fieldAccepted; + private int id; + private short action; + private boolean accept; + private int idRaw = -1; + + public WrappedOutTransaction(int id, short action, boolean accept) { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17)) { + setObject(rawIntConstructor + .newInstance((int)((accept ? 1 : 0) << 30) | (id << 16) | (action & 0xFFFF))); + } else { + setPacket(packet); + this.id = id; + this.action = action; + this.accept = accept; + updateObject(); + } + } + + public WrappedOutTransaction(Object packet, Player player) { + super(packet, player); + } + + @Override + public void process(Player player, ProtocolVersion version) { + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17)) { + id = fetch(fieldId); + action = fetch(fieldAction); + accept = fetch(fieldAccepted); + } else { + idRaw = fetch(fieldId); + + id = (short) ((idRaw >> 16) & 0xFF); + action = (short) (idRaw & 0xFFFF); + accept = (idRaw & (1 << 30)) != 0; + } + } + + @Override + public void updateObject() { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17)) { + set(fieldId, ((accept ? 1 : 0) << 30) | (id << 16) | (action & 0xFFFF)); + } else { + set(fieldId, id); + set(fieldAction, action); + set(fieldAccepted, accept); + } + } + + static { + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17)) { + fieldAccepted = fetchField(packet, boolean.class, 0); + fieldAction = fetchField(packet, short.class, 0); + } else rawIntConstructor = Reflections.getNMSClass(packet).getConstructor(int.class); + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutVelocityPacket.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutVelocityPacket.java new file mode 100644 index 00000000..01a97823 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedOutVelocityPacket.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2018 NGXDEV.COM. Licensed under MIT. + */ + +package cc.funkemunky.api.tinyprotocol.packet.out; + +import cc.funkemunky.api.tinyprotocol.api.NMSObject; +import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion; +import cc.funkemunky.api.tinyprotocol.packet.types.Vec3D; +import cc.funkemunky.api.tinyprotocol.reflection.FieldAccessor; +import lombok.Getter; +import org.bukkit.entity.Player; + +@Getter +public class WrappedOutVelocityPacket extends NMSObject { + private static final String packet = Server.ENTITY_VELOCITY; + + // Fields + private static FieldAccessor fieldId = fetchField(packet, int.class, 0); + private static FieldAccessor fieldX = fetchField(packet, int.class, 1); + private static FieldAccessor fieldY = fetchField(packet, int.class, 2); + private static FieldAccessor fieldZ = fetchField(packet, int.class, 3); + + // Decoded data + private int id; + private double x, y, z; + + //Test to see if this works. + + public WrappedOutVelocityPacket(int entityId, double x, double y, double z) { + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_14)) { + setPacket(packet, entityId, x, y, z); + } else setPacket(packet, entityId, new Vec3D(x, y, z).getObject()); //changed to Vec3D for some reason... + } + + public WrappedOutVelocityPacket(Object packet, Player player) { + super(packet, player); + } + + @Override + public void process(Player player, ProtocolVersion version) { + id = fetch(fieldId); + x = fetch(fieldX) / 8000D; + y = fetch(fieldY) / 8000D; + z = fetch(fieldZ) / 8000D; + } + + @Override + public void updateObject() { + set(fieldId, id); + set(fieldX, (int)(x * 8000.)); + set(fieldY, (int)(y * 8000.)); + set(fieldZ, (int)(z * 8000.)); + } +} diff --git a/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedPacketPlayOutWorldParticle.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedPacketPlayOutWorldParticle.java new file mode 100644 index 00000000..7e3a88a1 --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/out/WrappedPacketPlayOutWorldParticle.java @@ -0,0 +1,68 @@ +package cc.funkemunky.api.tinyprotocol.packet.out; + +import cc.funkemunky.api.reflections.Reflections; +import cc.funkemunky.api.reflections.types.WrappedConstructor; +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.enums.WrappedEnumParticle; +import lombok.Getter; + +@Getter +public class WrappedPacketPlayOutWorldParticle extends NMSObject { + + private WrappedEnumParticle type; + private static String packetPlayOutWorldParticle = Packet.Server.WORLD_PARTICLE; + private static WrappedConstructor particleConst = null; + private boolean j; + private float x; + private float y; + private float z; + private float xOffset; + private float yOffset; + private float zOffset; + private float speed; + private int amount; + private int[] data; + + public WrappedPacketPlayOutWorldParticle(WrappedEnumParticle type, boolean var2, float x, float y, float z, + float xOffset, float yOffset, float zOffset, float speed, + int amount, int... data) { + this.type = type; + this.j = var2; + this.x = x; + this.y = y; + this.z = z; + this.xOffset = xOffset; + this.yOffset = yOffset; + this.zOffset = zOffset; + this.speed = speed; + this.amount = amount; + this.data = data; + + if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_8)) { + setPacket(packetPlayOutWorldParticle, type.getName().toLowerCase(), x, y, z, xOffset, yOffset, zOffset, + speed, amount); + } else if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_13)) { + setPacket(packetPlayOutWorldParticle, type.toNMS(), var2, x, y, z, xOffset, yOffset, zOffset, speed, + amount, data); + } else if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.v1_17)) { + setPacket(packetPlayOutWorldParticle, x, y, z, xOffset, yOffset, zOffset, speed, amount, + var2, type.toNMS()); + } else { + setObject(particleConst.newInstance(type.toNMS(), var2, x, y, z, xOffset, yOffset, zOffset, speed, amount)); + } + } + + @Override + public void updateObject() { + + } + + static { + if(ProtocolVersion.getGameVersion().isOrAbove(ProtocolVersion.v1_17)) { + particleConst = Reflections.getNMSClass(Packet.Server.WORLD_PARTICLE) + .getConstructors().get(0); + } + } +} \ No newline at end of file diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/BaseBlockPosition.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/BaseBlockPosition.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/BaseBlockPosition.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/BaseBlockPosition.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/MathHelper.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/MathHelper.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/MathHelper.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/MathHelper.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/Vec3D.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/Vec3D.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/Vec3D.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/Vec3D.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatComponent.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatComponent.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatComponent.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatComponent.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatMessage.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatMessage.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatMessage.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatMessage.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatMessageType.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatMessageType.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatMessageType.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedChatMessageType.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedEnumMainHand.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedEnumMainHand.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedEnumMainHand.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedEnumMainHand.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedGameProfile.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedGameProfile.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedGameProfile.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedGameProfile.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedMinecraftKey.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedMinecraftKey.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedMinecraftKey.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedMinecraftKey.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedMobEffect.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedMobEffect.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedMobEffect.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedMobEffect.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedPacketDataSerializer.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedPacketDataSerializer.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedPacketDataSerializer.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedPacketDataSerializer.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedPlayerInfoData.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedPlayerInfoData.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedPlayerInfoData.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedPlayerInfoData.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedWatchableObject.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedWatchableObject.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedWatchableObject.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/WrappedWatchableObject.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumAnimation.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumAnimation.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumAnimation.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumAnimation.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumDifficulty.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumDifficulty.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumDifficulty.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumDifficulty.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumDirection.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumDirection.java similarity index 99% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumDirection.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumDirection.java index 24c5697b..d3116695 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumDirection.java +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumDirection.java @@ -125,7 +125,7 @@ public String getName() { } public static WrappedEnumDirection fromVanilla(Enum object) { - return Arrays.stream(values()).filter(val -> val.name().equals(object.name())).findFirst() + return Arrays.stream(values()).filter(var -> var.name().equals(object.name())).findFirst() .orElse(WrappedEnumDirection.UP); } diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumGameMode.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumGameMode.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumGameMode.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumGameMode.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumHand.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumHand.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumHand.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumHand.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumParticle.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumParticle.java similarity index 97% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumParticle.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumParticle.java index f34d09e5..21d9d3f8 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumParticle.java +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumParticle.java @@ -72,7 +72,7 @@ public enum WrappedEnumParticle { private static WrappedMethod toNMS; public static WrappedEnumParticle getByName(String name) { - return Arrays.stream(values()).filter(val -> val.getName().equalsIgnoreCase(name)) + return Arrays.stream(values()).filter(var -> var.getName().equalsIgnoreCase(name)) .findFirst().orElse(null); } diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumPlayerInfoAction.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumPlayerInfoAction.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumPlayerInfoAction.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumPlayerInfoAction.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumProtocol.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumProtocol.java similarity index 92% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumProtocol.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumProtocol.java index 6277b76c..18f28924 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumProtocol.java +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumProtocol.java @@ -25,7 +25,7 @@ public T toVanilla() { } public static WrappedEnumProtocol fromVanilla(Enum object) { - return Arrays.stream(values()).filter(val -> val.name().equals(object.name())).findFirst() + return Arrays.stream(values()).filter(var -> var.name().equals(object.name())).findFirst() .orElse(WrappedEnumProtocol.UNKNOWN); } } diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumTeleportFlag.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumTeleportFlag.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumTeleportFlag.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/enums/WrappedEnumTeleportFlag.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/DontImportIfNotLatestThanks.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/DontImportIfNotLatestThanks.java similarity index 58% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/DontImportIfNotLatestThanks.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/DontImportIfNotLatestThanks.java index d176d4e4..d32749aa 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/DontImportIfNotLatestThanks.java +++ b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/DontImportIfNotLatestThanks.java @@ -5,29 +5,35 @@ import cc.funkemunky.api.reflections.impl.MinecraftReflection; import cc.funkemunky.api.reflections.types.WrappedClass; import cc.funkemunky.api.reflections.types.WrappedMethod; +import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.LiteralMessage; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; -import lombok.var; import org.bukkit.Bukkit; import org.bukkit.entity.Player; public class DontImportIfNotLatestThanks { - private static WrappedClass commandDispatcherClass = Reflections.getNMSClass("CommandDispatcher"); - private Object commandDispatcher; - private CommandDispatcher bukkitDispatcher; - private WrappedMethod updateCommands = new WrappedClass(Player.class).getMethod("updateCommands"); + private static final WrappedClass commandDispatcherClass = ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_19_1) + ? Reflections.getNMSClass("CommandDispatcher") : Reflections.getClass("com.mojang.brigadier.CommandDispatcher"); + private final CommandDispatcher bukkitDispatcher; + private final WrappedMethod updateCommands = new WrappedClass(Player.class).getMethod("updateCommands"); public DontImportIfNotLatestThanks() { - commandDispatcher = - MinecraftReflection.minecraftServer - .getFieldByType(commandDispatcherClass.getParent(), 0) - .get(CraftReflection.getMinecraftServer()); + if(ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_20_1)) { + Object commandDispatcher = MinecraftReflection.minecraftServer + .getFieldByType(commandDispatcherClass.getParent(), 0) + .get(CraftReflection.getMinecraftServer()); - bukkitDispatcher = commandDispatcherClass.getFieldByType(CommandDispatcher.class, 0) - .get(commandDispatcher); + bukkitDispatcher = commandDispatcherClass.getFieldByType(CommandDispatcher.class, 0) + .get(commandDispatcher); + } else { + WrappedClass commandsClass = Reflections.getNMSClass("Commands"); + var commands = MinecraftReflection.minecraftServer.getMethod("getCommands"); + bukkitDispatcher = commandsClass.getFieldByType(CommandDispatcher.class, 0) + .get(commands.invoke(CraftReflection.getMinecraftServer())); + } } public T getSuggestions(String input, String... options) { int start = input.startsWith("/") ? 1 : 0; diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedStringRange.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedStringRange.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedStringRange.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedStringRange.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedSuggestion.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedSuggestion.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedSuggestion.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedSuggestion.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedSuggestions.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedSuggestions.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedSuggestions.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/packet/types/v1_13/WrappedSuggestions.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/ConstructorInvoker.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/ConstructorInvoker.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/ConstructorInvoker.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/ConstructorInvoker.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/FieldAccessor.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/FieldAccessor.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/FieldAccessor.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/FieldAccessor.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/MethodInvoker.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/MethodInvoker.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/MethodInvoker.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/MethodInvoker.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/Reflection.java b/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/Reflection.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/Reflection.java rename to Atlas/src/main/java/cc/funkemunky/api/tinyprotocol/reflection/Reflection.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/updater/Updater.java b/Atlas/src/main/java/cc/funkemunky/api/updater/Updater.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/updater/Updater.java rename to Atlas/src/main/java/cc/funkemunky/api/updater/Updater.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/updater/UpdaterListener.java b/Atlas/src/main/java/cc/funkemunky/api/updater/UpdaterListener.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/updater/UpdaterListener.java rename to Atlas/src/main/java/cc/funkemunky/api/updater/UpdaterListener.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/updater/UpdaterUtils.java b/Atlas/src/main/java/cc/funkemunky/api/updater/UpdaterUtils.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/updater/UpdaterUtils.java rename to Atlas/src/main/java/cc/funkemunky/api/updater/UpdaterUtils.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/AutoLoad.java b/Atlas/src/main/java/cc/funkemunky/api/utils/AutoLoad.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/AutoLoad.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/AutoLoad.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/BlockBounds.java b/Atlas/src/main/java/cc/funkemunky/api/utils/BlockBounds.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/BlockBounds.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/BlockBounds.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/BlockUtils.java b/Atlas/src/main/java/cc/funkemunky/api/utils/BlockUtils.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/BlockUtils.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/BlockUtils.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/BoundingBox.java b/Atlas/src/main/java/cc/funkemunky/api/utils/BoundingBox.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/BoundingBox.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/BoundingBox.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ClassScanner.java b/Atlas/src/main/java/cc/funkemunky/api/utils/ClassScanner.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ClassScanner.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/ClassScanner.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Color.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Color.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Color.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Color.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Commands.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Commands.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Commands.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Commands.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ConfigDefault.java b/Atlas/src/main/java/cc/funkemunky/api/utils/ConfigDefault.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ConfigDefault.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/ConfigDefault.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ConfigSetting.java b/Atlas/src/main/java/cc/funkemunky/api/utils/ConfigSetting.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ConfigSetting.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/ConfigSetting.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ConfigUtils.java b/Atlas/src/main/java/cc/funkemunky/api/utils/ConfigUtils.java similarity index 92% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ConfigUtils.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/ConfigUtils.java index 84158d7a..a1a2e47f 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ConfigUtils.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/ConfigUtils.java @@ -21,10 +21,10 @@ private static void save(File file) throws IOException { } private static String saveToString(YamlConfiguration yaml) { - val field = ReflectionsUtil.getFieldByName(YamlConfiguration.class, "yamlOptions"); - val yamlOptions = (DumperOptions) ReflectionsUtil.getFieldValue(field, yaml); - val rField = ReflectionsUtil.getFieldByName(YamlConfiguration.class, "yamlRepresenter"); - val yamlRepresenter = (Representer) ReflectionsUtil.getFieldValue(rField, yaml); + var field = ReflectionsUtil.getFieldByName(YamlConfiguration.class, "yamlOptions"); + var yamlOptions = (DumperOptions) ReflectionsUtil.getFieldValue(field, yaml); + var rField = ReflectionsUtil.getFieldByName(YamlConfiguration.class, "yamlRepresenter"); + var yamlRepresenter = (Representer) ReflectionsUtil.getFieldValue(rField, yaml); yamlOptions.setIndent(options(yaml).indent()); yamlOptions.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); yamlOptions.setAllowUnicode("UTF-8"); @@ -72,7 +72,7 @@ private static void dumpAll(Iterator data, Writer output, Tag } private static YamlConfigurationOptions options(FileConfiguration atlasConfig) { - val method = ReflectionsUtil.getMethod(YamlConfiguration.class, "options"); + var method = ReflectionsUtil.getMethod(YamlConfiguration.class, "options"); return (YamlConfigurationOptions) ReflectionsUtil.getMethodValue(method, atlasConfig); } diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Dummy.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Dummy.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Dummy.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Dummy.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ExpTimer.java b/Atlas/src/main/java/cc/funkemunky/api/utils/ExpTimer.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ExpTimer.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/ExpTimer.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/FastTrig.java b/Atlas/src/main/java/cc/funkemunky/api/utils/FastTrig.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/FastTrig.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/FastTrig.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/FunkeFile.java b/Atlas/src/main/java/cc/funkemunky/api/utils/FunkeFile.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/FunkeFile.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/FunkeFile.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Helper.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Helper.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Helper.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Helper.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Init.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Init.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Init.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Init.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Instance.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Instance.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Instance.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Instance.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Invoke.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Invoke.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Invoke.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Invoke.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ItemBuilder.java b/Atlas/src/main/java/cc/funkemunky/api/utils/ItemBuilder.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ItemBuilder.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/ItemBuilder.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/JsonMessage.java b/Atlas/src/main/java/cc/funkemunky/api/utils/JsonMessage.java similarity index 87% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/JsonMessage.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/JsonMessage.java index 5c5028ad..7df01799 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/JsonMessage.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/JsonMessage.java @@ -1,16 +1,18 @@ package cc.funkemunky.api.utils; +import cc.funkemunky.api.Atlas; import cc.funkemunky.api.tinyprotocol.api.TinyProtocolHandler; import cc.funkemunky.api.tinyprotocol.packet.out.WrappedOutChatPacket; import cc.funkemunky.api.tinyprotocol.packet.types.WrappedChatMessageType; +import lombok.Getter; import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.chat.ComponentSerializer; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import java.util.*; +import java.util.logging.Level; -@Deprecated public class JsonMessage { private final List Text = new ArrayList<>(); @@ -38,7 +40,7 @@ public void sendToPlayer(Player player) { TinyProtocolHandler.sendPacket(player, packet); } catch (Exception e1) { - e1.printStackTrace(); + Atlas.getInstance().getLogger().log(Level.WARNING, "Failed to send json message to " + player.getName(), e1); } } @@ -54,8 +56,9 @@ public enum ClickableType { } } - public class AMText { + public static class AMText { private final Map> Modifiers; + @Getter private String Message; AMText(String Text) { @@ -64,10 +67,6 @@ public class AMText { this.Message = Text; } - public String getMessage() { - return this.Message; - } - String getFormattedMessage() { StringBuilder Chat = new StringBuilder("{\"text\":\"" + this.Message + "\""); for (String Event2 : this.Modifiers.keySet()) { @@ -101,15 +100,15 @@ public AMText addHoverItem(ItemStack Item) { try { String Event2 = "hoverEvent"; String Key = "show_item"; - Class craftItemStack = ReflectionsUtil.getCBClass("CraftItemStack"); - Class items = Class.forName("org.bukkit.inventory.ItemStack"); - Object NMS = craftItemStack.getClass().getMethod("asNMSCopy", items).invoke(Item); - String Value = NMS.getClass().getMethod("getTag", new Class[0]).toString(); + Class craftItemStack = ReflectionsUtil.getCBClass("CraftItemStack"); + Class items = Class.forName("org.bukkit.inventory.ItemStack"); + Object NMS = craftItemStack.getMethod("asNMSCopy", items).invoke(Item); + String Value = NMS.getClass().getMethod("getTag").toString(); AbstractMap.SimpleEntry Values2 = new AbstractMap.SimpleEntry<>(Key, Value); this.Modifiers.put(Event2, Values2); return this; } catch (Exception e) { - e.printStackTrace(); + Atlas.getInstance().getLogger().log(Level.WARNING, "Failed to add hover item", e); return null; } } diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/KLocation.java b/Atlas/src/main/java/cc/funkemunky/api/utils/KLocation.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/KLocation.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/KLocation.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Materials.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Materials.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Materials.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Materials.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/MathHelper.java b/Atlas/src/main/java/cc/funkemunky/api/utils/MathHelper.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/MathHelper.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/MathHelper.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/MathUtils.java b/Atlas/src/main/java/cc/funkemunky/api/utils/MathUtils.java similarity index 95% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/MathUtils.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/MathUtils.java index 7036b79f..74fe1aa4 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/MathUtils.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/MathUtils.java @@ -1,8 +1,8 @@ package cc.funkemunky.api.utils; import cc.funkemunky.api.tinyprotocol.packet.types.MathHelper; -import lombok.val; import org.bukkit.Location; +import org.bukkit.block.Block; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.util.Vector; @@ -76,7 +76,7 @@ public static double getAngle(Location loc1, Location loc2) { Vector playerRotation = new Vector(loc1.getYaw(), loc1.getPitch(), 0.0f); loc1.setY(0); loc2.setY(0); - val rot = MathUtils.getRotations(loc1, loc2); + var rot = MathUtils.getRotations(loc1, loc2); Vector expectedRotation = new Vector(rot[0], rot[1], 0); return MathUtils.yawTo180D(playerRotation.getX() - expectedRotation.getX()); } @@ -113,7 +113,7 @@ public static Tuple, List> getOutliers(List values) double lowThreshold = q1 - 1.5 * iqr, highThreshold = q3 + 1.5 * iqr; - val tuple = new Tuple, List>(new ArrayList<>(), new ArrayList<>()); + var tuple = new Tuple, List>(new ArrayList<>(), new ArrayList<>()); for (Double value : values) { if(value < lowThreshold) tuple.one.add(value); @@ -133,7 +133,7 @@ public static Tuple, List> getOutliersFloat(List value double lowThreshold = q1 - 1.5 * iqr, highThreshold = q3 + 1.5 * iqr; - val tuple = new Tuple, List>(new ArrayList<>(), new ArrayList<>()); + var tuple = new Tuple, List>(new ArrayList<>(), new ArrayList<>()); for (Float value : values) { if(value < lowThreshold) tuple.one.add(value); @@ -154,7 +154,7 @@ public static Tuple, List> getOutliersLong(List collectio double lowThreshold = q1 - 1.5 * iqr, highThreshold = q3 + 1.5 * iqr; - val tuple = new Tuple, List>(new ArrayList<>(), new ArrayList<>()); + var tuple = new Tuple, List>(new ArrayList<>(), new ArrayList<>()); for (Long value : values) { if(value < lowThreshold) tuple.one.add(value); @@ -446,11 +446,12 @@ public static Vector getCenterOfBox(BoundingBox box) { } //Returns -1 if fails. + @SuppressWarnings("unchecked") public static T tryParse(String string) { try { return (T)(Number)Double.parseDouble(string); } catch(NumberFormatException e) { - + //Empty catch block } return (T)(Number)(-1); } @@ -459,8 +460,8 @@ public static T tryParse(String string) { public static double hypot(double... value) { double total = 0; - for (double val : value) { - total += (val * val); + for (double var : value) { + total += (var * var); } return Math.sqrt(total); @@ -469,8 +470,8 @@ public static double hypot(double... value) { public static float hypot(float... value) { float total = 0; - for (float val : value) { - total += (val * val); + for (float var : value) { + total += (var * var); } return (float) Math.sqrt(total); @@ -684,7 +685,12 @@ public static int getDistanceToGround(Player p) { int distance = 0; for (double i = y; i >= 0.0; i -= 1.0) { loc.setY(i); - if (BlockUtils.getBlock(loc).getType().isSolid() || BlockUtils.getBlock(loc).isLiquid()) break; + Optional block = BlockUtils.getBlockAsync(loc); + + if(block.isEmpty()) { + continue; + } + if (block.get().getType().isSolid() || block.get().isLiquid()) break; ++distance; } return distance; @@ -729,10 +735,10 @@ public static T getMode(Collection collect) { Map repeated = new HashMap<>(); //Sorting each value by how to repeat into a map. - collect.forEach(val -> { - int number = repeated.getOrDefault(val, 0); + collect.forEach(var -> { + int number = repeated.getOrDefault(var, 0); - repeated.put(val, number + 1); + repeated.put(var, number + 1); }); //Calculating the largest value to the key, which would be the mode. @@ -827,13 +833,7 @@ public static float[] getRotations(Location one, Location two) { public static float[] getRotations(LivingEntity origin, LivingEntity point) { Location two = point.getLocation(), one = origin.getLocation(); - double diffX = two.getX() - one.getX(); - double diffZ = two.getZ() - one.getZ(); - double diffY = two.getY() + 2.0 - 0.4 - (one.getY() + 2.0); - double dist = Math.sqrt(diffX * diffX + diffZ * diffZ); - float yaw = (float) (FastTrig.fast_atan2(diffZ, diffX) * 180.0 / 3.141592653589793) - 90.0f; - float pitch = (float) (-FastTrig.fast_atan2(diffY, dist) * 180.0 / 3.141592653589793); - return new float[]{yaw, pitch}; + return getRotations(one, two); } public static boolean isLookingTowardsEntity(Location from, Location to, LivingEntity entity) { diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/MiscUtils.java b/Atlas/src/main/java/cc/funkemunky/api/utils/MiscUtils.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/MiscUtils.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/MiscUtils.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Pastebin.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Pastebin.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Pastebin.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Pastebin.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/PlayerUtils.java b/Atlas/src/main/java/cc/funkemunky/api/utils/PlayerUtils.java similarity index 97% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/PlayerUtils.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/PlayerUtils.java index c44b691d..0a7f0255 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/PlayerUtils.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/PlayerUtils.java @@ -1,7 +1,6 @@ package cc.funkemunky.api.utils; import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion; -import lombok.val; import org.bukkit.Location; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Entity; @@ -17,7 +16,7 @@ public class PlayerUtils { public static int getDepthStriderLevel(Player player) { if(DEPTH == null) return 0; - val boots = player.getInventory().getBoots(); + var boots = player.getInventory().getBoots(); if(boots == null) return 0; diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/PotionBuilder.java b/Atlas/src/main/java/cc/funkemunky/api/utils/PotionBuilder.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/PotionBuilder.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/PotionBuilder.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/PotionEffectBuilder.java b/Atlas/src/main/java/cc/funkemunky/api/utils/PotionEffectBuilder.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/PotionEffectBuilder.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/PotionEffectBuilder.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Priority.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Priority.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Priority.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Priority.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ReflectionsUtil.java b/Atlas/src/main/java/cc/funkemunky/api/utils/ReflectionsUtil.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/ReflectionsUtil.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/ReflectionsUtil.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/RunUtils.java b/Atlas/src/main/java/cc/funkemunky/api/utils/RunUtils.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/RunUtils.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/RunUtils.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Setting.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Setting.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Setting.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Setting.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Step.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Step.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Step.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Step.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/TickTimer.java b/Atlas/src/main/java/cc/funkemunky/api/utils/TickTimer.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/TickTimer.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/TickTimer.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Tuple.java b/Atlas/src/main/java/cc/funkemunky/api/utils/Tuple.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/Tuple.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/Tuple.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/XBlock.java b/Atlas/src/main/java/cc/funkemunky/api/utils/XBlock.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/XBlock.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/XBlock.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/XEnchantment.java b/Atlas/src/main/java/cc/funkemunky/api/utils/XEnchantment.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/XEnchantment.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/XEnchantment.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/XMaterial.java b/Atlas/src/main/java/cc/funkemunky/api/utils/XMaterial.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/XMaterial.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/XMaterial.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/XPotion.java b/Atlas/src/main/java/cc/funkemunky/api/utils/XPotion.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/XPotion.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/XPotion.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/BlockBox.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/BlockBox.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/BlockBox.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/BlockBox.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/BlockBoxManager.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/BlockBoxManager.java similarity index 52% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/BlockBoxManager.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/BlockBoxManager.java index aa4f7e01..cb5cdba5 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/BlockBoxManager.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/BlockBoxManager.java @@ -2,6 +2,7 @@ import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion; import cc.funkemunky.api.tinyprotocol.reflection.Reflection; +import cc.funkemunky.api.utils.blockbox.boxes.BlockBoxUNKNOWN; import cc.funkemunky.api.utils.world.types.SimpleCollisionBox; import lombok.Getter; import org.bukkit.Bukkit; @@ -17,12 +18,11 @@ public class BlockBoxManager { public BlockBoxManager() { try { - blockBox = (BlockBox) Reflection.getClass("cc.funkemunky.api.utils.blockbox.boxes.BlockBox" - + ProtocolVersion.getGameVersion() - .getServerVersion().replaceAll("v", "")).newInstance(); - } catch (InstantiationException | IllegalAccessException e) { - Bukkit.getLogger().log(Level.SEVERE,"There was an error loading BlockBox API for version " - + ProtocolVersion.getGameVersion().name()); + this.blockBox = (BlockBox)Reflection.getClass("cc.funkemunky.api.utils.blockbox.boxes.BlockBox" + ProtocolVersion.getGameVersion().getServerVersion().replaceAll("v", "")).newInstance(); + } + catch (Throwable e) { + this.blockBox = new BlockBoxUNKNOWN(); + Bukkit.getLogger().log(Level.SEVERE, "There was an error loading BlockBox API for version " + ProtocolVersion.getGameVersion().name()); } } } diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_10_R1.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_10_R1.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_10_R1.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_10_R1.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_11_R1.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_11_R1.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_11_R1.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_11_R1.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_12_R1.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_12_R1.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_12_R1.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_12_R1.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_13_R1.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_13_R1.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_13_R1.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_13_R1.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_13_R2.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_13_R2.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_13_R2.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_13_R2.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_14_R1.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_14_R1.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_14_R1.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_14_R1.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_15_R1.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_15_R1.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_15_R1.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_15_R1.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R1.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R1.java similarity index 97% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R1.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R1.java index 21423532..c09b9f31 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R1.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R1.java @@ -6,12 +6,11 @@ import cc.funkemunky.api.utils.world.CollisionBox; import cc.funkemunky.api.utils.world.types.ComplexCollisionBox; import cc.funkemunky.api.utils.world.types.SimpleCollisionBox; -import lombok.val; import net.minecraft.server.v1_16_R1.*; import org.bukkit.Location; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock; import org.bukkit.craftbukkit.v1_16_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock; import org.bukkit.craftbukkit.v1_16_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_16_R1.entity.CraftLivingEntity; import org.bukkit.craftbukkit.v1_16_R1.entity.CraftPlayer; @@ -37,7 +36,7 @@ public boolean isRiptiding(LivingEntity entity) { @Override public float getMovementFactor(Player player) { - val attribute = ((CraftPlayer)player).getHandle() + var attribute = ((CraftPlayer)player).getHandle() .getAttributeInstance(GenericAttributes.MOVEMENT_SPEED); return (float) (attribute != null ? attribute.getValue() : 0); } diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R2.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R2.java similarity index 94% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R2.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R2.java index 72aada02..7bb07d59 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R2.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R2.java @@ -6,13 +6,10 @@ import cc.funkemunky.api.utils.world.CollisionBox; import cc.funkemunky.api.utils.world.types.ComplexCollisionBox; import cc.funkemunky.api.utils.world.types.SimpleCollisionBox; -import lombok.val; import net.minecraft.server.v1_16_R2.*; -import net.minecraft.server.v1_16_R2.GenericAttributes; -import net.minecraft.server.v1_16_R2.World; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock; import org.bukkit.craftbukkit.v1_16_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock; import org.bukkit.craftbukkit.v1_16_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_16_R2.entity.CraftLivingEntity; import org.bukkit.craftbukkit.v1_16_R2.entity.CraftPlayer; @@ -39,7 +36,7 @@ public boolean isRiptiding(LivingEntity entity) { @Override public float getMovementFactor(Player player) { - val attribute = ((CraftPlayer)player).getHandle() + var attribute = ((CraftPlayer)player).getHandle() .getAttributeInstance(GenericAttributes.MOVEMENT_SPEED); return (float) (attribute != null ? attribute.getValue() : 0); } diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R3.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R3.java similarity index 94% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R3.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R3.java index 8dbb8380..ae0035ca 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R3.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_16_R3.java @@ -6,13 +6,10 @@ import cc.funkemunky.api.utils.world.CollisionBox; import cc.funkemunky.api.utils.world.types.ComplexCollisionBox; import cc.funkemunky.api.utils.world.types.SimpleCollisionBox; -import lombok.val; import net.minecraft.server.v1_16_R3.*; -import net.minecraft.server.v1_16_R3.GenericAttributes; -import net.minecraft.server.v1_16_R3.World; import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock; import org.bukkit.craftbukkit.v1_16_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftEntity; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftLivingEntity; import org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer; @@ -39,7 +36,7 @@ public boolean isRiptiding(LivingEntity entity) { @Override public float getMovementFactor(Player player) { - val attribute = ((CraftPlayer)player).getHandle() + var attribute = ((CraftPlayer)player).getHandle() .getAttributeInstance(GenericAttributes.MOVEMENT_SPEED); return (float) (attribute != null ? attribute.getValue() : 0); } diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_17_R1.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_17_R1.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_17_R1.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_17_R1.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_19_R3.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_19_R3.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_19_R3.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_19_R3.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_7_R4.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_7_R4.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_7_R4.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_7_R4.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R1.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R1.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R1.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R1.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R2.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R2.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R2.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R2.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R3.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R3.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R3.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_8_R3.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_9_R1.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_9_R1.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_9_R1.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_9_R1.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_9_R2.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_9_R2.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_9_R2.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_9_R2.java diff --git a/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBoxUNKNOWN.java b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBoxUNKNOWN.java new file mode 100644 index 00000000..5218684f --- /dev/null +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBoxUNKNOWN.java @@ -0,0 +1,42 @@ +package cc.funkemunky.api.utils.blockbox.boxes; + +import cc.funkemunky.api.utils.blockbox.BlockBox; +import cc.funkemunky.api.utils.world.CollisionBox; +import cc.funkemunky.api.utils.world.types.NoCollisionBox; +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; + +public class BlockBoxUNKNOWN implements BlockBox { + @Override + public boolean isChunkLoaded(Location loc) { + return false; + } + + @Override + public boolean isRiptiding(LivingEntity entity) { + return false; + } + + @Override + public float getMovementFactor(Player player) { + return 0; + } + + @Override + public float getWidth(Entity entity) { + return 0; + } + + @Override + public float getHeight(Entity entity) { + return 0; + } + + @Override + public CollisionBox getCollisionBox(Block block) { + return NoCollisionBox.INSTANCE; + } +} diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/book/BookBuilder.java b/Atlas/src/main/java/cc/funkemunky/api/utils/book/BookBuilder.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/book/BookBuilder.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/book/BookBuilder.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/CompileUtil.java b/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/CompileUtil.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/CompileUtil.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/compiler/CompileUtil.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedClassFileObject.java b/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedClassFileObject.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedClassFileObject.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedClassFileObject.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedClassLoader.java b/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedClassLoader.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedClassLoader.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedClassLoader.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedJavaCompilerFacade.java b/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedJavaCompilerFacade.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedJavaCompilerFacade.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedJavaCompilerFacade.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedJavaFileManager.java b/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedJavaFileManager.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedJavaFileManager.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedJavaFileManager.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedSourceFileObject.java b/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedSourceFileObject.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedSourceFileObject.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/compiler/compiler/StringGeneratedSourceFileObject.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/msg/ChatBuilder.java b/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/msg/ChatBuilder.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/compiler/msg/ChatBuilder.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/compiler/msg/ChatBuilder.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/config/Configuration.java b/Atlas/src/main/java/cc/funkemunky/api/utils/config/Configuration.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/config/Configuration.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/config/Configuration.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/config/ConfigurationProvider.java b/Atlas/src/main/java/cc/funkemunky/api/utils/config/ConfigurationProvider.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/config/ConfigurationProvider.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/config/ConfigurationProvider.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/config/JsonConfiguration.java b/Atlas/src/main/java/cc/funkemunky/api/utils/config/JsonConfiguration.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/config/JsonConfiguration.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/config/JsonConfiguration.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/config/YamlConfiguration.java b/Atlas/src/main/java/cc/funkemunky/api/utils/config/YamlConfiguration.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/config/YamlConfiguration.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/config/YamlConfiguration.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/InvalidObjectException.java b/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/InvalidObjectException.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/InvalidObjectException.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/InvalidObjectException.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/StringFormatException.java b/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/StringFormatException.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/StringFormatException.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/StringFormatException.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/Validate.java b/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/Validate.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/Validate.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/Validate.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/impl/ColorFormatException.java b/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/impl/ColorFormatException.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/impl/ColorFormatException.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/exceptions/impl/ColorFormatException.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandler.java b/Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandler.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandler.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandler.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandlerLegacy.java b/Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandlerLegacy.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandlerLegacy.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandlerLegacy.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandlerModern.java b/Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandlerModern.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandlerModern.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/handlers/PlayerSizeHandlerModern.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/Average.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/Average.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/Average.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/Average.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/IntVector.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/IntVector.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/IntVector.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/IntVector.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/MCSmooth.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/MCSmooth.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/MCSmooth.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/MCSmooth.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/RayTrace.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/RayTrace.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/RayTrace.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/RayTrace.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverage.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverage.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverage.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverage.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverageDouble.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverageDouble.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverageDouble.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverageDouble.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverageLong.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverageLong.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverageLong.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/RollingAverageLong.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/SimpleAverage.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/SimpleAverage.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/SimpleAverage.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/SimpleAverage.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxDouble.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxDouble.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxDouble.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxDouble.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxFloat.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxFloat.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxFloat.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxFloat.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxInteger.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxInteger.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxInteger.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxInteger.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxLong.java b/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxLong.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxLong.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/math/cond/MaxLong.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/Menu.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/Menu.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/Menu.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/Menu.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/MenuListener.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/MenuListener.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/MenuListener.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/MenuListener.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/Button.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/Button.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/Button.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/Button.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/ClickAction.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/ClickAction.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/ClickAction.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/ClickAction.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/UpdatingButton.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/UpdatingButton.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/UpdatingButton.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/button/UpdatingButton.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/mask/Mask.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/mask/Mask.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/mask/Mask.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/mask/Mask.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/mask/Mask2D.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/mask/Mask2D.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/mask/Mask2D.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/mask/Mask2D.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/ConfirmationMenu.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/ConfirmationMenu.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/ConfirmationMenu.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/ConfirmationMenu.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/SettingsMenu.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/SettingsMenu.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/SettingsMenu.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/SettingsMenu.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/button/FillerButton.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/button/FillerButton.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/button/FillerButton.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/button/FillerButton.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/button/SettingButton.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/button/SettingButton.java similarity index 96% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/button/SettingButton.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/button/SettingButton.java index 91cff067..5b3de27e 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/button/SettingButton.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/preset/button/SettingButton.java @@ -4,7 +4,6 @@ import cc.funkemunky.api.utils.ItemBuilder; import cc.funkemunky.api.utils.Setting; import cc.funkemunky.api.utils.menu.button.Button; -import lombok.val; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -45,7 +44,7 @@ public SettingButton(Player player, String name, String description, Setting String stringVal = setting.options[i] instanceof Enum ? ((Enum)setting.options[i]).name() : String.valueOf(setting.options[i]); - val stack = new ItemBuilder(Material.BOOK) + var stack = new ItemBuilder(Material.BOOK) .amount(1).name(Color.Gold + name) .lore(description, "&7Current State: &6" + stringVal) .build(); diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/BukkitInventoryHolder.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/BukkitInventoryHolder.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/BukkitInventoryHolder.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/BukkitInventoryHolder.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/BookMenu.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/BookMenu.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/BookMenu.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/BookMenu.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/ChestMenu.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/ChestMenu.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/ChestMenu.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/ChestMenu.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/PagedMenu.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/PagedMenu.java similarity index 97% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/PagedMenu.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/PagedMenu.java index 09572542..a6172d38 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/PagedMenu.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/PagedMenu.java @@ -8,7 +8,6 @@ import lombok.Getter; import lombok.NonNull; import lombok.Setter; -import lombok.val; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -97,7 +96,7 @@ public void buildInventory(boolean initial) { holder.getInventory().clear(); int size = (dimension.getRows() - 1) * dimension.getColumns(); if(currentPage > 1) { - val previous = new ItemBuilder(Material.BOOK).amount(currentPage - 1).name("&ePrevious Page").build(); + var previous = new ItemBuilder(Material.BOOK).amount(currentPage - 1).name("&ePrevious Page").build(); setItem(dimension.getSize() * currentPage - 6, new Button(false, previous, (player, info) -> { currentPage--; @@ -105,7 +104,7 @@ public void buildInventory(boolean initial) { })); holder.getInventory().setItem(dimension.getSize() - 6, previous); } - val next = new ItemBuilder(Material.BOOK).amount(currentPage + 1).name("&eNext Page").build(); + var next = new ItemBuilder(Material.BOOK).amount(currentPage + 1).name("&eNext Page").build(); setItem(dimension.getSize() * currentPage - 4, new Button(false, next, (player, info) -> { currentPage++; buildInventory(false); diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/ValueMenu.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/ValueMenu.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/ValueMenu.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/type/impl/ValueMenu.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/util/ArrayIterator.java b/Atlas/src/main/java/cc/funkemunky/api/utils/menu/util/ArrayIterator.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/menu/util/ArrayIterator.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/menu/util/ArrayIterator.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/msg/ChatBuilder.java b/Atlas/src/main/java/cc/funkemunky/api/utils/msg/ChatBuilder.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/msg/ChatBuilder.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/msg/ChatBuilder.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/BiSupplier.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/BiSupplier.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/BiSupplier.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/BiSupplier.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/Interval.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/Interval.java similarity index 96% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/Interval.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/Interval.java index 7d9c95b7..427f5d31 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/Interval.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/Interval.java @@ -66,6 +66,6 @@ public void clearIfMax() { } public DoubleStream getDoubleStream() { - return stream().mapToDouble(val -> val); + return stream().mapToDouble(var -> var); } } diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/MethodFunction.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/MethodFunction.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/MethodFunction.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/MethodFunction.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/MultiFunction.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/MultiFunction.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/MultiFunction.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/MultiFunction.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/QuadFunction.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/QuadFunction.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/QuadFunction.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/QuadFunction.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/RemoteClassLoader.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/RemoteClassLoader.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/RemoteClassLoader.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/RemoteClassLoader.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/TriFunction.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/TriFunction.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/TriFunction.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/TriFunction.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/VariableValue.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/VariableValue.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/VariableValue.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/VariableValue.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/ConcurrentEvictingList.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/ConcurrentEvictingList.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/ConcurrentEvictingList.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/ConcurrentEvictingList.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/ConcurrentEvictingMap.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/ConcurrentEvictingMap.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/ConcurrentEvictingMap.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/ConcurrentEvictingMap.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/EvictingList.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/EvictingList.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/EvictingList.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/EvictingList.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/EvictingMap.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/EvictingMap.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/EvictingMap.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/evicting/EvictingMap.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/ConcurrentFilteredList.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/ConcurrentFilteredList.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/ConcurrentFilteredList.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/ConcurrentFilteredList.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/ConcurrentFilteredSet.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/ConcurrentFilteredSet.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/ConcurrentFilteredSet.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/ConcurrentFilteredSet.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/FilteredList.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/FilteredList.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/FilteredList.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/FilteredList.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/FilteredSet.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/FilteredSet.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/FilteredSet.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/filtered/FilteredSet.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/ConcurrentListMap.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/ConcurrentListMap.java similarity index 86% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/ConcurrentListMap.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/ConcurrentListMap.java index ece69919..476c54d4 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/ConcurrentListMap.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/ConcurrentListMap.java @@ -1,7 +1,5 @@ package cc.funkemunky.api.utils.objects.listmap; -import lombok.val; - import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -26,7 +24,7 @@ public void createIfNotExists(K key) { @Override public void add(K key, V value) { - val list = getList(key); + var list = getList(key); list.add(value); @@ -39,10 +37,10 @@ public int remove(V value) { for (K k : values.keySet()) { List vals = values.get(k); - for (V val : vals) { - if(!val.equals(value)) continue; + for (V var : vals) { + if(!var.equals(value)) continue; - vals.remove(val); + vals.remove(var); values.put(k, vals); removed++; } @@ -52,7 +50,7 @@ public int remove(V value) { @Override public boolean remove(K key, V value) { - val vals = getList(key); + var vals = getList(key); boolean removed = vals.remove(value); @@ -70,7 +68,7 @@ public List removeKey(K key) { @Override public boolean clear() { - if(values.size() > 0) { + if(!values.isEmpty()) { values.clear(); } return false; @@ -79,7 +77,7 @@ public boolean clear() { @Override public ContainsResult containsValue(V value) { for (K key : values.keySet()) { - val list = values.get(key); + var list = values.get(key); for (V v : list) { if(value.equals(v)) return new ContainsResult(key, true); diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/HashListMap.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/HashListMap.java similarity index 86% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/HashListMap.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/HashListMap.java index beb9052b..9492878b 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/HashListMap.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/HashListMap.java @@ -1,7 +1,5 @@ package cc.funkemunky.api.utils.objects.listmap; -import lombok.val; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -26,7 +24,7 @@ public void createIfNotExists(K key) { @Override public void add(K key, V value) { - val list = getList(key); + var list = getList(key); list.add(value); @@ -39,10 +37,10 @@ public int remove(V value) { for (K k : values.keySet()) { List vals = values.get(k); - for (V val : vals) { - if(!val.equals(value)) continue; + for (V var : vals) { + if(!var.equals(value)) continue; - vals.remove(val); + vals.remove(var); values.put(k, vals); removed++; } @@ -52,7 +50,7 @@ public int remove(V value) { @Override public boolean remove(K key, V value) { - val vals = getList(key); + var vals = getList(key); boolean removed = vals.remove(value); @@ -70,7 +68,7 @@ public List removeKey(K key) { @Override public boolean clear() { - if(values.size() > 0) { + if(!values.isEmpty()) { values.clear(); } return false; @@ -79,7 +77,7 @@ public boolean clear() { @Override public ContainsResult containsValue(V value) { for (K key : values.keySet()) { - val list = values.get(key); + var list = values.get(key); for (V v : list) { if(value.equals(v)) return new ContainsResult(key, true); diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/ListMap.java b/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/ListMap.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/ListMap.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/objects/listmap/ListMap.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/BlockData.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/BlockData.java similarity index 98% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/BlockData.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/BlockData.java index 441d3195..0a52e3eb 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/BlockData.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/world/BlockData.java @@ -1,7 +1,6 @@ package cc.funkemunky.api.utils.world; import cc.funkemunky.api.reflections.Reflections; -import cc.funkemunky.api.reflections.impl.MinecraftReflection; import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion; import cc.funkemunky.api.utils.MiscUtils; import cc.funkemunky.api.utils.ReflectionsUtil; @@ -9,21 +8,11 @@ import cc.funkemunky.api.utils.world.blocks.*; import cc.funkemunky.api.utils.world.state.BlockStateManager; import cc.funkemunky.api.utils.world.types.*; -import lombok.val; -import net.minecraft.core.EnumDirection; -import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.block.BlockState; import org.bukkit.block.data.Directional; -import org.bukkit.craftbukkit.v1_17_R1.block.impl.CraftAmethystCluster; -import org.bukkit.material.Cake; -import org.bukkit.material.Gate; -import org.bukkit.material.MaterialData; -import org.bukkit.material.Vine; -import javax.xml.crypto.dsig.SignatureMethod; import java.util.*; import java.util.stream.Stream; @@ -259,7 +248,7 @@ public enum BlockData { XMaterial.SOUL_SAND.parseMaterial()), _PICKLE((version, block) -> { if(version.isOrAbove(ProtocolVersion.V1_13)) { - val pickleClass = Reflections.getClass("org.bukkit.block.data.type.SeaPickle"); + var pickleClass = Reflections.getClass("org.bukkit.block.data.type.SeaPickle"); int pickles = pickleClass.getMethod("getPickles").invoke(block.getBlockData()); diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/CollisionBox.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/CollisionBox.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/CollisionBox.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/CollisionBox.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/EntityData.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/EntityData.java similarity index 97% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/EntityData.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/EntityData.java index 4af52f62..ae229da8 100644 --- a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/EntityData.java +++ b/Atlas/src/main/java/cc/funkemunky/api/utils/world/EntityData.java @@ -8,15 +8,12 @@ import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion; import cc.funkemunky.api.utils.KLocation; import cc.funkemunky.api.utils.world.types.SimpleCollisionBox; -import lombok.val; import org.bukkit.Location; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.util.Vector; import java.util.EnumMap; -import java.util.HashMap; -import java.util.Map; public class EntityData { private static final EnumMap entityBounds = new EnumMap<>(EntityType.class); @@ -35,7 +32,7 @@ public static CollisionBox bounds(Entity entity) { return new SimpleCollisionBox(new Vector(), (float)fieldWidth.get(ventity), (float)fieldLength.get(ventity)); } else { - val blockBox = Atlas.getInstance().getBlockBoxManager().getBlockBox(); + var blockBox = Atlas.getInstance().getBlockBoxManager().getBlockBox(); return new SimpleCollisionBox(new Vector(), blockBox.getWidth(entity), blockBox.getHeight(entity)); } }).copy(); diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/WorldInfo.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/WorldInfo.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/WorldInfo.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/WorldInfo.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/CouldronBounding.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/CouldronBounding.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/CouldronBounding.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/CouldronBounding.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DoorHandler.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DoorHandler.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DoorHandler.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DoorHandler.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicFence.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicFence.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicFence.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicFence.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicPane.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicPane.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicPane.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicPane.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicRod.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicRod.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicRod.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicRod.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicWall.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicWall.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicWall.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/DynamicWall.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/HopperBounding.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/HopperBounding.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/HopperBounding.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/HopperBounding.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/PistonBaseCollision.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/PistonBaseCollision.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/PistonBaseCollision.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/PistonBaseCollision.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/PistonDickCollision.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/PistonDickCollision.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/PistonDickCollision.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/PistonDickCollision.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/TrapDoorHandler.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/TrapDoorHandler.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/TrapDoorHandler.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/blocks/TrapDoorHandler.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/BlockStateManager.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/BlockStateManager.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/BlockStateManager.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/state/BlockStateManager.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version1_14.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version1_14.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version1_14.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version1_14.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version_1_13.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version_1_13.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version_1_13.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version_1_13.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version_1_7_10.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version_1_7_10.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version_1_7_10.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/state/states/Version_1_7_10.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/CollisionFactory.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/CollisionFactory.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/CollisionFactory.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/types/CollisionFactory.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/ComplexCollisionBox.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/ComplexCollisionBox.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/ComplexCollisionBox.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/types/ComplexCollisionBox.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/DynamicCollisionBox.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/DynamicCollisionBox.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/DynamicCollisionBox.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/types/DynamicCollisionBox.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/NoCollisionBox.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/NoCollisionBox.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/NoCollisionBox.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/types/NoCollisionBox.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/RayCollision.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/RayCollision.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/RayCollision.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/types/RayCollision.java diff --git a/AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/SimpleCollisionBox.java b/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/SimpleCollisionBox.java similarity index 100% rename from AtlasParent/Atlas/src/main/java/cc/funkemunky/api/utils/world/types/SimpleCollisionBox.java rename to Atlas/src/main/java/cc/funkemunky/api/utils/world/types/SimpleCollisionBox.java diff --git a/AtlasParent/Atlas/src/main/resources/config.yml b/Atlas/src/main/resources/config.yml similarity index 100% rename from AtlasParent/Atlas/src/main/resources/config.yml rename to Atlas/src/main/resources/config.yml diff --git a/AtlasParent/Atlas/src/main/resources/plugin.yml b/Atlas/src/main/resources/plugin.yml similarity index 100% rename from AtlasParent/Atlas/src/main/resources/plugin.yml rename to Atlas/src/main/resources/plugin.yml diff --git a/AtlasBukkit/pom.xml b/AtlasBukkit/pom.xml new file mode 100644 index 00000000..f8001499 --- /dev/null +++ b/AtlasBukkit/pom.xml @@ -0,0 +1,207 @@ + + + + atlas-parent + cc.funkemunky.utils + 1.12.1.1 + + 4.0.0 + + AtlasBukkit + 1.12.1.1 + + + 17 + 17 + + + + + cc.funkemunky.utils + Atlas + ${version} + compile + + + cc.funkemunky.utils + Atlas_Compat_1_19 + ${project.version} + compile + + + cc.funkemunky.utils + Atlas_Compat_1_18_R2 + ${project.version} + compile + + + cc.funkemunky.utils + Atlas_Compat_1_18 + ${project.version} + compile + + + cc.funkemunky.utils + AtlasCompat1_20 + ${project.version} + compile + + + it.unimi.dsi + fastutil + 8.5.6 + compile + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + true + -XDignore.symbol.file + + + org.projectlombok + lombok + 1.18.38 + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + true + false + + + com.google.common + cc.funkemunky.api.utils.com.google.common + + + 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 + + + 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 + cc.funkemunky.api.utils.org.objectweb.asm + + + club.minnced.discord + cc.funkemunky.api.utils.club.minnced.discord + + + 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 + + + + + cc.funkemunky.api:Atlas + + ** + + + + com.h2database:h2 + + ** + + + + cc.funkemunky.api:Atlas_Compat_1_18 + + ** + + + + cc.funkemunky.api:Atlas_Compat_1_18_R2 + + ** + + + + cc.funkemunky.api:Atlas_Compat_1_19 + + ** + + + + cc.funkemunky.api:AtlasCompat1_20 + + ** + + + + + + + + + + + \ No newline at end of file diff --git a/AtlasParent/AtlasBungee/pom.xml b/AtlasBungee/pom.xml similarity index 96% rename from AtlasParent/AtlasBungee/pom.xml rename to AtlasBungee/pom.xml index 741953df..e129ef4e 100644 --- a/AtlasParent/AtlasBungee/pom.xml +++ b/AtlasBungee/pom.xml @@ -9,6 +9,7 @@ 4.0.0 AtlasBungee + 1.12.1.1 1.8 @@ -23,8 +24,8 @@ maven-compiler-plugin 3.13.0 - 8 - 8 + 17 + 17 org.projectlombok @@ -46,6 +47,7 @@ shade + false false diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/AtlasBungee.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/AtlasBungee.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/AtlasBungee.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/AtlasBungee.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/data/ModData.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/data/ModData.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/data/ModData.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/data/ModData.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/data/user/User.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/data/user/User.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/data/user/User.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/data/user/User.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/listeners/AtlasMsgListener.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/listeners/AtlasMsgListener.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/listeners/AtlasMsgListener.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/listeners/AtlasMsgListener.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/listeners/JoinListener.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/listeners/JoinListener.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/listeners/JoinListener.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/listeners/JoinListener.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/Color.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/Color.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/Color.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/Color.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/StringUtils.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/StringUtils.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/StringUtils.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/StringUtils.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/ClassScanner.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/ClassScanner.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/ClassScanner.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/ClassScanner.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/Init.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/Init.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/Init.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/Init.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/Priority.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/Priority.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/Priority.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/asm/Priority.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/Reflections.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/Reflections.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/Reflections.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/Reflections.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedClass.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedClass.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedClass.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedClass.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedConstructor.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedConstructor.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedConstructor.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedConstructor.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedField.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedField.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedField.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedField.java diff --git a/AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedMethod.java b/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedMethod.java similarity index 100% rename from AtlasParent/AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedMethod.java rename to AtlasBungee/src/main/java/cc/funkemunky/bungee/utils/reflection/types/WrappedMethod.java diff --git a/AtlasParent/AtlasBungee/src/main/resources/plugin.yml b/AtlasBungee/src/main/resources/plugin.yml similarity index 100% rename from AtlasParent/AtlasBungee/src/main/resources/plugin.yml rename to AtlasBungee/src/main/resources/plugin.yml diff --git a/AtlasCompat1_20/pom.xml b/AtlasCompat1_20/pom.xml new file mode 100644 index 00000000..868f40ee --- /dev/null +++ b/AtlasCompat1_20/pom.xml @@ -0,0 +1,63 @@ + + + 4.0.0 + + cc.funkemunky.utils + atlas-parent + 1.12.1.1 + + + AtlasCompat1_20 + + + 17 + 17 + UTF-8 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + -XDignore.symbol.file + + + org.projectlombok + lombok + 1.18.38 + + + + + + + + + + cc.funkemunky.utils + Atlas + ${project.version} + provided + + + org.github.paperspigot + 1.20.6 + 1.20.6 + provided + + + org.spigotmc + spigot-api + 1.20.2-R0.1-SNAPSHOT + provided + + + + \ No newline at end of file diff --git a/AtlasCompat1_20/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_20_R1.java b/AtlasCompat1_20/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_20_R1.java new file mode 100644 index 00000000..14441fd5 --- /dev/null +++ b/AtlasCompat1_20/src/main/java/cc/funkemunky/api/utils/blockbox/boxes/BlockBox1_20_R1.java @@ -0,0 +1,84 @@ +package cc.funkemunky.api.utils.blockbox.boxes; + +import cc.funkemunky.api.tinyprotocol.api.ProtocolVersion; +import cc.funkemunky.api.utils.blockbox.BlockBox; +import cc.funkemunky.api.utils.world.BlockData; +import cc.funkemunky.api.utils.world.CollisionBox; +import cc.funkemunky.api.utils.world.types.ComplexCollisionBox; +import cc.funkemunky.api.utils.world.types.SimpleCollisionBox; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.shapes.VoxelShape; +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.craftbukkit.CraftWorld; +import org.bukkit.craftbukkit.block.CraftBlock; +import org.bukkit.craftbukkit.entity.CraftLivingEntity; +import org.bukkit.craftbukkit.entity.CraftPlayer; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; + +public class BlockBox1_20_R1 implements BlockBox { + @Override + public boolean isChunkLoaded(Location loc) { + ServerLevel world = ((CraftWorld)loc.getWorld()).getHandle(); + + return !world.isClientSide() && world.hasChunk(loc.getBlockX() >> 4, loc.getBlockZ() >> 4) + && world.getChunk(loc.getBlockX() >> 4, loc.getBlockX() >> 4).loaded; + } + + @Override + public boolean isRiptiding(LivingEntity entity) { + return ((CraftLivingEntity)entity).getHandle().isAutoSpinAttack(); + } + + @Override + public float getMovementFactor(Player player) { + var attribute = ((CraftPlayer)player).getHandle().getAttribute(Attributes.MOVEMENT_SPEED).getValue(); + return (float) attribute; + } + + @Override + public float getWidth(Entity entity) { + return (float)entity.getWidth(); + } + + @Override + public float getHeight(Entity entity) { + return (float)entity.getHeight(); + } + + @Override + public CollisionBox getCollisionBox(Block block) { + ServerLevel world = ((CraftWorld)block.getWorld()).getHandle(); + int x = block.getX(); + int y = block.getY(); + int z = block.getZ(); + + + BlockState state = ((CraftBlock)block).getNMS(); + BlockPos pos = new BlockPos(x, y, z); + + VoxelShape shape = state.getCollisionShape(world, pos); + + var boxes = shape.toAabbs(); + + if(boxes.isEmpty()) { + return BlockData.getData(block.getType()).getBox(block, ProtocolVersion.getGameVersion()); + } else if(boxes.size() == 1) { + AABB box = boxes.get(0); + + return new SimpleCollisionBox(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ); + } else { + ComplexCollisionBox complexBox = new ComplexCollisionBox(); + boxes.forEach(box -> complexBox + .add(new SimpleCollisionBox(box.minX, box.minY, box.minZ, box.maxX, box.maxY, box.maxZ))); + + return complexBox; + } + } +} diff --git a/AtlasParent/AtlasExample/pom.xml b/AtlasExample/pom.xml similarity index 97% rename from AtlasParent/AtlasExample/pom.xml rename to AtlasExample/pom.xml index d468a430..7e1af97c 100644 --- a/AtlasParent/AtlasExample/pom.xml +++ b/AtlasExample/pom.xml @@ -23,8 +23,8 @@ maven-compiler-plugin 3.13.0 - 8 - 8 + 17 + 17 -XDignore.symbol.file diff --git a/AtlasParent/AtlasExample/src/main/java/dev/brighten/example/AtlasExample.java b/AtlasExample/src/main/java/dev/brighten/example/AtlasExample.java similarity index 100% rename from AtlasParent/AtlasExample/src/main/java/dev/brighten/example/AtlasExample.java rename to AtlasExample/src/main/java/dev/brighten/example/AtlasExample.java diff --git a/AtlasParent/AtlasExample/src/main/java/dev/brighten/example/commands/BlockDebugCommand.java b/AtlasExample/src/main/java/dev/brighten/example/commands/BlockDebugCommand.java similarity index 100% rename from AtlasParent/AtlasExample/src/main/java/dev/brighten/example/commands/BlockDebugCommand.java rename to AtlasExample/src/main/java/dev/brighten/example/commands/BlockDebugCommand.java diff --git a/AtlasParent/AtlasExample/src/main/java/dev/brighten/example/commands/ExampleCommand.java b/AtlasExample/src/main/java/dev/brighten/example/commands/ExampleCommand.java similarity index 100% rename from AtlasParent/AtlasExample/src/main/java/dev/brighten/example/commands/ExampleCommand.java rename to AtlasExample/src/main/java/dev/brighten/example/commands/ExampleCommand.java diff --git a/AtlasParent/AtlasExample/src/main/java/dev/brighten/example/listeners/BukkitListeners.java b/AtlasExample/src/main/java/dev/brighten/example/listeners/BukkitListeners.java similarity index 100% rename from AtlasParent/AtlasExample/src/main/java/dev/brighten/example/listeners/BukkitListeners.java rename to AtlasExample/src/main/java/dev/brighten/example/listeners/BukkitListeners.java diff --git a/AtlasParent/AtlasExample/src/main/java/dev/brighten/example/listeners/PacketListeners.java b/AtlasExample/src/main/java/dev/brighten/example/listeners/PacketListeners.java similarity index 100% rename from AtlasParent/AtlasExample/src/main/java/dev/brighten/example/listeners/PacketListeners.java rename to AtlasExample/src/main/java/dev/brighten/example/listeners/PacketListeners.java diff --git a/AtlasParent/AtlasExample/src/main/resources/plugin.yml b/AtlasExample/src/main/resources/plugin.yml similarity index 100% rename from AtlasParent/AtlasExample/src/main/resources/plugin.yml rename to AtlasExample/src/main/resources/plugin.yml diff --git a/AtlasParent/AtlasBukkit/pom.xml b/AtlasParent/AtlasBukkit/pom.xml deleted file mode 100644 index cb5dd890..00000000 --- a/AtlasParent/AtlasBukkit/pom.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - atlas-parent - cc.funkemunky.utils - 1.12.1.1 - - 4.0.0 - - AtlasBukkit - - - 8 - 8 - - - - - cc.funkemunky.utils - Atlas - ${project.version} - compile - - - cc.funkemunky.utils - Atlas_Compat_1_19 - ${project.version} - compile - - - cc.funkemunky.utils - Atlas_Compat_1_18_R2 - ${project.version} - compile - - - cc.funkemunky.utils - Atlas_Compat_1_18 - ${project.version} - compile - - - it.unimi.dsi - fastutil - 8.5.6 - compile - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.13.0 - - 8 - 8 - -XDignore.symbol.file - - - org.projectlombok - lombok - 1.18.38 - - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.6.0 - - - package - - shade - - - true - - - cc.funkemunky.utils:Atlas - - ** - - - - com.h2database:h2 - - ** - - - - cc.funkemunky.utils:Atlas_Compat_1_18 - - ** - - - - cc.funkemunky.utils:Atlas_Compat_1_18_R2 - - ** - - - - cc.funkemunky.utils:Atlas_Compat_1_19 - - ** - - - - - - - - - - - \ No newline at end of file diff --git a/AtlasParent/AtlasVelocity/pom.xml b/AtlasVelocity/pom.xml similarity index 93% rename from AtlasParent/AtlasVelocity/pom.xml rename to AtlasVelocity/pom.xml index 99abeafc..832b91ef 100644 --- a/AtlasParent/AtlasVelocity/pom.xml +++ b/AtlasVelocity/pom.xml @@ -36,7 +36,7 @@ com.velocitypowered velocity-api - 3.0.0 + 3.4.0-SNAPSHOT provided @@ -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