From a5ea4d31053eff0d45278711faf20ff0825ef09b Mon Sep 17 00:00:00 2001 From: Aruvelut <2502474438@qq.com> Date: Fri, 19 Jul 2024 14:04:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B01.2.7-alpha-3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dependency-reduced-pom.xml | 2 +- pom.xml | 2 +- src/main/java/idk/team/IDK.java | 77 +++++++++++++++++--- src/main/java/idk/team/IDKCommand.java | 22 ++++-- src/main/java/idk/team/IDKListener.java | 56 ++++++++------ src/main/java/idk/team/IDKMessageConfig.java | 14 ++-- src/main/resources/config.yml | 8 +- src/main/resources/messages.yml | 12 ++- src/main/resources/messages_zh.yml | 10 ++- 9 files changed, 148 insertions(+), 55 deletions(-) diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml index 2459b91..6115123 100644 --- a/dependency-reduced-pom.xml +++ b/dependency-reduced-pom.xml @@ -4,7 +4,7 @@ idk IDK IDK - 1.2.7-alpha-2 + 1.2.7-alpha-3 diff --git a/pom.xml b/pom.xml index 4cba5d8..c3475c2 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ idk IDK - 1.2.7-alpha-2 + 1.2.7-alpha-3 jar IDK diff --git a/src/main/java/idk/team/IDK.java b/src/main/java/idk/team/IDK.java index 56f5e1b..24fb568 100644 --- a/src/main/java/idk/team/IDK.java +++ b/src/main/java/idk/team/IDK.java @@ -1,12 +1,22 @@ package idk.team; +import idk.team.plugin.IDKPluginManagement; import org.apache.logging.log4j.LogManager; import org.bukkit.Bukkit; import org.bukkit.configuration.Configuration; import org.bukkit.configuration.MemoryConfiguration; +import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; -import java.util.*; +import java.io.*; +import java.net.URL; +import java.net.URLClassLoader; +import java.net.URLDecoder; +import java.util.Arrays; +import java.util.Enumeration; +import java.util.Objects; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; import java.util.logging.Logger; public final class IDK extends JavaPlugin { @@ -17,26 +27,71 @@ protected void finalize() throws Throwable { } }; public Logger logger = Bukkit.getLogger(); + public static Logger log = Bukkit.getLogger(); public static IDK idk; public boolean test_build = false; public boolean beta_build = false; + public boolean alpha_build = true; public boolean debug = true; public String prefix = messages.getString("prefix"); - int config_ver = 3; + int config_ver = 4; String plugins = null; + public static void unzipJar(String destinationDir, String jarPath) throws IOException { + File file = new File(jarPath); + JarFile jar = new JarFile(file); + + // fist get all directories, + // then make those directory on the destination Path + for (Enumeration enums = jar.entries(); enums.hasMoreElements();) { + JarEntry entry = (JarEntry) enums.nextElement(); + + String fileName = destinationDir + File.separator + entry.getName(); + File f = new File(fileName); + + if (fileName.endsWith("/")) { + f.mkdirs(); + } + + } + + //now create all files + for (Enumeration enums = jar.entries(); enums.hasMoreElements();) { + JarEntry entry = (JarEntry) enums.nextElement(); + + String fileName = destinationDir + File.separator + entry.getName(); + File f = new File(fileName); + + if (!fileName.endsWith("/")) { + InputStream is = jar.getInputStream(entry); + FileOutputStream fos = new FileOutputStream(f); + + // write contents of 'is' to 'fos' + while (is.available() > 0) { + fos.write(is.read()); + } + + fos.close(); + is.close(); + } + } + } + @Override public void onLoad() { this.plugins = Arrays.toString(Bukkit.getPluginManager().getPlugins()); Configuration defaults = new MemoryConfiguration(); - defaults.set("config-version", 3); + defaults.set("config-version", 4); defaults.set("plugin-management", true); defaults.set("debug", true); defaults.set("download-source", "papermc"); defaults.set("lang", "en"); + defaults.set("test-notify", "true"); this.getConfig().setDefaults(defaults); } + private boolean notfirsttime = false; + @Override public void onEnable() { //插件启用逻辑 @@ -48,13 +103,17 @@ public void onEnable() { String debug_warn = messages.getString("debug_warn"); String papermc_warn = messages.getString("papermc_warn"); this.debug = this.getConfig().getBoolean("debug"); - if(this.debug) { - logger.warning(prefix+debug_warn); - } - if(Objects.equals(this.getConfig().getString("download-source"), "papermc")) { - logger.warning(prefix+papermc_warn); + if(!notfirsttime) { + if(this.debug) { + logger.warning(prefix+debug_warn); + } + if(Objects.equals(this.getConfig().getString("download-source"), "papermc")) { + logger.warning(prefix+papermc_warn); + } + idk = this; + } else { + notfirsttime = true; } - idk = this; } public void reload() { diff --git a/src/main/java/idk/team/IDKCommand.java b/src/main/java/idk/team/IDKCommand.java index ef70c52..871ad6e 100644 --- a/src/main/java/idk/team/IDKCommand.java +++ b/src/main/java/idk/team/IDKCommand.java @@ -75,19 +75,25 @@ protected void finalize() throws Throwable { String folder = Bukkit.getPluginsFolder().getAbsolutePath(); if(!strings[2].isEmpty()) { String file_name = strings[2]; - String file_path = folder + "\\" + file_name; + String file_path = ""; + if (file_name.contains(".jar")) { + file_path = folder + "\\" + file_name; + } + else { + file_path = folder + "\\" + file_name + ".jar"; + } try { Plugin plugin = Bukkit.getPluginManager().loadPlugin(new File(file_path)); if (plugin != null) { Bukkit.getPluginManager().enablePlugin(plugin); - player.sendMessage(prefix+"Plugin file " + file_name + " " + "plugin name " + plugin.getName() + " loaded!"); + player.sendMessage(prefix+messages.getString("plugin_loaded_a").replace("[name]", plugin.getName()).replace("[file]", file_name)); } return true; } catch (InvalidPluginException | InvalidDescriptionException e) { return true; } } else { - player.sendMessage(prefix+"Error!"); + player.sendMessage(prefix+messages.getString("error_load")); return true; } } @@ -194,7 +200,7 @@ protected void finalize() throws Throwable { return false; } else { - player.sendMessage(prefix+"Plugin management function is not enabled in config."); + player.sendMessage(prefix+messages.getString("plugin_management_not_enable")); return true; } } @@ -347,7 +353,7 @@ protected void finalize() throws Throwable { } if(strings.length == 1 && strings[0].equals("ping")) { if(player.hasPermission("IDK.command.IDK.ping")) { - player.sendMessage(prefix+messages.getString("ping") + player.getPing() + "ms!"); //给玩家发送消息 + player.sendMessage(prefix+messages.getString("ping").replace("[ping]", String.valueOf(player.getPing()))); //给玩家发送消息 } return true; } @@ -419,14 +425,14 @@ protected void finalize() throws Throwable { Plugin plugin = Bukkit.getPluginManager().loadPlugin(new File(file_path)); if (plugin != null) { Bukkit.getPluginManager().enablePlugin(plugin); - IDK.idk.logger.info(prefix+"Plugin file " + file_name + " " + "plugin name " + plugin.getName() + " loaded!"); + IDK.idk.logger.info(prefix+messages.getString("plugin_loaded_a").replace("[name]", plugin.getName()).replace("[file]", file_name)); } return true; } catch (InvalidPluginException | InvalidDescriptionException e) { return true; } } else { - IDK.idk.logger.warning(prefix+"Error!"); + IDK.idk.logger.warning(prefix+messages.getString("error_load")); return true; } } @@ -529,7 +535,7 @@ protected void finalize() throws Throwable { return false; } else { - IDK.idk.logger.warning(prefix+"Plugin management function is not enabled in config."); + IDK.idk.logger.warning(prefix+messages.getString("plugin_management_not_enable")); return true; } } diff --git a/src/main/java/idk/team/IDKListener.java b/src/main/java/idk/team/IDKListener.java index 920187e..27c3dd2 100644 --- a/src/main/java/idk/team/IDKListener.java +++ b/src/main/java/idk/team/IDKListener.java @@ -42,28 +42,42 @@ protected void finalize() throws Throwable { String warning_title = messages.getString("warning_title"); String warning_test = messages.getString("warning_test"); String warning_beta = messages.getString("warning_beta"); + String warning_alpha = messages.getString("warning_alpha"); String warning_2 = messages.getString("warning_2"); - if (IDK.idk.test_build) { - player.sendTitle(prefix+warning_title, prefix+warning_test); - Timer timer = new Timer(); - TimerTask use_at_own_risks = new TimerTask() { - @Override - public void run() { - player.sendTitle(prefix+warning_title, prefix+warning_2); - } - }; - timer.schedule(use_at_own_risks,5000); - } - else if (IDK.idk.beta_build) { - player.sendTitle(prefix+warning_title, warning_beta); - Timer timer = new Timer(); - TimerTask use_at_own_risks = new TimerTask() { - @Override - public void run() { - player.sendTitle(prefix+warning_title, warning_2); - } - }; - timer.schedule(use_at_own_risks,5000); + if (config.getBoolean("test-notify")) { + if (IDK.idk.test_build) { + player.sendTitle(prefix+warning_title, prefix+warning_test); + Timer timer = new Timer(); + TimerTask use_at_own_risks = new TimerTask() { + @Override + public void run() { + player.sendTitle(prefix+warning_title, prefix+warning_2); + } + }; + timer.schedule(use_at_own_risks,5000); + } + else if (IDK.idk.alpha_build) { + player.sendTitle(prefix+warning_title, warning_alpha); + Timer timer = new Timer(); + TimerTask use_at_own_risks = new TimerTask() { + @Override + public void run() { + player.sendTitle(prefix+warning_title, warning_2); + } + }; + timer.schedule(use_at_own_risks,5000); + } + else if (IDK.idk.beta_build) { + player.sendTitle(prefix+warning_title, warning_beta); + Timer timer = new Timer(); + TimerTask use_at_own_risks = new TimerTask() { + @Override + public void run() { + player.sendTitle(prefix+warning_title, warning_2); + } + }; + timer.schedule(use_at_own_risks,5000); + } } } diff --git a/src/main/java/idk/team/IDKMessageConfig.java b/src/main/java/idk/team/IDKMessageConfig.java index c270ddd..0362d0b 100644 --- a/src/main/java/idk/team/IDKMessageConfig.java +++ b/src/main/java/idk/team/IDKMessageConfig.java @@ -11,7 +11,7 @@ import java.util.Objects; public abstract class IDKMessageConfig { - static int ver = 8; + static int ver = 9; protected IDK idk; private File file; public FileConfiguration config; @@ -26,10 +26,10 @@ public IDKMessageConfig(String file_path, String lang) { } if (file_path != null && !file_path.isEmpty() && fileName != null && !fileName.isEmpty()) { file = new File(file_path, fileName); - String str = "message-ver: 8\n" + - "prefix:&" + + String str = "message-ver: 9\n" + + "prefix: '§1'" + "main:\n" + - " - 'IDK Plugin Version 1.2.5-pre-test'\n" + + " - 'IDK Plugin Version 1.2.7-alpha-3'\n" + " - 'Made by Baymaxawa'\n" + "reload: 'Config reloaded!'\n" + "failed: 'Config reload failed! Check details below!'\n" + @@ -143,7 +143,11 @@ public IDKMessageConfig(String file_path, String lang) { "start_update_idk: 'Checking for updates...'\n" + "update_idk_complete: 'Update Complete! Needs restart to take effort!'\n" + "update_idk_failed_p: 'Update Failed! Check the console for details!'\n" + - "update_idk_failed_c: 'Update Failed!'\n"; + "update_idk_failed_c: 'Update Failed!'\n" + + "plugin_loaded_a: 'Plugin [name] [file] loaded!'\n" + + "error_load: 'Plugin failed to load with some errors...'.\n" + + "plugin_management_not_enable: 'Plugin management function is not enabled in config.'\n" + + "warning_alpha: 'You are currently using a alpha build of IDK plugin!'\n"; if(Objects.equals(lang, "zh")) { if(!file.exists()) { File new_file = new File(file_path, "messages.yml"); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 6b42442..63fcbfa 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,6 +1,6 @@ #config version, do not change it!!! -#default: 3 -config-version: 3 +#default: 4 +config-version: 4 #enable plugin management function #default: true plugin-management: true @@ -18,4 +18,6 @@ download-source: "papermc" #you can download it here: https://github.com/Aruvelut-123/IDK-plugin/raw/master/src/main/resources/messages_zh.yml #or extract it from the jar of plugin. #default: "en" -lang: "en" \ No newline at end of file +lang: "en" +#enable test/beta/alpha build notify +test-notify: true \ No newline at end of file diff --git a/src/main/resources/messages.yml b/src/main/resources/messages.yml index 6a681a9..f0b0523 100644 --- a/src/main/resources/messages.yml +++ b/src/main/resources/messages.yml @@ -1,7 +1,7 @@ -message-ver: 8 -prefix: '&' +message-ver: 9 +prefix: '§1' main: - - 'IDK Plugin Version 1.2.7-alpha-2' + - 'IDK Plugin Version 1.2.7-alpha-3' - 'Made by Baymaxawa' reload: 'Config reloaded!' failed: 'Config reload failed! Check details below!' @@ -10,7 +10,7 @@ survival: 'You"re now in SURVIVAL!' creative: 'You"re now in CREATIVE!' adventure: 'You"re now in ADVENTURE!' spectator: 'You"re now in SPECTATOR!' -ping: 'Your ping is: ' +ping: 'Your ping is: [ping]ms!' no-console: 'Console not avalible right now.' available-plugins: 'Available plugins: ' plugin-disable-error: 'Cannot disable this plugin or already disabled!' @@ -116,3 +116,7 @@ start_update_idk: 'Checking for updates...' update_idk_complete: 'Update Complete! Needs restart to take effort!' update_idk_failed_p: 'Update Failed! Check the console for details!' update_idk_failed_c: 'Update Failed!' +plugin_loaded_a: 'Plugin [name] [file] loaded!' +error_load: 'Plugin failed to load with some errors...'. +plugin_management_not_enable: 'Plugin management function is not enabled in config.' +warning_alpha: 'You are currently using a alpha build of IDK plugin!' diff --git a/src/main/resources/messages_zh.yml b/src/main/resources/messages_zh.yml index 9b974f9..46d00e5 100644 --- a/src/main/resources/messages_zh.yml +++ b/src/main/resources/messages_zh.yml @@ -1,7 +1,7 @@ -message-ver: 8 -prefix: '&' +message-ver: 9 +prefix: '§1' main: - - 'IDK插件,版本1.2.7-alpha-2' + - 'IDK插件,版本1.2.7-alpha-3' - '由Baymaxawa制作' reload: '配置文件已重载!' failed: '配置文件重载失败!请查看下面的详情信息!' @@ -114,3 +114,7 @@ start_update_idk: '正在检查更新...' update_idk_complete: '更新完成!重启后生效!' update_idk_failed_p: '更新失败!查看控制台了解详情!' update_idk_failed_c: '更新失败!' +plugin_loaded_a: '插件 [name] [file] 已成功加载!' +error_load: '插件加载失败:('. +plugin_management_not_enable: '插件管理功能未启用。' +warning_alpha: '你正在使用Alpha版的IDK插件!'