From 253767dd9c27bf7466824c0e280453ff6ced6693 Mon Sep 17 00:00:00 2001 From: BuildTools <46540330+willkroboth@users.noreply.github.com> Date: Mon, 7 Aug 2023 10:27:06 -0400 Subject: [PATCH] Make NativeProxyCommandSender extend CraftBukkit class ProxiedNativeCommandSender so VanillaCommandWrapper can handle it Fixes https://github.com/JorelAli/CommandAPI/issues/477 --- .../wrappers/NativeProxyCommandSender.java | 303 +----------------- .../dev/jorel/commandapi/nms/NMS_1_15.java | 7 +- .../nms/NativeProxyCommandSender_1_15.java | 35 ++ .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 7 +- .../nms/NativeProxyCommandSender_1_16_R1.java | 35 ++ .../dev/jorel/commandapi/nms/NMS_1_16_R2.java | 7 +- .../nms/NativeProxyCommandSender_1_16_R2.java | 35 ++ .../jorel/commandapi/nms/NMS_1_16_4_R3.java | 7 +- .../NativeProxyCommandSender_1_16_4_R3.java | 35 ++ .../jorel/commandapi/nms/NMS_1_17_Common.java | 6 +- .../NativeProxyCommandSender_1_17_Common.java | 35 ++ .../dev/jorel/commandapi/nms/NMS_1_18_R2.java | 6 +- .../nms/NativeProxyCommandSender_1_18_R2.java | 35 ++ .../dev/jorel/commandapi/nms/NMS_1_18_R1.java | 6 +- .../nms/NativeProxyCommandSender_1_18_R1.java | 35 ++ .../jorel/commandapi/nms/NMS_1_19_Common.java | 17 +- .../NativeProxyCommandSender_1_19_Common.java | 35 ++ .../jorel/commandapi/nms/NMS_1_19_3_R2.java | 6 +- .../NativeProxyCommandSender_1_19_3_R2.java | 35 ++ .../jorel/commandapi/nms/NMS_1_19_4_R3.java | 7 +- .../NativeProxyCommandSender_1_19_4_R3.java | 35 ++ .../dev/jorel/commandapi/nms/NMS_1_20_R2.java | 7 +- .../nms/NativeProxyCommandSender_1_20_R2.java | 35 ++ .../dev/jorel/commandapi/nms/NMS_1_20_R3.java | 6 +- .../nms/NativeProxyCommandSender_1_20_R3.java | 35 ++ .../dev/jorel/commandapi/nms/NMS_1_20_R1.java | 7 +- .../nms/NativeProxyCommandSender_1_20_R1.java | 35 ++ 27 files changed, 481 insertions(+), 373 deletions(-) create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_15.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_R1.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_R2.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_4_R3.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_17_Common.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_18_R2.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_18_R1.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_Common.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_3_R2.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.4/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_4_R3.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R2.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.3/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R3.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R1.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/NativeProxyCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/NativeProxyCommandSender.java index 03e5ea8bed..a512762260 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/NativeProxyCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/NativeProxyCommandSender.java @@ -20,321 +20,24 @@ *******************************************************************************/ package dev.jorel.commandapi.wrappers; -import java.util.Set; -import java.util.UUID; - import org.bukkit.Location; -import org.bukkit.Server; import org.bukkit.World; -import org.bukkit.command.CommandSender; import org.bukkit.command.ProxiedCommandSender; -import org.bukkit.permissions.Permission; -import org.bukkit.permissions.PermissionAttachment; -import org.bukkit.permissions.PermissionAttachmentInfo; -import org.bukkit.plugin.Plugin; -import org.jetbrains.annotations.NotNull; - -import net.kyori.adventure.text.Component; /** * A simple representation of Minecraft's CommandListenerWrapper, in the form of * Bukkit's ProxiedCommandSender */ -public class NativeProxyCommandSender implements ProxiedCommandSender { - - private final CommandSender caller; - private final CommandSender callee; - private final Location location; - private final World world; - - /** - * Constructs a NativeProxyCommandSender, which is basically Minecraft's CommandListenerWrapper - * @param caller the command sender that actually sent the command - * @param callee the command sender that will be executing the command - * @param location the proxied location that the command will be run at - * @param world the proxied world that the command will be run in - */ - public NativeProxyCommandSender(CommandSender caller, CommandSender callee, Location location, World world) { - this.caller = caller; - this.callee = callee == null ? caller : callee; - this.location = location; - this.world = world; - } - - /** - * Adds a new empty PermissionAttachment to this object - * - * @param plugin Plugin responsible for this attachment, may not be null - * or disabled - * @return The PermissionAttachment that was just created - */ - @Override - public PermissionAttachment addAttachment(Plugin plugin) { - return this.caller.addAttachment(plugin); - } - - /** - * Temporarily adds a new empty PermissionAttachment to this - * object - * - * @param plugin Plugin responsible for this attachment, may not be null - * or disabled - * @param ticks Amount of ticks to automatically remove this attachment - * after - * @return The PermissionAttachment that was just created - */ - @Override - public PermissionAttachment addAttachment(Plugin plugin, int ticks) { - return this.caller.addAttachment(plugin, ticks); - } - - /** - * Adds a new PermissionAttachment with a single permission by - * name and value - * - * @param plugin Plugin responsible for this attachment, may not be null - * or disabled - * @param name Name of the permission to attach - * @param value Value of the permission - * @return The PermissionAttachment that was just created - */ - @Override - public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value) { - return this.caller.addAttachment(plugin, name, value); - } - - /** - * Temporarily adds a new PermissionAttachment with a single - * permission by name and value - * - * @param plugin Plugin responsible for this attachment, may not be null - * or disabled - * @param name Name of the permission to attach - * @param value Value of the permission - * @param ticks Amount of ticks to automatically remove this attachment - * after - * @return The PermissionAttachment that was just created - */ - @Override - public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value, int ticks) { - return this.caller.addAttachment(plugin, name, value, ticks); - } - - /** - * Returns the CommandSender which is being used to call the command - * - * @return the caller which the command is being run as - */ - @Override - public CommandSender getCallee() { - return this.callee; - } - - /** - * Returns the CommandSender which triggered this proxied command - * - * @return the caller which triggered the command - */ - @Override - public CommandSender getCaller() { - return this.caller; - } - - /** - * Gets a set containing all of the permissions currently in effect by - * this object - * - * @return Set of currently effective permissions - */ - @Override - public Set getEffectivePermissions() { - return this.caller.getEffectivePermissions(); - } - +public interface NativeProxyCommandSender extends ProxiedCommandSender { /** * Returns the location that this native command sender represents * @return the location that this native command sender represents */ - public Location getLocation() { - return this.location; - } - - /** - * Gets the name of this command sender - * - * @return Name of the sender - */ - @Override - public String getName() { - return this.callee.getName(); - } - - /** - * Returns the server instance that this command is running on - * - * @return Server instance - */ - @Override - public Server getServer() { - return this.callee.getServer(); - } + Location getLocation(); /** * Returns the world that this native command sender represents * @return the world that this native command sender represents */ - public World getWorld() { - return this.world; - } - - /** - * Gets the value of the specified permission, if set. - *

