From e4d187be5278482dbd082da24e03ee9044d70ecd Mon Sep 17 00:00:00 2001 From: Alastair Date: Tue, 2 Aug 2016 22:47:26 +0000 Subject: [PATCH] Removed craftbukkit folder and started remaking the compatability file --- .../AdvancedPortalsCommand.java | 4 +- .../AdvancedPortalsPlugin.java | 87 +++++++++---------- .../advancedportals/compat/CraftBukkit.java | 69 +++++++++++++++ .../advancedportals/compat/bukkit/NMS.java | 10 --- .../compat/bukkit/v1_10_R1.java | 27 ------ .../compat/bukkit/v1_8_R1.java | 28 ------ .../compat/bukkit/v1_8_R2.java | 27 ------ .../compat/bukkit/v1_8_R3.java | 27 ------ .../compat/bukkit/v1_9_R1.java | 27 ------ .../compat/bukkit/v1_9_R2.java | 27 ------ .../destinations/Destination.java | 2 +- 11 files changed, 114 insertions(+), 221 deletions(-) create mode 100644 src/com/sekwah/advancedportals/compat/CraftBukkit.java delete mode 100644 src/com/sekwah/advancedportals/compat/bukkit/NMS.java delete mode 100644 src/com/sekwah/advancedportals/compat/bukkit/v1_10_R1.java delete mode 100644 src/com/sekwah/advancedportals/compat/bukkit/v1_8_R1.java delete mode 100644 src/com/sekwah/advancedportals/compat/bukkit/v1_8_R2.java delete mode 100644 src/com/sekwah/advancedportals/compat/bukkit/v1_8_R3.java delete mode 100644 src/com/sekwah/advancedportals/compat/bukkit/v1_9_R1.java delete mode 100644 src/com/sekwah/advancedportals/compat/bukkit/v1_9_R2.java diff --git a/src/com/sekwah/advancedportals/AdvancedPortalsCommand.java b/src/com/sekwah/advancedportals/AdvancedPortalsCommand.java index bbcf3f7..32b494d 100644 --- a/src/com/sekwah/advancedportals/AdvancedPortalsCommand.java +++ b/src/com/sekwah/advancedportals/AdvancedPortalsCommand.java @@ -239,7 +239,7 @@ public class AdvancedPortalsCommand implements CommandExecutor, TabCompleter { sender.sendMessage(""); sender.sendMessage(PluginMessages.customPrefixFail + " Are you sure you would like to remove the portal \u00A7e" + args[2] + "\u00A7c?"); sender.sendMessage(""); - plugin.nmsAccess.sendRawMessage("{\"text\":\" \",\"extra\":[{\"text\":\"\u00A7e[Yes]\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"Confirm removing this portal\"},\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/portal remove " + args[2] + "\"}}, " + + plugin.compat.sendRawMessage("{\"text\":\" \",\"extra\":[{\"text\":\"\u00A7e[Yes]\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"Confirm removing this portal\"},\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/portal remove " + args[2] + "\"}}, " + "{\"text\":\" \"},{\"text\":\"\u00A7e[No]\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"Cancel removing this portal\"},\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/portal edit " + args[2] + "\"}}]}", player); sender.sendMessage(""); } @@ -482,7 +482,7 @@ public class AdvancedPortalsCommand implements CommandExecutor, TabCompleter { Player player = (Player) sender; - plugin.nmsAccess.sendRawMessage("{\"text\":\"\u00A7aFunctions\u00A7e: \",\"extra\":[{\"text\":\"\u00A7eRemove\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"Remove the selected portal\"},\"clickEvent\":{\"action\":\"clickEvent\",\"value\":\"/portal gui remove " + portalName + "\"}}" + plugin.compat.sendRawMessage("{\"text\":\"\u00A7aFunctions\u00A7e: \",\"extra\":[{\"text\":\"\u00A7eRemove\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"Remove the selected portal\"},\"clickEvent\":{\"action\":\"clickEvent\",\"value\":\"/portal gui remove " + portalName + "\"}}" + ",{\"text\":\" \"},{\"text\":\"\u00A7eShow\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"Show the selected portal\"},\"clickEvent\":{\"action\":\"clickEvent\",\"value\":\"/portal show " + portalName + "\"}}" + ",{\"text\":\" \"},{\"text\":\"\u00A7eRename\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"Change the name of the portal\"},\"clickEvent\":{\"action\":\"suggest_command\",\"value\":\"/portal rename \"}}" + ",{\"text\":\" \"},{\"text\":\"\u00A7eActivate\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"Teleport to the set destination\n(same as entering the portal)\"},\"clickEvent\":{\"action\":\"clickEvent\",\"value\":\"/warp " + destination + "\"}}]}", player); diff --git a/src/com/sekwah/advancedportals/AdvancedPortalsPlugin.java b/src/com/sekwah/advancedportals/AdvancedPortalsPlugin.java index dde576a..a16705f 100644 --- a/src/com/sekwah/advancedportals/AdvancedPortalsPlugin.java +++ b/src/com/sekwah/advancedportals/AdvancedPortalsPlugin.java @@ -1,7 +1,7 @@ package com.sekwah.advancedportals; import com.sekwah.advancedportals.DataCollector.DataCollector; -import com.sekwah.advancedportals.compat.bukkit.NMS; +import com.sekwah.advancedportals.compat.CraftBukkit; import com.sekwah.advancedportals.destinations.*; import com.sekwah.advancedportals.effects.WarpEffects; import com.sekwah.advancedportals.listeners.*; @@ -10,11 +10,10 @@ import com.sekwah.advancedportals.portals.Portal; import org.bukkit.plugin.java.JavaPlugin; import java.io.IOException; -import java.lang.reflect.InvocationTargetException; public class AdvancedPortalsPlugin extends JavaPlugin { - public NMS nmsAccess; + public CraftBukkit compat = null; public void onEnable() { @@ -30,63 +29,61 @@ public class AdvancedPortalsPlugin extends JavaPlugin { String version = packageSplit[packageSplit.length - 1]; try { - Class nmsClass = Class.forName("com.sekwah.advancedportals.compat.bukkit." + version); - if (NMS.class.isAssignableFrom(nmsClass)) { - this.nmsAccess = (NMS) nmsClass.getConstructor().newInstance(); + + this.compat = new CraftBukkit(version); + + ConfigAccessor portalConfig = new ConfigAccessor(this, "portals.yml"); + portalConfig.saveDefaultConfig(); + + ConfigAccessor destinationConfig = new ConfigAccessor(this, "destinations.yml"); + destinationConfig.saveDefaultConfig(); + + new Assets(this); + + // Opens a channel that messages bungeeCord + this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); + + // Loads the portal and destination editors + new Portal(this); + new Destination(this); + + new DataCollector(this); - ConfigAccessor portalConfig = new ConfigAccessor(this, "portals.yml"); - portalConfig.saveDefaultConfig(); + // These register the commands + new PluginMessages(this); + new AdvancedPortalsCommand(this); + new DestinationCommand(this); - ConfigAccessor destinationConfig = new ConfigAccessor(this, "destinations.yml"); - destinationConfig.saveDefaultConfig(); - - new Assets(this); - - // Opens a channel that messages bungeeCord - this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); - - // Loads the portal and destination editors - new Portal(this); - new Destination(this); - - new DataCollector(this); - - // These register the commands - new PluginMessages(this); - new AdvancedPortalsCommand(this); - new DestinationCommand(this); - - new WarpEffects(this); + new WarpEffects(this); - // These register the listeners - new Listeners(this); + // These register the listeners + new Listeners(this); - new FlowStopper(this); - new PortalProtect(this); - new PortalPlacer(this); + new FlowStopper(this); + new PortalProtect(this); + new PortalPlacer(this); - Selection.LoadData(this); + Selection.LoadData(this); - DataCollector.setupMetrics(); + DataCollector.setupMetrics(); - this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); - this.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", new BungeeListener(this)); + this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); + this.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", new BungeeListener(this)); - this.getServer().getConsoleSender().sendMessage("\u00A7aAdvanced portals have been successfully enabled!"); + this.getServer().getConsoleSender().sendMessage("\u00A7aAdvanced portals have been successfully enabled!"); - } else { - this.getLogger().warning("Something went wrong, please notify the author and tell them this version v:" + version); - this.setEnabled(false); - } } catch (ClassNotFoundException e) { - this.getLogger().warning("This version of craftbukkit is not yet supported, please notify the author and give version v:" + version); + this.getLogger().warning("This version of craftbukkit is not yet supported, please notify sekwah and tell him about this version v:" + version); this.setEnabled(false); - } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | - NoSuchMethodException | SecurityException e) { + } catch (IllegalArgumentException | + NoSuchFieldException | SecurityException e) { e.printStackTrace(); + this.getLogger().warning("Something went wrong, please notify sekwah and tell him about this version v:" + version); + this.getLogger().warning("Along with the above stacktrace"); + this.setEnabled(false); } saveDefaultConfig(); diff --git a/src/com/sekwah/advancedportals/compat/CraftBukkit.java b/src/com/sekwah/advancedportals/compat/CraftBukkit.java new file mode 100644 index 0000000..481b464 --- /dev/null +++ b/src/com/sekwah/advancedportals/compat/CraftBukkit.java @@ -0,0 +1,69 @@ +package com.sekwah.advancedportals.compat; + +import org.bukkit.entity.Player; + +import java.lang.reflect.Field; + +/** + * Created by on 02/08/2016. + * + * I don't think there will be any others supported other than bukkit but if there are its not just the compat that will + * need to change. + * + * @author sekwah41 + */ +public class CraftBukkit { + + private final String craftBukkitVer; + + private final String craftBukkitPackage; + + private final String minecraftPackage; + + + // Classes so it doesnt keep fetching them. + private Class chatBaseComponent; + private Class chatSerializer; + + public CraftBukkit(String craftBukkitVer) throws ClassNotFoundException, NoSuchFieldException { + this.craftBukkitVer = craftBukkitVer; + this.craftBukkitPackage = "org.bukkit.craftbukkit." + craftBukkitVer; + this.minecraftPackage = "net.minecraft.server." + craftBukkitVer; + + + this.setupCompat(); + } + + private void setupCompat() throws ClassNotFoundException, NoSuchFieldException { + this.chatBaseComponent = Class.forName(minecraftPackage + "IChatBaseComponent"); + Field modfield = chatBaseComponent.getDeclaredField("modifiers"); + chatBaseComponent.getDeclaredClasses(); + + } + + // Convert to reflection + public void sendRawMessage(String rawMessage, Player player) { + + try { + + Class nmsClass = Class.forName(minecraftPackage + "IChatBaseComponent"); + + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + + /*IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); + // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) + PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 1); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);*/ + } + + public void sendActionBarMessage(String rawMessage, Player player) { + /*IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); + // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) + PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 2); + ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);*/ + } + + +} diff --git a/src/com/sekwah/advancedportals/compat/bukkit/NMS.java b/src/com/sekwah/advancedportals/compat/bukkit/NMS.java deleted file mode 100644 index b0eedfe..0000000 --- a/src/com/sekwah/advancedportals/compat/bukkit/NMS.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.sekwah.advancedportals.compat.bukkit; - -import org.bukkit.entity.Player; - -public interface NMS { - - void sendRawMessage(String rawMessage, Player player); - - void sendActionBarMessage(String rawMessage, Player player); -} diff --git a/src/com/sekwah/advancedportals/compat/bukkit/v1_10_R1.java b/src/com/sekwah/advancedportals/compat/bukkit/v1_10_R1.java deleted file mode 100644 index 9df7f3e..0000000 --- a/src/com/sekwah/advancedportals/compat/bukkit/v1_10_R1.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.sekwah.advancedportals.compat.bukkit; - -import net.minecraft.server.v1_10_R1.IChatBaseComponent; -import net.minecraft.server.v1_10_R1.PacketPlayOutChat; -import org.bukkit.craftbukkit.v1_10_R1.entity.CraftPlayer; -import org.bukkit.entity.Player; - - -public class v1_10_R1 implements NMS { - - @Override - public void sendRawMessage(String rawMessage, Player player) { - IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 1); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } - - - @Override - public void sendActionBarMessage(String rawMessage, Player player) { - IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 2); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } -} diff --git a/src/com/sekwah/advancedportals/compat/bukkit/v1_8_R1.java b/src/com/sekwah/advancedportals/compat/bukkit/v1_8_R1.java deleted file mode 100644 index aa9809e..0000000 --- a/src/com/sekwah/advancedportals/compat/bukkit/v1_8_R1.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.sekwah.advancedportals.compat.bukkit; - -import net.minecraft.server.v1_8_R1.ChatSerializer; -import net.minecraft.server.v1_8_R1.IChatBaseComponent; -import net.minecraft.server.v1_8_R1.PacketPlayOutChat; -import org.bukkit.craftbukkit.v1_8_R1.entity.CraftPlayer; -import org.bukkit.entity.Player; - - -public class v1_8_R1 implements NMS { - - @Override - public void sendRawMessage(String rawMessage, Player player) { - IChatBaseComponent comp = ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 1); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } - - - @Override - public void sendActionBarMessage(String rawMessage, Player player) { - IChatBaseComponent comp = ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 2); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } -} diff --git a/src/com/sekwah/advancedportals/compat/bukkit/v1_8_R2.java b/src/com/sekwah/advancedportals/compat/bukkit/v1_8_R2.java deleted file mode 100644 index 46e477f..0000000 --- a/src/com/sekwah/advancedportals/compat/bukkit/v1_8_R2.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.sekwah.advancedportals.compat.bukkit; - -import net.minecraft.server.v1_8_R2.IChatBaseComponent; -import net.minecraft.server.v1_8_R2.PacketPlayOutChat; -import org.bukkit.craftbukkit.v1_8_R2.entity.CraftPlayer; -import org.bukkit.entity.Player; - - -public class v1_8_R2 implements NMS { - - @Override - public void sendRawMessage(String rawMessage, Player player) { - IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 1); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } - - - @Override - public void sendActionBarMessage(String rawMessage, Player player) { - IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 2); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } -} diff --git a/src/com/sekwah/advancedportals/compat/bukkit/v1_8_R3.java b/src/com/sekwah/advancedportals/compat/bukkit/v1_8_R3.java deleted file mode 100644 index ca75728..0000000 --- a/src/com/sekwah/advancedportals/compat/bukkit/v1_8_R3.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.sekwah.advancedportals.compat.bukkit; - -import net.minecraft.server.v1_8_R3.IChatBaseComponent; -import net.minecraft.server.v1_8_R3.PacketPlayOutChat; -import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; -import org.bukkit.entity.Player; - - -public class v1_8_R3 implements NMS { - - @Override - public void sendRawMessage(String rawMessage, Player player) { - IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 1); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } - - - @Override - public void sendActionBarMessage(String rawMessage, Player player) { - IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 2); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } -} diff --git a/src/com/sekwah/advancedportals/compat/bukkit/v1_9_R1.java b/src/com/sekwah/advancedportals/compat/bukkit/v1_9_R1.java deleted file mode 100644 index f9614c0..0000000 --- a/src/com/sekwah/advancedportals/compat/bukkit/v1_9_R1.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.sekwah.advancedportals.compat.bukkit; - -import net.minecraft.server.v1_9_R1.IChatBaseComponent; -import net.minecraft.server.v1_9_R1.PacketPlayOutChat; -import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer; -import org.bukkit.entity.Player; - - -public class v1_9_R1 implements NMS { - - @Override - public void sendRawMessage(String rawMessage, Player player) { - IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 1); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } - - - @Override - public void sendActionBarMessage(String rawMessage, Player player) { - IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 2); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } -} diff --git a/src/com/sekwah/advancedportals/compat/bukkit/v1_9_R2.java b/src/com/sekwah/advancedportals/compat/bukkit/v1_9_R2.java deleted file mode 100644 index 2e4b573..0000000 --- a/src/com/sekwah/advancedportals/compat/bukkit/v1_9_R2.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.sekwah.advancedportals.compat.bukkit; - -import net.minecraft.server.v1_9_R2.IChatBaseComponent; -import net.minecraft.server.v1_9_R2.PacketPlayOutChat; -import org.bukkit.craftbukkit.v1_9_R2.entity.CraftPlayer; -import org.bukkit.entity.Player; - - -public class v1_9_R2 implements NMS { - - @Override - public void sendRawMessage(String rawMessage, Player player) { - IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 1); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } - - - @Override - public void sendActionBarMessage(String rawMessage, Player player) { - IChatBaseComponent comp = IChatBaseComponent.ChatSerializer.a(rawMessage); - // "json message", position(0: chat (chat box), 1: system message (chat box), 2: above action bar) - PacketPlayOutChat packet = new PacketPlayOutChat(comp, (byte) 2); - ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - } -} diff --git a/src/com/sekwah/advancedportals/destinations/Destination.java b/src/com/sekwah/advancedportals/destinations/Destination.java index 17f6506..2d3bdfb 100644 --- a/src/com/sekwah/advancedportals/destinations/Destination.java +++ b/src/com/sekwah/advancedportals/destinations/Destination.java @@ -149,7 +149,7 @@ public class Destination { player.sendMessage(PluginMessages.customPrefixFail + "\u00A7a You have been warped to \u00A7e" + name.replaceAll("_", " ") + "\u00A7a."); player.sendMessage(""); } else if (PortalMessagesDisplay == 2) { - plugin.nmsAccess.sendActionBarMessage("{\"text\":\"\u00A7aYou have warped to \u00A7e" + name.replaceAll("_", " ") + "\u00A7a.\"}", player); + plugin.compat.sendActionBarMessage("{\"text\":\"\u00A7aYou have warped to \u00A7e" + name.replaceAll("_", " ") + "\u00A7a.\"}", player); /**plugin.nmsAccess.sendActionBarMessage("[{text:\"You have warped to \",color:green},{text:\"" + config.getConfig().getString(Portal.Portals[portalId].portalName + ".destination").replaceAll("_", " ") + "\",color:yellow},{\"text\":\".\",color:green}]", player);*/ }