Yum/src/main/java/cn/citycraft/Yum/manager/PluginInfo.java

66 lines
2.0 KiB
Java

package cn.citycraft.Yum.manager;
import java.util.List;
import org.bukkit.command.CommandSender;
import cn.citycraft.PluginHelper.utils.IOUtil;
import cn.citycraft.Yum.manager.RepoSerialization.Plugin;
import cn.citycraft.Yum.manager.RepoSerialization.TagInfo;
public class PluginInfo {
public String branch;
public String name;
public Plugin plugin;
public String pom;
public String repo;
public List<TagInfo> tags;
public String url;
public String getFileName() {
return getFileName(plugin.version);
}
public String getFileName(final String version) {
return String.format("%1$s-%2$s.jar", plugin.artifactId, version);
}
/**
* 获取Maven仓库指定插件的下载地址
*
* @param sender
* - 命令发送者
* @param version
* - 需要更新的版本
* @return 更新地址
*/
public String getMavenUrl(final CommandSender sender, final String version) {
String ver = version;
if (ver == null) {
if (tags != null) {
for (final TagInfo tagInfo : tags) {
if (tagInfo.tag.equalsIgnoreCase("1.7.10")) {
sender.sendMessage("§6版本: §b从Tag标签中获取最新版本...");
ver = tagInfo.version;
break;
}
}
} else if (pom != null && !pom.isEmpty()) {
pom = pom.replace("[name]", name).replace("[branch]", branch);
sender.sendMessage("§6版本: §b尝试从在线POM文件获取最新版本...");
ver = IOUtil.getXMLTag(pom, "version", plugin.version);
if (ver != null) {
sender.sendMessage("§6版本: §a成功获取到最新版本 " + ver + " ...");
}
}
}
if (ver == null) {
ver = plugin.version;
sender.sendMessage("§6版本: §a使用缓存的版本 " + ver + " ...");
}
return String.format(url + (url.endsWith("/") ? "" : "/") + "%1$s/%2$s/%3$s/%2$s-%3$s.jar",
plugin.groupId.replace(".", "/"),
plugin.artifactId,
(ver == null || ver.isEmpty()) ? plugin.version : ver);
}
}