- * If a permission override is not set on this object, the default value - * of the permission will be returned - * - * @param perm Permission to get - * @return Value of the permission - */ - @Override - public boolean hasPermission(Permission perm) { - return this.caller.hasPermission(perm); - } - - /** - * Gets the value of the specified permission, if set. - *

- * If a permission override is not set on this object, the default value - * of the permission will be returned. - * - * @param name Name of the permission - * @return Value of the permission - */ - @Override - public boolean hasPermission(String name) { - return this.caller.hasPermission(name); - } - - /** - * Checks if this object is a server operator - * - * @return true if this is an operator, otherwise false - */ - @Override - public boolean isOp() { - return this.caller.isOp(); - } - - /** - * Checks if this object contains an override for the specified Permission - * - * @param perm Permission to check - * @return true if the permission is set, otherwise false - */ - @Override - public boolean isPermissionSet(Permission perm) { - return this.caller.isPermissionSet(perm); - } - - /** - * Checks if this object contains an override for the specified - * permission, by fully qualified name - * - * @param name Name of the permission - * @return true if the permission is set, otherwise false - */ - @Override - public boolean isPermissionSet(String name) { - return this.caller.isPermissionSet(name); - } - - /** - * Recalculates the permissions for this object, if the attachments have - * changed values. - *

- * This should very rarely need to be called from a plugin. - */ - @Override - public void recalculatePermissions() { - this.caller.recalculatePermissions(); - } - - /** - * Removes the given PermissionAttachment from this object - * - * @param attachment Attachment to remove - * @throws IllegalArgumentException Thrown when the specified attachment - * isn't part of this object - */ - @Override - public void removeAttachment(PermissionAttachment attachment) { - this.caller.removeAttachment(attachment); - } - - /** - * Sends this sender a message - * - * @param message Message to be displayed - */ - @Override - public void sendMessage(String message) { - this.caller.sendMessage(message); - } - - /** - * Sends this sender multiple messages - * - * @param messages An array of messages to be displayed - */ - @Override - public void sendMessage(String... messages) { - this.caller.sendMessage(messages); - } - - /** - * Sends this sender a message - * - * @param message Message to be displayed - * @param sender The sender of this message - */ - @Override - public void sendMessage(UUID sender, String message) { - this.caller.sendMessage(sender, message); - } - - /** - * Sends this sender multiple messages - * - * @param messages An array of messages to be displayed - * @param sender The sender of this message - */ - @Override - public void sendMessage(UUID sender, String... messages) { - this.caller.sendMessage(sender, messages); - } - - /** - * Sets the operator status of this object - * - * @param value New operator value - */ - @Override - public void setOp(boolean value) { - this.caller.setOp(value); - } - - /** - * Returns a Spigot instance of this object - * @return a Spigot instance of this object - */ - @Override - public Spigot spigot() { - return this.caller.spigot(); - } - - @Override - public @NotNull Component name() { - return this.caller.name(); - } - + World getWorld(); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index 5ccedcf22a..500b551bf4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -86,7 +86,6 @@ import dev.jorel.commandapi.wrappers.IntegerRange; import dev.jorel.commandapi.wrappers.Location2D; import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; import dev.jorel.commandapi.wrappers.ParticleData; import dev.jorel.commandapi.wrappers.Rotation; import dev.jorel.commandapi.wrappers.ScoreboardSlot; @@ -855,10 +854,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // however this may also be null, so delegate to the next most-meaningful sender. sender = Bukkit.getConsoleSender(); } - Vec3D pos = clw.getPosition(); - Vec2F rot = clw.i(); - World world = getWorldForCSS(clw); - Location location = new Location(world, pos.getX(), pos.getY(), pos.getZ(), rot.j, rot.i); Entity proxyEntity = clw.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -866,7 +861,7 @@ public BukkitCommandSender getSenderForCommand(CommandC if (proxy == null) { proxy = sender; } - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_15(clw, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_15.java new file mode 100644 index 0000000000..93e04a2d5e --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_15.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.server.v1_15_R1.CommandListenerWrapper; +import net.minecraft.server.v1_15_R1.Vec2F; +import net.minecraft.server.v1_15_R1.Vec3D; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_15_R1.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_15 extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_15(CommandListenerWrapper clw, CommandSender caller, CommandSender callee) { + super(clw, caller, callee); + + Vec3D pos = clw.getPosition(); + Vec2F rot = clw.i(); + this.world = CommandAPIBukkit.get().getWorldForCSS(clw); + this.location = new Location(this.world, pos.getX(), pos.getY(), pos.getZ(), rot.j, rot.i); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index 761d654984..3d5cb98265 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -92,7 +92,6 @@ import dev.jorel.commandapi.wrappers.IntegerRange; import dev.jorel.commandapi.wrappers.Location2D; import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; import dev.jorel.commandapi.wrappers.ParticleData; import dev.jorel.commandapi.wrappers.Rotation; import dev.jorel.commandapi.wrappers.ScoreboardSlot; @@ -878,10 +877,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // however this may also be null, so delegate to the next most-meaningful sender. sender = Bukkit.getConsoleSender(); } - Vec3D pos = clw.getPosition(); - Vec2F rot = clw.i(); - World world = getWorldForCSS(clw); - Location location = new Location(world, pos.getX(), pos.getY(), pos.getZ(), rot.j, rot.i); Entity proxyEntity = clw.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -889,7 +884,7 @@ public BukkitCommandSender getSenderForCommand(CommandC if (proxy == null) { proxy = sender; } - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_16_R1(clw, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_R1.java new file mode 100644 index 0000000000..a5eb957a12 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_R1.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.server.v1_16_R1.CommandListenerWrapper; +import net.minecraft.server.v1_16_R1.Vec2F; +import net.minecraft.server.v1_16_R1.Vec3D; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_16_R1.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_16_R1 extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_16_R1(CommandListenerWrapper clw, CommandSender caller, CommandSender callee) { + super(clw, caller, callee); + + Vec3D pos = clw.getPosition(); + Vec2F rot = clw.i(); + this.world = CommandAPIBukkit.get().getWorldForCSS(clw); + this.location = new Location(this.world, pos.getX(), pos.getY(), pos.getZ(), rot.j, rot.i); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index 89ef74fdf3..e4647c25c9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -90,7 +90,6 @@ import dev.jorel.commandapi.wrappers.IntegerRange; import dev.jorel.commandapi.wrappers.Location2D; import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; import dev.jorel.commandapi.wrappers.ParticleData; import dev.jorel.commandapi.wrappers.Rotation; import dev.jorel.commandapi.wrappers.ScoreboardSlot; @@ -874,10 +873,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // however this may also be null, so delegate to the next most-meaningful sender. sender = Bukkit.getConsoleSender(); } - Vec3D pos = clw.getPosition(); - Vec2F rot = clw.i(); - World world = getWorldForCSS(clw); - Location location = new Location(world, pos.getX(), pos.getY(), pos.getZ(), rot.j, rot.i); Entity proxyEntity = clw.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -885,7 +880,7 @@ public BukkitCommandSender getSenderForCommand(CommandC if (proxy == null) { proxy = sender; } - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_16_R2(clw, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_R2.java new file mode 100644 index 0000000000..3a33b153c4 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_R2.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.server.v1_16_R2.CommandListenerWrapper; +import net.minecraft.server.v1_16_R2.Vec2F; +import net.minecraft.server.v1_16_R2.Vec3D; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_16_R2.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_16_R2 extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_16_R2(CommandListenerWrapper clw, CommandSender caller, CommandSender callee) { + super(clw, caller, callee); + + Vec3D pos = clw.getPosition(); + Vec2F rot = clw.i(); + this.world = CommandAPIBukkit.get().getWorldForCSS(clw); + this.location = new Location(this.world, pos.getX(), pos.getY(), pos.getZ(), rot.j, rot.i); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index 03259fd5bd..915b22ecd6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -110,7 +110,6 @@ import dev.jorel.commandapi.wrappers.IntegerRange; import dev.jorel.commandapi.wrappers.Location2D; import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; import dev.jorel.commandapi.wrappers.ParticleData; import dev.jorel.commandapi.wrappers.Rotation; import dev.jorel.commandapi.wrappers.ScoreboardSlot; @@ -828,10 +827,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // however this may also be null, so delegate to the next most-meaningful sender. sender = Bukkit.getConsoleSender(); } - Vec3D pos = clw.getPosition(); - Vec2F rot = clw.i(); - World world = getWorldForCSS(clw); - Location location = new Location(world, pos.getX(), pos.getY(), pos.getZ(), rot.j, rot.i); Entity proxyEntity = clw.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -839,7 +834,7 @@ public BukkitCommandSender getSenderForCommand(CommandC if (proxy == null) { proxy = sender; } - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_16_4_R3(clw, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_4_R3.java new file mode 100644 index 0000000000..b7abce71a6 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_16_4_R3.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.server.v1_16_R3.CommandListenerWrapper; +import net.minecraft.server.v1_16_R3.Vec2F; +import net.minecraft.server.v1_16_R3.Vec3D; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_16_R3.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_16_4_R3 extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_16_4_R3(CommandListenerWrapper clw, CommandSender caller, CommandSender callee) { + super(clw, caller, callee); + + Vec3D pos = clw.getPosition(); + Vec2F rot = clw.i(); + this.world = CommandAPIBukkit.get().getWorldForCSS(clw); + this.location = new Location(this.world, pos.getX(), pos.getY(), pos.getZ(), rot.j, rot.i); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java index d32ab15b7d..acdf4172d2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java @@ -608,10 +608,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // however this may also be null, so delegate to the next most-meaningful sender. sender = Bukkit.getConsoleSender(); } - Vec3 pos = css.getPosition(); - Vec2 rot = css.getRotation(); - World world = getWorldForCSS(css); - Location location = new Location(world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -619,7 +615,7 @@ public BukkitCommandSender getSenderForCommand(CommandC if (proxy == null) { proxy = sender; } - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_17_Common(css, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_17_Common.java new file mode 100644 index 0000000000..621ad9f109 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_17_Common.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.world.phys.Vec2; +import net.minecraft.world.phys.Vec3; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_17_R1.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_17_Common extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_17_Common(CommandSourceStack css, CommandSender caller, CommandSender callee) { + super(css, caller, callee); + + Vec3 pos = css.getPosition(); + Vec2 rot = css.getRotation(); + this.world = CommandAPIBukkit.get().getWorldForCSS(css); + this.location = new Location(this.world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java index 97017067e7..48d69b4461 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java @@ -662,10 +662,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // however this may also be null, so delegate to the next most-meaningful sender. sender = Bukkit.getConsoleSender(); } - Vec3 pos = css.getPosition(); - Vec2 rot = css.getRotation(); - World world = getWorldForCSS(css); - Location location = new Location(world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -673,7 +669,7 @@ public BukkitCommandSender getSenderForCommand(CommandC if (proxy == null) { proxy = sender; } - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_18_R2(css, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_18_R2.java new file mode 100644 index 0000000000..a19e8e8cec --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_18_R2.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.world.phys.Vec2; +import net.minecraft.world.phys.Vec3; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_18_R2.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_18_R2 extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_18_R2(CommandSourceStack css, CommandSender caller, CommandSender callee) { + super(css, caller, callee); + + Vec3 pos = css.getPosition(); + Vec2 rot = css.getRotation(); + this.world = CommandAPIBukkit.get().getWorldForCSS(css); + this.location = new Location(this.world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java index 740538e227..2213c1ed63 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java @@ -608,10 +608,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // however this may also be null, so delegate to the next most-meaningful sender. sender = Bukkit.getConsoleSender(); } - Vec3 pos = css.getPosition(); - Vec2 rot = css.getRotation(); - World world = getWorldForCSS(css); - Location location = new Location(world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -619,7 +615,7 @@ public BukkitCommandSender getSenderForCommand(CommandC if (proxy == null) { proxy = sender; } - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_18_R1(css, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_18_R1.java new file mode 100644 index 0000000000..71f8af01bb --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_18_R1.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.world.phys.Vec2; +import net.minecraft.world.phys.Vec3; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_18_R1.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_18_R1 extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_18_R1(CommandSourceStack css, CommandSender caller, CommandSender callee) { + super(css, caller, callee); + + Vec3 pos = css.getPosition(); + Vec2 rot = css.getRotation(); + this.world = CommandAPIBukkit.get().getWorldForCSS(css); + this.location = new Location(this.world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java index fd0b8beade..03ed3d34a8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java @@ -708,15 +708,20 @@ public BukkitCommandSender getSenderForCommand(CommandC CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); - Vec3 pos = css.getPosition(); - Vec2 rot = css.getRotation(); - World world = getWorldForCSS(css); - Location location = new Location(world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); + if (sender == null) { + // Sender CANNOT be null. This can occur when using a remote console + // sender. You can access it directly using this.getMinecraftServer().remoteConsole + // however this may also be null, so delegate to the next most-meaningful sender. + sender = Bukkit.getConsoleSender(); + } + Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); - if (isNative || (proxy != null && !sender.equals(proxy))) { - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + if (proxy == null) { + proxy = sender; + } + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_19_Common(css, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_Common.java new file mode 100644 index 0000000000..5a7c29a582 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_Common.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.world.phys.Vec2; +import net.minecraft.world.phys.Vec3; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_19_R1.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_19_Common extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_19_Common(CommandSourceStack css, CommandSender caller, CommandSender callee) { + super(css, caller, callee); + + Vec3 pos = css.getPosition(); + Vec2 rot = css.getRotation(); + this.world = CommandAPIBukkit.get().getWorldForCSS(css); + this.location = new Location(this.world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_3_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_3_R2.java index 86801e92fb..55ca6c6cb3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_3_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_3_R2.java @@ -593,10 +593,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // however this may also be null, so delegate to the next most-meaningful sender. sender = Bukkit.getConsoleSender(); } - Vec3 pos = css.getPosition(); - Vec2 rot = css.getRotation(); - World world = getWorldForCSS(css); - Location location = new Location(world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -604,7 +600,7 @@ public BukkitCommandSender getSenderForCommand(CommandC if (proxy == null) { proxy = sender; } - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_19_3_R2(css, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_3_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_3_R2.java new file mode 100644 index 0000000000..ec3bdd8594 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_3_R2.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.world.phys.Vec2; +import net.minecraft.world.phys.Vec3; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_19_R2.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_19_3_R2 extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_19_3_R2(CommandSourceStack css, CommandSender caller, CommandSender callee) { + super(css, caller, callee); + + Vec3 pos = css.getPosition(); + Vec2 rot = css.getRotation(); + this.world = CommandAPIBukkit.get().getWorldForCSS(css); + this.location = new Location(this.world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_4_R3.java index 24873dedc4..63391804d6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_4_R3.java @@ -586,10 +586,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // however this may also be null, so delegate to the next most-meaningful sender. sender = Bukkit.getConsoleSender(); } - Vec3 pos = css.getPosition(); - Vec2 rot = css.getRotation(); - World world = getWorldForCSS(css); - Location location = new Location(world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -597,8 +593,7 @@ public BukkitCommandSender getSenderForCommand(CommandC if (proxy == null) { proxy = sender; } - - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_19_4_R3(css, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.4/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.4/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_4_R3.java new file mode 100644 index 0000000000..23b51f5764 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.4/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_19_4_R3.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.world.phys.Vec2; +import net.minecraft.world.phys.Vec3; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_19_R3.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_19_4_R3 extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_19_4_R3(CommandSourceStack css, CommandSender caller, CommandSender callee) { + super(css, caller, callee); + + Vec3 pos = css.getPosition(); + Vec2 rot = css.getRotation(); + this.world = CommandAPIBukkit.get().getWorldForCSS(css); + this.location = new Location(this.world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R2.java index 30ef025a3f..297e1cdaef 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R2.java @@ -606,10 +606,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // however this may also be null, so delegate to the next most-meaningful sender. sender = Bukkit.getConsoleSender(); } - Vec3 pos = css.getPosition(); - Vec2 rot = css.getRotation(); - World world = getWorldForCSS(css); - Location location = new Location(world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -617,8 +613,7 @@ public BukkitCommandSender getSenderForCommand(CommandC if (proxy == null) { proxy = sender; } - - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_20_R2(css, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R2.java new file mode 100644 index 0000000000..7ee7daf6f2 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.2/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R2.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.world.phys.Vec2; +import net.minecraft.world.phys.Vec3; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_20_R2.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_20_R2 extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_20_R2(CommandSourceStack css, CommandSender caller, CommandSender callee) { + super(css, caller, callee); + + Vec3 pos = css.getPosition(); + Vec2 rot = css.getRotation(); + this.world = CommandAPIBukkit.get().getWorldForCSS(css); + this.location = new Location(this.world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R3.java index 8ffb4fb903..8c2be5b7ea 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R3.java @@ -739,10 +739,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // sender. sender = Bukkit.getConsoleSender(); } - Vec3 pos = css.getPosition(); - Vec2 rot = css.getRotation(); - World world = getWorldForCSS(css); - Location location = new Location(world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -751,7 +747,7 @@ public BukkitCommandSender getSenderForCommand(CommandC proxy = sender; } - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_20_R3(css, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.3/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.3/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R3.java new file mode 100644 index 0000000000..b61c6b50c4 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20.3/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R3.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.world.phys.Vec2; +import net.minecraft.world.phys.Vec3; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_20_R3.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_20_R3 extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_20_R3(CommandSourceStack css, CommandSender caller, CommandSender callee) { + super(css, caller, callee); + + Vec3 pos = css.getPosition(); + Vec2 rot = css.getRotation(); + this.world = CommandAPIBukkit.get().getWorldForCSS(css); + this.location = new Location(this.world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R1.java index 7c94892441..b3cb72ca03 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20/src/main/java/dev/jorel/commandapi/nms/NMS_1_20_R1.java @@ -586,10 +586,6 @@ public BukkitCommandSender getSenderForCommand(CommandC // however this may also be null, so delegate to the next most-meaningful sender. sender = Bukkit.getConsoleSender(); } - Vec3 pos = css.getPosition(); - Vec2 rot = css.getRotation(); - World world = getWorldForCSS(css); - Location location = new Location(world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); @@ -597,8 +593,7 @@ public BukkitCommandSender getSenderForCommand(CommandC if (proxy == null) { proxy = sender; } - - return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender_1_20_R1(css, sender, proxy)); } else { return wrapCommandSender(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R1.java new file mode 100644 index 0000000000..0f485451cc --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.20/src/main/java/dev/jorel/commandapi/nms/NativeProxyCommandSender_1_20_R1.java @@ -0,0 +1,35 @@ +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.world.phys.Vec2; +import net.minecraft.world.phys.Vec3; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_20_R1.command.ProxiedNativeCommandSender; + +public class NativeProxyCommandSender_1_20_R1 extends ProxiedNativeCommandSender implements NativeProxyCommandSender { + private final World world; + private final Location location; + + public NativeProxyCommandSender_1_20_R1(CommandSourceStack css, CommandSender caller, CommandSender callee) { + super(css, caller, callee); + + Vec3 pos = css.getPosition(); + Vec2 rot = css.getRotation(); + this.world = CommandAPIBukkit.get().getWorldForCSS(css); + this.location = new Location(this.world, pos.x(), pos.y(), pos.z(), rot.y, rot.x); + } + + @Override + public Location getLocation() { + return location; + } + + @Override + public World getWorld() { + return world; + } +}