diff --git a/src/main/java/com/bekvon/bukkit/residence/Residence.java b/src/main/java/com/bekvon/bukkit/residence/Residence.java index 3c8a5dd..1e45bde 100644 --- a/src/main/java/com/bekvon/bukkit/residence/Residence.java +++ b/src/main/java/com/bekvon/bukkit/residence/Residence.java @@ -55,11 +55,11 @@ import com.bekvon.bukkit.residence.text.Language; import com.bekvon.bukkit.residence.text.help.HelpEntry; import com.bekvon.bukkit.residence.text.help.InformationPager; import com.bekvon.bukkit.residence.utils.DataBackup; -import com.bekvon.bukkit.residence.utils.VersionChecker; import com.bekvon.bukkit.residence.vaultinterface.ResidenceVaultAdapter; import com.earth2me.essentials.Essentials; import cn.citycraft.PluginHelper.config.FileConfig; +import cn.citycraft.PluginHelper.utils.VersionChecker; /** * diff --git a/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener.java b/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener.java index c0a61c4..567513e 100644 --- a/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener.java +++ b/src/main/java/com/bekvon/bukkit/residence/listeners/ResidencePlayerListener.java @@ -44,9 +44,10 @@ import com.bekvon.bukkit.residence.event.ResidenceChangedEvent; import com.bekvon.bukkit.residence.permissions.PermissionGroup; import com.bekvon.bukkit.residence.protection.ClaimedResidence; import com.bekvon.bukkit.residence.protection.FlagPermissions; -import com.bekvon.bukkit.residence.utils.ActionBar; import com.sk89q.worldedit.bukkit.WorldEditPlugin; +import cn.citycraft.PluginHelper.utils.ActionBar; + /** * * @author Administrator diff --git a/src/main/java/com/bekvon/bukkit/residence/utils/ActionBar.java b/src/main/java/com/bekvon/bukkit/residence/utils/ActionBar.java deleted file mode 100644 index 53d42a4..0000000 --- a/src/main/java/com/bekvon/bukkit/residence/utils/ActionBar.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.bekvon.bukkit.residence.utils; - -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.logging.Level; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.json.simple.JSONObject; - - -/** -* -* @author hamzaxx -*/ -public class ActionBar { - private static String version = ""; - private static Object packet; - private static Method getHandle; - private static Method sendPacket; - private static Field playerConnection; - private static Class nmsChatSerializer; - private static Class nmsIChatBaseComponent; - private static Class packetType; - - static { - try { - version = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3]; - packetType = Class.forName(getPacketPlayOutChat()); - Class typeCraftPlayer = Class.forName(getCraftPlayerClasspath()); - Class typeNMSPlayer = Class.forName(getNMSPlayerClasspath()); - Class typePlayerConnection = Class.forName(getPlayerConnectionClasspath()); - nmsChatSerializer = Class.forName(getChatSerializerClasspath()); - nmsIChatBaseComponent = Class.forName(getIChatBaseComponentClasspath()); - getHandle = typeCraftPlayer.getMethod("getHandle"); - playerConnection = typeNMSPlayer.getField("playerConnection"); - sendPacket = typePlayerConnection.getMethod("sendPacket", Class.forName(getPacketClasspath())); - } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | NoSuchFieldException ex) { - Bukkit.getLogger().log(Level.SEVERE, "Error {0}", ex); - } - } - - public static void send(Player receivingPacket, String msg) { - try { - Object serialized = nmsChatSerializer.getMethod("a", String.class).invoke(null, "{\"text\": \"" + ChatColor.translateAlternateColorCodes('&', JSONObject.escape(msg)) + "\"}"); - if (!version.contains("1_7")) { - packet = packetType.getConstructor(nmsIChatBaseComponent, byte.class).newInstance(serialized, (byte) 2); - } else { - packet = packetType.getConstructor(nmsIChatBaseComponent, int.class).newInstance(serialized, 2); - } - Object player = getHandle.invoke(receivingPacket); - Object connection = playerConnection.get(player); - sendPacket.invoke(connection, packet); - } catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | InstantiationException ex) { - Bukkit.getLogger().log(Level.SEVERE, "Error {0} " + version, ex); - } - - try { - Object player = getHandle.invoke(receivingPacket); - Object connection = playerConnection.get(player); - sendPacket.invoke(connection, packet); - } catch (SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) { - Bukkit.getLogger().log(Level.SEVERE, "Error {0}", ex); - } - } - - private static String getCraftPlayerClasspath() { - return "org.bukkit.craftbukkit." + version + ".entity.CraftPlayer"; - } - - private static String getPlayerConnectionClasspath() { - return "net.minecraft.server." + version + ".PlayerConnection"; - } - - private static String getNMSPlayerClasspath() { - return "net.minecraft.server." + version + ".EntityPlayer"; - } - - private static String getPacketClasspath() { - return "net.minecraft.server." + version + ".Packet"; - } - - private static String getIChatBaseComponentClasspath() { - return "net.minecraft.server." + version + ".IChatBaseComponent"; - } - - private static String getChatSerializerClasspath() { - if(version.equals("v1_8_R1") || version.contains("1_7")){ - return "net.minecraft.server." + version + ".ChatSerializer"; - } else { - return "net.minecraft.server." + version + ".IChatBaseComponent$ChatSerializer"; // 1_8_R2 moved to IChatBaseComponent - } - } - - private static String getPacketPlayOutChat() { - return "net.minecraft.server." + version + ".PacketPlayOutChat"; - } -} diff --git a/src/main/java/com/bekvon/bukkit/residence/utils/VersionChecker.java b/src/main/java/com/bekvon/bukkit/residence/utils/VersionChecker.java deleted file mode 100644 index e30d1c0..0000000 --- a/src/main/java/com/bekvon/bukkit/residence/utils/VersionChecker.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.bekvon.bukkit.residence.utils; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.plugin.Plugin; - -import com.google.common.base.Charsets; - -/** - * @author 蒋天蓓 - * 2015年8月14日下午4:01:15 - * 自动更新类 - */ -public class VersionChecker implements Listener { - Plugin plugin; - public String checkurl = "https://coding.net/u/502647092/p/%s/git/raw/%s/src/plugin.yml"; - public String branch = "master"; - - /** - * @param plugin - * - 插件 - */ - public VersionChecker(Plugin plugin) { - this.plugin = plugin; - plugin.getServer().getPluginManager().registerEvents(this, plugin); - this.versioncheck(null); - } - - /** - * @param plugin - * - 插件 - * @param branch - * - 分支名称 - */ - public VersionChecker(Plugin plugin, String branch) { - this.plugin = plugin; - plugin.getServer().getPluginManager().registerEvents(this, plugin); - this.branch = branch; - this.versioncheck(null); - } - - /** - * 获取插件更新链接 - * - * @param pluginName - * - 插件名称 - * @param branch - * - 插件分支 - * @return 更新链接 - */ - public String getCheckUrl(String pluginName, String branch) { - return String.format(checkurl, pluginName, branch); - } - - @EventHandler - public void onPlayerJoin(PlayerJoinEvent e) { - if (e.getPlayer().isOp()) { - this.versioncheck(e.getPlayer()); - } - } - - /** - * 开始更新 - * - * @param player - * - 获取更新的玩家(null则默认为控制台) - */ - public void versioncheck(final Player player) { - Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() { - @Override - public void run() { - String readURL = getCheckUrl(plugin.getName(), branch); - FileConfiguration config; - String currentVersion = plugin.getDescription().getVersion(); - try { - URL url = new URL(readURL); - BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), Charsets.UTF_8)); - config = YamlConfiguration.loadConfiguration(br); - String newVersion = config.getString("version"); - br.close(); - if (!newVersion.equals(currentVersion)) { - String[] msg = new String[] { - ChatColor.GREEN + plugin.getName() + " 插件最新版本 v" + newVersion, - ChatColor.RED + "服务器运行版本: v" + currentVersion, - ChatColor.GOLD + "插件更新网站: " + ChatColor.BLUE + plugin.getDescription().getWebsite() - }; - if (player != null) { - player.sendMessage(msg); - } else { - plugin.getServer().getConsoleSender().sendMessage(msg); - } - } - } catch (IOException e) { - plugin.getLogger().warning("版本更新检查失败!"); - } - } - }); - } - -}