From 340718446b9f8e6fd2f3cade452a1ab2e8ac6894 Mon Sep 17 00:00:00 2001 From: 502647092 Date: Tue, 19 Jul 2016 00:37:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86BUG?= =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=E4=BB=8EBukkitDev=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- pom.xml | 4 +-- .../java/pw/yumc/Yum/commands/YumCommand.java | 23 ++++++++++++++++ .../Yum/listeners/PluginNetworkListener.java | 2 +- .../java/pw/yumc/Yum/models/BukkitDev.java | 27 +++++++++++++++++-- 4 files changed, 51 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index d6c2ef1..11d90f2 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 pw.yumc Yum - 2.6.3 + 2.6.4 Yum Minecraft 服务器插件管理系统 @@ -60,7 +60,7 @@ &a全新 2.X 版本 更多守护与优化 - &e预告 &6- &e下个版本将加入从&bBukkitDev&e下载和更新...; + &b2.6.4 &6- &e添加从&bBukkitDev&e下载和更新...; &b2.6.3 &6- &a注入操作延时执行 防止部分任务未注册 添加手动注入...; &b2.6.2 &6- &d能耗监控添加忽略列表 &3详见monitor.yml...; &b2.6.1 &6- &c优化能耗监控 命令别名修改为mi(防止与ESS冲突)...; diff --git a/src/main/java/pw/yumc/Yum/commands/YumCommand.java b/src/main/java/pw/yumc/Yum/commands/YumCommand.java index 047af76..de05892 100644 --- a/src/main/java/pw/yumc/Yum/commands/YumCommand.java +++ b/src/main/java/pw/yumc/Yum/commands/YumCommand.java @@ -20,10 +20,14 @@ import cn.citycraft.PluginHelper.commands.HandlerCommand; import cn.citycraft.PluginHelper.commands.HandlerCommands; import cn.citycraft.PluginHelper.commands.InvokeCommandEvent; import cn.citycraft.PluginHelper.commands.InvokeSubCommand; +import cn.citycraft.PluginHelper.jsonresult.JsonHandle; +import cn.citycraft.PluginHelper.utils.IOUtil; import cn.citycraft.PluginHelper.utils.StrKit; import pw.yumc.Yum.Yum; import pw.yumc.Yum.api.YumAPI; import pw.yumc.Yum.managers.ConfigManager; +import pw.yumc.Yum.models.BukkitDev; +import pw.yumc.Yum.models.BukkitDev.Projects; import pw.yumc.Yum.models.RepoSerialization.Repositories; /** @@ -33,6 +37,10 @@ import pw.yumc.Yum.models.RepoSerialization.Repositories; * @author 喵♂呜 */ public class YumCommand implements HandlerCommands, Listener { + private final String prefix = "§6[§bYum §a插件管理§6] "; + private final String not_found_from_bukkit = prefix + "§c未在BukkitDev搜索到 %s 的相关插件!"; + private final String bukkitlistprefix = " §6插件名称 §d发布类型"; + private final String bukkitlist = "§6- §b&s §d%s"; Yum main; public YumCommand(final Yum yum) { @@ -262,6 +270,21 @@ public class YumCommand implements HandlerCommands, Listener { }); } + @HandlerCommand(name = "search", aliases = "s", minimumArguments = 1, description = "从BukkitDev搜索插件", possibleArguments = "插件名称") + public void search(final InvokeCommandEvent e) { + final String pname = e.getArgs()[0]; + final CommandSender sender = e.getSender(); + final BukkitDev bd = JsonHandle.fromJson(IOUtil.getData(String.format(BukkitDev.SEARCH, pname)), BukkitDev.class); + if (bd.projects.isEmpty()) { + sender.sendMessage(String.format(not_found_from_bukkit, pname)); + return; + } + sender.sendMessage(bukkitlistprefix); + for (final Projects p : bd.projects) { + sender.sendMessage(String.format(bukkitlist, p.name, p.stage)); + } + } + /** * 发生实体消息 * diff --git a/src/main/java/pw/yumc/Yum/listeners/PluginNetworkListener.java b/src/main/java/pw/yumc/Yum/listeners/PluginNetworkListener.java index dcfda80..cb18142 100644 --- a/src/main/java/pw/yumc/Yum/listeners/PluginNetworkListener.java +++ b/src/main/java/pw/yumc/Yum/listeners/PluginNetworkListener.java @@ -37,7 +37,6 @@ public class PluginNetworkListener implements Listener { if (urlinfo.startsWith("socket")) { return; } - NetCommand.addNetCount(plugin.getName()); if (ConfigManager.i().getNetworkWhiteURL().contains(e.getUrl().getHost())) { return; } @@ -47,6 +46,7 @@ public class PluginNetworkListener implements Listener { return; } if (plugin != null) { + NetCommand.addNetCount(plugin.getName()); if (ConfigManager.i().getNetworkBlackList().contains(plugin.getName())) { breakNetwork(e); return; diff --git a/src/main/java/pw/yumc/Yum/models/BukkitDev.java b/src/main/java/pw/yumc/Yum/models/BukkitDev.java index ae0f883..ee16819 100644 --- a/src/main/java/pw/yumc/Yum/models/BukkitDev.java +++ b/src/main/java/pw/yumc/Yum/models/BukkitDev.java @@ -4,6 +4,29 @@ import java.io.Serializable; import java.util.List; public class BukkitDev implements Serializable { - public String name; - public List pil; + public volatile static String HOST = "https://api.curseforge.com"; + public volatile static String MODULE = "/servermods"; + public volatile static String SEARCH = HOST + MODULE + "/projects?search=%s"; + public volatile static String PLUGIN = HOST + MODULE + "/files?projectIds=%s"; + + public List projects; + public List files; + + public static class Files { + public int projectId; + public String name; + public String fileUrl; + public String fileName; + public String downloadUrl; + public String gameVersion; + public String md5; + public String releaseType; + } + + public static class Projects { + public int id; + public String name; + public String slug; + public String stage; + } }