mirror of
https://e.coding.net/circlecloud/Yum.git
synced 2024-11-22 14:28:46 +00:00
去除离线缓存 修复版本更新模块...
Signed-off-by: 502647092 <jtb1@163.com>
This commit is contained in:
parent
d1fd6daa9a
commit
5f69c0abbd
4
pom.xml
4
pom.xml
@ -3,7 +3,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>cn.citycraft</groupId>
|
<groupId>cn.citycraft</groupId>
|
||||||
<artifactId>Yum</artifactId>
|
<artifactId>Yum</artifactId>
|
||||||
<version>1.9.6</version>
|
<version>1.9.7</version>
|
||||||
<name>Yum</name>
|
<name>Yum</name>
|
||||||
<description>Minecraft 服务器插件管理系统</description>
|
<description>Minecraft 服务器插件管理系统</description>
|
||||||
<build>
|
<build>
|
||||||
@ -55,7 +55,7 @@
|
|||||||
</build>
|
</build>
|
||||||
<properties>
|
<properties>
|
||||||
<jenkins.url>http://ci.citycraft.cn:8080</jenkins.url>
|
<jenkins.url>http://ci.citycraft.cn:8080</jenkins.url>
|
||||||
<update.description>&c修复没有Gson的服务端仓库管理出错的问题...</update.description>
|
<update.description>&c去除离线缓存 修复版本更新模块...</update.description>
|
||||||
<env.BUILD_NUMBER>Debug</env.BUILD_NUMBER>
|
<env.BUILD_NUMBER>Debug</env.BUILD_NUMBER>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
</properties>
|
</properties>
|
||||||
|
@ -14,24 +14,19 @@ import cn.citycraft.Yum.file.commands.FileCommand;
|
|||||||
/**
|
/**
|
||||||
* MC插件仓库
|
* MC插件仓库
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月21日下午5:14:39
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月21日下午5:14:39
|
||||||
*/
|
*/
|
||||||
public class Yum extends JavaPlugin {
|
public class Yum extends JavaPlugin {
|
||||||
public FileConfig config;
|
public FileConfig config;
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDisable() {
|
|
||||||
YumAPI.getRepo().cacheToJson(config);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
new YumAPI(this);
|
new YumAPI(this);
|
||||||
new YumCommand(this);
|
new YumCommand(this);
|
||||||
new FileCommand(this);
|
new FileCommand(this);
|
||||||
YumAPI.getRepo().jsonToCache(config);
|
|
||||||
YumAPI.updaterepo();
|
|
||||||
new VersionChecker(this);
|
new VersionChecker(this);
|
||||||
|
YumAPI.updaterepo();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -20,8 +20,8 @@ import cn.citycraft.Yum.manager.RepositoryManager;
|
|||||||
/**
|
/**
|
||||||
* Yum管理中心
|
* Yum管理中心
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓
|
* @author 喵♂呜
|
||||||
* 2015年9月1日上午10:59:47
|
* @since 2015年9月1日上午10:59:47
|
||||||
*/
|
*/
|
||||||
public class YumAPI {
|
public class YumAPI {
|
||||||
private static DownloadManager download;
|
private static DownloadManager download;
|
||||||
@ -298,7 +298,9 @@ public class YumAPI {
|
|||||||
public static boolean updatefromyum(final CommandSender sender, final Plugin plugin, final String version, final boolean oneKeyUpdate) {
|
public static boolean updatefromyum(final CommandSender sender, final Plugin plugin, final String version, final boolean oneKeyUpdate) {
|
||||||
final PluginInfo pi = repo.getPlugin(plugin.getName());
|
final PluginInfo pi = repo.getPlugin(plugin.getName());
|
||||||
if (pi != null) {
|
if (pi != null) {
|
||||||
if (download.run(sender, pi.getUrl(sender, version), new File(Bukkit.getUpdateFolderFile(), plugman.getPluginFile(plugin).getName()))) {
|
final File pFile = new File(Bukkit.getUpdateFolderFile(), plugman.getPluginFile(plugin).getName());
|
||||||
|
if (download.run(sender, pi.getUrl(sender, version), pFile)) {
|
||||||
|
|
||||||
if (!oneKeyUpdate) {
|
if (!oneKeyUpdate) {
|
||||||
sender.sendMessage("§6更新: §e已下载 " + plugin.getName() + " 插件到服务器更新文件夹");
|
sender.sendMessage("§6更新: §e已下载 " + plugin.getName() + " 插件到服务器更新文件夹");
|
||||||
sender.sendMessage("§6更新: §e插件将在重启后自动更新(或使用§b/yum upgrade§e直接升级)!");
|
sender.sendMessage("§6更新: §e插件将在重启后自动更新(或使用§b/yum upgrade§e直接升级)!");
|
||||||
|
@ -16,7 +16,8 @@ import cn.citycraft.Yum.api.YumAPI;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandDelete extends BaseCommand {
|
public class CommandDelete extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -16,7 +16,8 @@ import cn.citycraft.Yum.api.YumAPI;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandFullDelete extends BaseCommand {
|
public class CommandFullDelete extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -23,7 +23,8 @@ import cn.citycraft.Yum.api.YumAPI;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandInfo extends BaseCommand {
|
public class CommandInfo extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -20,7 +20,8 @@ import cn.citycraft.Yum.api.YumAPI;
|
|||||||
/**
|
/**
|
||||||
* 插件安装命令类
|
* 插件安装命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandInstall extends BaseCommand {
|
public class CommandInstall extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -16,7 +16,8 @@ import cn.citycraft.Yum.api.YumAPI;
|
|||||||
/**
|
/**
|
||||||
* 插件查看命令类
|
* 插件查看命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandList extends BaseCommand {
|
public class CommandList extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -16,7 +16,8 @@ import cn.citycraft.Yum.api.YumAPI;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandLoad extends BaseCommand {
|
public class CommandLoad extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -16,7 +16,8 @@ import cn.citycraft.Yum.api.YumAPI;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandReload extends BaseCommand {
|
public class CommandReload extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -20,7 +20,8 @@ import cn.citycraft.Yum.manager.RepoSerialization.Repositories;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandRepo extends BaseCommand {
|
public class CommandRepo extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -16,7 +16,8 @@ import cn.citycraft.Yum.api.YumAPI;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandUnload extends BaseCommand {
|
public class CommandUnload extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -14,7 +14,8 @@ import cn.citycraft.Yum.Yum;
|
|||||||
import cn.citycraft.Yum.api.YumAPI;
|
import cn.citycraft.Yum.api.YumAPI;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandUpdate extends BaseCommand {
|
public class CommandUpdate extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
@ -22,13 +23,20 @@ public class CommandUpdate extends BaseCommand {
|
|||||||
public CommandUpdate(final Yum main) {
|
public CommandUpdate(final Yum main) {
|
||||||
super("u");
|
super("u");
|
||||||
this.main = main;
|
this.main = main;
|
||||||
setMinimumArguments(1);
|
setMinimumArguments(0);
|
||||||
setDescription("更新插件");
|
setDescription("更新插件或缓存");
|
||||||
setPossibleArguments("<插件名称> [插件版本]");
|
setPossibleArguments("[插件名称] [插件版本]");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
|
public void execute(final CommandSender sender, final Command command, final String label, final String[] args) throws CommandException {
|
||||||
|
switch (args.length) {
|
||||||
|
case 0:
|
||||||
|
YumAPI.getRepo().updateRepositories(sender);
|
||||||
|
sender.sendMessage("§6仓库: §a仓库缓存数据已更新!");
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
final String pluginname = args[0];
|
final String pluginname = args[0];
|
||||||
final Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin(pluginname);
|
final Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin(pluginname);
|
||||||
sender.sendMessage("§a开始更新插件: " + pluginname);
|
sender.sendMessage("§a开始更新插件: " + pluginname);
|
||||||
@ -46,5 +54,9 @@ public class CommandUpdate extends BaseCommand {
|
|||||||
} else {
|
} else {
|
||||||
sender.sendMessage("§c插件" + pluginname + "未安装或已卸载 需要安装请使用/yum install " + pluginname + "!");
|
sender.sendMessage("§c插件" + pluginname + "未安装或已卸载 需要安装请使用/yum install " + pluginname + "!");
|
||||||
}
|
}
|
||||||
};
|
break;
|
||||||
|
default:
|
||||||
|
sendHelp(sender, label);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,8 @@ import cn.citycraft.Yum.Yum;
|
|||||||
import cn.citycraft.Yum.api.YumAPI;
|
import cn.citycraft.Yum.api.YumAPI;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandUpdateAll extends BaseCommand {
|
public class CommandUpdateAll extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -14,7 +14,8 @@ import cn.citycraft.Yum.Yum;
|
|||||||
import cn.citycraft.Yum.api.YumAPI;
|
import cn.citycraft.Yum.api.YumAPI;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandUpgrade extends BaseCommand {
|
public class CommandUpgrade extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -3,6 +3,12 @@ package cn.citycraft.Yum.commands;
|
|||||||
import cn.citycraft.PluginHelper.commands.HandlerSubCommand;
|
import cn.citycraft.PluginHelper.commands.HandlerSubCommand;
|
||||||
import cn.citycraft.Yum.Yum;
|
import cn.citycraft.Yum.Yum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Yum命令基类
|
||||||
|
*
|
||||||
|
* @since 2016年1月9日 上午10:02:24
|
||||||
|
* @author 喵♂呜
|
||||||
|
*/
|
||||||
public class YumCommand {
|
public class YumCommand {
|
||||||
public YumCommand(final Yum yum) {
|
public YumCommand(final Yum yum) {
|
||||||
final HandlerSubCommand cmdhandler = new HandlerSubCommand(yum, "yum");
|
final HandlerSubCommand cmdhandler = new HandlerSubCommand(yum, "yum");
|
||||||
|
@ -15,7 +15,8 @@ import cn.citycraft.Yum.Yum;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandDelete extends BaseCommand {
|
public class CommandDelete extends BaseCommand {
|
||||||
public CommandDelete(final Yum main) {
|
public CommandDelete(final Yum main) {
|
||||||
|
@ -18,7 +18,8 @@ import cn.citycraft.Yum.manager.DownloadManager;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandDownLoad extends BaseCommand {
|
public class CommandDownLoad extends BaseCommand {
|
||||||
Yum main;
|
Yum main;
|
||||||
|
@ -15,7 +15,8 @@ import cn.citycraft.Yum.Yum;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandLs extends BaseCommand {
|
public class CommandLs extends BaseCommand {
|
||||||
|
|
||||||
|
@ -15,7 +15,8 @@ import cn.citycraft.Yum.Yum;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandRename extends BaseCommand {
|
public class CommandRename extends BaseCommand {
|
||||||
public CommandRename(final Yum main) {
|
public CommandRename(final Yum main) {
|
||||||
|
@ -16,7 +16,8 @@ import cn.citycraft.Yum.Yum;
|
|||||||
/**
|
/**
|
||||||
* 插件删除命令类
|
* 插件删除命令类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月12日下午2:04:05
|
||||||
*/
|
*/
|
||||||
public class CommandRm extends BaseCommand {
|
public class CommandRm extends BaseCommand {
|
||||||
Yum plugin;
|
Yum plugin;
|
||||||
|
@ -3,6 +3,12 @@ package cn.citycraft.Yum.file.commands;
|
|||||||
import cn.citycraft.PluginHelper.commands.HandlerSubCommand;
|
import cn.citycraft.PluginHelper.commands.HandlerSubCommand;
|
||||||
import cn.citycraft.Yum.Yum;
|
import cn.citycraft.Yum.Yum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* File命令基类
|
||||||
|
*
|
||||||
|
* @since 2016年1月9日 上午10:02:39
|
||||||
|
* @author 喵♂呜
|
||||||
|
*/
|
||||||
public class FileCommand {
|
public class FileCommand {
|
||||||
public FileCommand(final Yum yum) {
|
public FileCommand(final Yum yum) {
|
||||||
final HandlerSubCommand cmdhandler = new HandlerSubCommand(yum, "file");
|
final HandlerSubCommand cmdhandler = new HandlerSubCommand(yum, "file");
|
||||||
|
@ -9,12 +9,13 @@ import java.net.URL;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.bukkit.plugin.PluginDescriptionFile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 下载管理类
|
* 下载管理类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓
|
* @author 喵♂呜
|
||||||
* 2015年8月21日下午6:08:09
|
* @since 2015年8月21日下午6:08:09
|
||||||
*/
|
*/
|
||||||
public class DownloadManager {
|
public class DownloadManager {
|
||||||
Plugin plugin;
|
Plugin plugin;
|
||||||
@ -134,7 +135,14 @@ public class DownloadManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sender.sendMessage("§6文件: §a " + file.getName() + " 下载完成!");
|
String pVer = null;
|
||||||
|
try {
|
||||||
|
final PluginDescriptionFile desc = plugin.getPluginLoader().getPluginDescription(file);
|
||||||
|
pVer = desc.getVersion();
|
||||||
|
} catch (final Exception e) {
|
||||||
|
pVer = "";
|
||||||
|
}
|
||||||
|
sender.sendMessage("§6" + (pVer.isEmpty() ? "文件" : "插件") + ": §b" + file.getName() + (pVer.isEmpty() ? "" : " 版本 §e" + pVer) + " §a下载完成!");
|
||||||
return true;
|
return true;
|
||||||
} catch (final Exception ex) {
|
} catch (final Exception ex) {
|
||||||
sender.sendMessage("§6异常: §c" + ex.getMessage());
|
sender.sendMessage("§6异常: §c" + ex.getMessage());
|
||||||
|
@ -100,7 +100,7 @@ public class PluginInfo {
|
|||||||
} else if (pom != null && !pom.isEmpty()) {
|
} else if (pom != null && !pom.isEmpty()) {
|
||||||
pom = pom.replace("[name]", name).replace("[branch]", branch);
|
pom = pom.replace("[name]", name).replace("[branch]", branch);
|
||||||
sender.sendMessage("§6版本: §b尝试从在线POM文件获取最新版本...");
|
sender.sendMessage("§6版本: §b尝试从在线POM文件获取最新版本...");
|
||||||
ver = IOUtil.getXMLTag(pom, "version", plugin.version);
|
ver = IOUtil.getXMLTag(pom, "version", null);
|
||||||
if (ver != null) {
|
if (ver != null) {
|
||||||
sender.sendMessage("§6版本: §a成功获取到最新版本 §e" + ver + " §a...");
|
sender.sendMessage("§6版本: §a成功获取到最新版本 §e" + ver + " §a...");
|
||||||
}
|
}
|
||||||
@ -108,7 +108,7 @@ public class PluginInfo {
|
|||||||
}
|
}
|
||||||
if (ver == null) {
|
if (ver == null) {
|
||||||
ver = plugin.version;
|
ver = plugin.version;
|
||||||
sender.sendMessage("§6版本: §a使用缓存的版本 §e" + ver + " §a...");
|
sender.sendMessage("§6版本: §d使用缓存的版本 §e" + ver + " §a...");
|
||||||
}
|
}
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case DirectUrl:
|
case DirectUrl:
|
||||||
|
@ -37,7 +37,8 @@ import cn.citycraft.PluginHelper.utils.StringUtil;
|
|||||||
/**
|
/**
|
||||||
* 插件管理类
|
* 插件管理类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓 2015年8月21日下午7:03:26
|
* @author 喵♂呜
|
||||||
|
* @since 2015年8月21日下午7:03:26
|
||||||
*/
|
*/
|
||||||
public class PluginsManager {
|
public class PluginsManager {
|
||||||
private final Set<String> ignoreList = new HashSet<>();
|
private final Set<String> ignoreList = new HashSet<>();
|
||||||
|
@ -6,11 +6,13 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import cn.citycraft.PluginHelper.PluginHelperLogger;
|
||||||
import cn.citycraft.PluginHelper.jsonresult.JsonHandle;
|
import cn.citycraft.PluginHelper.jsonresult.JsonHandle;
|
||||||
import cn.citycraft.PluginHelper.utils.IOUtil;
|
import cn.citycraft.PluginHelper.utils.IOUtil;
|
||||||
import cn.citycraft.Yum.manager.RepoSerialization.Repositories;
|
import cn.citycraft.Yum.manager.RepoSerialization.Repositories;
|
||||||
|
|
||||||
public class RepoCache {
|
public class RepoCache {
|
||||||
|
PluginHelperLogger logger = PluginHelperLogger.getLogger();
|
||||||
Map<String, PluginInfo> plugins = new HashMap<String, PluginInfo>();
|
Map<String, PluginInfo> plugins = new HashMap<String, PluginInfo>();
|
||||||
Map<String, Repositories> repos = new HashMap<String, Repositories>();
|
Map<String, Repositories> repos = new HashMap<String, Repositories>();
|
||||||
|
|
||||||
@ -24,6 +26,7 @@ public class RepoCache {
|
|||||||
|
|
||||||
public Repositories addRepo(final String repo) {
|
public Repositories addRepo(final String repo) {
|
||||||
if (repos.containsKey(repo) || repo.isEmpty()) {
|
if (repos.containsKey(repo) || repo.isEmpty()) {
|
||||||
|
logger.debug("源地址为空或已存在 " + repo);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final Repositories reposes = getRepo(repo);
|
final Repositories reposes = getRepo(repo);
|
||||||
@ -49,10 +52,12 @@ public class RepoCache {
|
|||||||
public Repositories getRepo(final String repo) {
|
public Repositories getRepo(final String repo) {
|
||||||
final String json = IOUtil.getData(repo);
|
final String json = IOUtil.getData(repo);
|
||||||
if (json == null || json.isEmpty()) {
|
if (json == null || json.isEmpty()) {
|
||||||
|
logger.debug("源地址获取数据为空 " + repo);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final Repositories reposes = JsonHandle.fromJson(json, Repositories.class);
|
final Repositories reposes = JsonHandle.fromJson(json, Repositories.class);
|
||||||
if (reposes == null || reposes.repos.isEmpty()) {
|
if (reposes == null || reposes.repos.isEmpty()) {
|
||||||
|
logger.debug("源地址解析Json为空 " + repo);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return reposes;
|
return reposes;
|
||||||
|
@ -9,8 +9,8 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* 源仓库序列化类
|
* 源仓库序列化类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓
|
* @author 喵♂呜
|
||||||
* 2015年8月31日下午7:41:53
|
* @since 2015年8月31日下午7:41:53
|
||||||
*/
|
*/
|
||||||
public class RepoSerialization {
|
public class RepoSerialization {
|
||||||
public class PackageInfo {
|
public class PackageInfo {
|
||||||
|
@ -11,9 +11,8 @@ import java.util.Map.Entry;
|
|||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
|
||||||
|
|
||||||
import cn.citycraft.PluginHelper.config.FileConfig;
|
import cn.citycraft.PluginHelper.PluginHelperLogger;
|
||||||
import cn.citycraft.PluginHelper.jsonresult.JsonHandle;
|
import cn.citycraft.PluginHelper.jsonresult.JsonHandle;
|
||||||
import cn.citycraft.PluginHelper.utils.IOUtil;
|
import cn.citycraft.PluginHelper.utils.IOUtil;
|
||||||
import cn.citycraft.PluginHelper.utils.StringUtil;
|
import cn.citycraft.PluginHelper.utils.StringUtil;
|
||||||
@ -27,9 +26,11 @@ import cn.citycraft.Yum.manager.RepoSerialization.URLType;
|
|||||||
/**
|
/**
|
||||||
* 仓库管理类
|
* 仓库管理类
|
||||||
*
|
*
|
||||||
* @author 蒋天蓓
|
* @author 喵♂呜
|
||||||
|
* @since 2016年1月9日 上午10:02:57
|
||||||
*/
|
*/
|
||||||
public class RepositoryManager {
|
public class RepositoryManager {
|
||||||
|
PluginHelperLogger logger = PluginHelperLogger.getLogger();
|
||||||
org.bukkit.plugin.Plugin main;
|
org.bukkit.plugin.Plugin main;
|
||||||
RepoCache repocache;
|
RepoCache repocache;
|
||||||
|
|
||||||
@ -60,11 +61,6 @@ public class RepositoryManager {
|
|||||||
return updateRepositories(sender, repo);
|
return updateRepositories(sender, repo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cacheToJson(final FileConfig config) {
|
|
||||||
config.set("reposcache", repocache.toString());
|
|
||||||
config.save();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void clean() {
|
public void clean() {
|
||||||
repocache.getPlugins().clear();
|
repocache.getPlugins().clear();
|
||||||
}
|
}
|
||||||
@ -157,18 +153,6 @@ public class RepositoryManager {
|
|||||||
return updateRepositories(sender, repo);
|
return updateRepositories(sender, repo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean jsonToCache(final FileConfiguration config) {
|
|
||||||
try {
|
|
||||||
final String reposcache = config.getString("reposcache");
|
|
||||||
if (reposcache != null && !reposcache.isEmpty()) {
|
|
||||||
repocache = RepoCache.fromJson(reposcache);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} catch (final Exception e) {
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PackageInfo jsonToPackage(final String json) {
|
public PackageInfo jsonToPackage(final String json) {
|
||||||
try {
|
try {
|
||||||
return JsonHandle.fromJson(json, PackageInfo.class);
|
return JsonHandle.fromJson(json, PackageInfo.class);
|
||||||
@ -221,6 +205,7 @@ public class RepositoryManager {
|
|||||||
sender = Bukkit.getConsoleSender();
|
sender = Bukkit.getConsoleSender();
|
||||||
}
|
}
|
||||||
if (repocenter == null || repocenter.repos.isEmpty()) {
|
if (repocenter == null || repocenter.repos.isEmpty()) {
|
||||||
|
logger.debug("源地址为Null或源列表为空!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
for (final Repository repo : repocenter.repos) {
|
for (final Repository repo : repocenter.repos) {
|
||||||
|
Loading…
Reference in New Issue
Block a user