mirror of
				https://e.coding.net/circlecloud/Yum.git
				synced 2025-11-04 05:06:02 +00:00 
			
		
		
		
	@@ -12,7 +12,6 @@ import org.bukkit.plugin.java.JavaPlugin;
 | 
			
		||||
 | 
			
		||||
import cn.citycraft.CommonData.UpdatePlugin;
 | 
			
		||||
import cn.citycraft.PluginHelper.kit.PluginKit;
 | 
			
		||||
import cn.citycraft.PluginHelper.utils.VersionChecker;
 | 
			
		||||
import pw.yumc.Yum.api.YumAPI;
 | 
			
		||||
import pw.yumc.Yum.commands.FileCommand;
 | 
			
		||||
import pw.yumc.Yum.commands.MonitorCommand;
 | 
			
		||||
@@ -27,6 +26,7 @@ import pw.yumc.Yum.managers.ConfigManager;
 | 
			
		||||
import pw.yumc.Yum.managers.MonitorManager;
 | 
			
		||||
import pw.yumc.Yum.managers.NetworkManager;
 | 
			
		||||
import pw.yumc.Yum.runnables.MainThreadCheckTask;
 | 
			
		||||
import pw.yumc.YumCore.statistic.Statistics;
 | 
			
		||||
import pw.yumc.YumCore.update.SubscribeTask;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -63,7 +63,7 @@ public class Yum extends JavaPlugin {
 | 
			
		||||
            initListeners();
 | 
			
		||||
            initRunnable();
 | 
			
		||||
            MonitorManager.init();
 | 
			
		||||
            new VersionChecker(this);
 | 
			
		||||
            new Statistics();
 | 
			
		||||
            new SubscribeTask();
 | 
			
		||||
            YumAPI.updateRepo(Bukkit.getConsoleSender());
 | 
			
		||||
            YumAPI.updateCheck(Bukkit.getConsoleSender());
 | 
			
		||||
 
 | 
			
		||||
@@ -11,8 +11,9 @@ import java.util.Map.Entry;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.Bukkit;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
import org.json.simple.JSONObject;
 | 
			
		||||
import org.json.simple.JSONValue;
 | 
			
		||||
 | 
			
		||||
import cn.citycraft.PluginHelper.jsonresult.JsonHandle;
 | 
			
		||||
import cn.citycraft.PluginHelper.kit.HttpKit;
 | 
			
		||||
import cn.citycraft.PluginHelper.kit.StrKit;
 | 
			
		||||
import pw.yumc.Yum.models.PluginInfo;
 | 
			
		||||
@@ -154,15 +155,7 @@ public class RepositoryManager {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public PackageInfo jsonToPackage(final String json) {
 | 
			
		||||
        try {
 | 
			
		||||
            return JsonHandle.fromJson(json, PackageInfo.class);
 | 
			
		||||
        } catch (final Exception e) {
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Repositories jsonToRepositories(final String json) {
 | 
			
		||||
        return JsonHandle.fromJson(json, Repositories.class);
 | 
			
		||||
        return new PackageInfo((JSONObject) JSONValue.parse(json));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void updatePackage(final CommandSender sender, final PackageInfo pkg) {
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,9 @@ import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Map.Entry;
 | 
			
		||||
 | 
			
		||||
import cn.citycraft.PluginHelper.jsonresult.JsonHandle;
 | 
			
		||||
import org.json.simple.JSONObject;
 | 
			
		||||
import org.json.simple.JSONValue;
 | 
			
		||||
 | 
			
		||||
import cn.citycraft.PluginHelper.kit.PluginKit;
 | 
			
		||||
import cn.citycraft.PluginHelper.utils.IOUtil;
 | 
			
		||||
import pw.yumc.Yum.models.RepoSerialization.Repositories;
 | 
			
		||||
@@ -16,10 +18,6 @@ public class RepoCache implements Serializable {
 | 
			
		||||
    Map<String, PluginInfo> plugins = new HashMap<String, PluginInfo>();
 | 
			
		||||
    Map<String, Repositories> repos = new HashMap<String, Repositories>();
 | 
			
		||||
 | 
			
		||||
    public static RepoCache fromJson(final String json) {
 | 
			
		||||
        return JsonHandle.fromJson(json, RepoCache.class);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void addPlugins(final String name, final PluginInfo info) {
 | 
			
		||||
        plugins.put(name, info);
 | 
			
		||||
    }
 | 
			
		||||
@@ -54,7 +52,7 @@ public class RepoCache implements Serializable {
 | 
			
		||||
            PluginKit.sc("§c源地址获取数据为空 §b" + repo);
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        final Repositories reposes = JsonHandle.fromJson(json, Repositories.class);
 | 
			
		||||
        final Repositories reposes = new Repositories((JSONObject) JSONValue.parse(json));
 | 
			
		||||
        if (reposes == null || reposes.repos.isEmpty()) {
 | 
			
		||||
            PluginKit.sc("§c源地址解析Json为空 §b" + repo);
 | 
			
		||||
            return null;
 | 
			
		||||
@@ -73,9 +71,4 @@ public class RepoCache implements Serializable {
 | 
			
		||||
        repos.remove(repo);
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String toString() {
 | 
			
		||||
        return JsonHandle.toJson(this);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -4,9 +4,14 @@
 | 
			
		||||
package pw.yumc.Yum.models;
 | 
			
		||||
 | 
			
		||||
import java.io.Serializable;
 | 
			
		||||
import java.lang.reflect.InvocationTargetException;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.json.simple.JSONArray;
 | 
			
		||||
import org.json.simple.JSONObject;
 | 
			
		||||
import org.json.simple.JSONValue;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 源仓库序列化类
 | 
			
		||||
 *
 | 
			
		||||
@@ -14,15 +19,41 @@ import java.util.List;
 | 
			
		||||
 * @since 2015年8月31日下午7:41:53
 | 
			
		||||
 */
 | 
			
		||||
public class RepoSerialization {
 | 
			
		||||
    public class PackageInfo implements Serializable {
 | 
			
		||||
    @SuppressWarnings("unchecked")
 | 
			
		||||
    public static <E> List<E> parse(final String json, final Class<?> clazz) {
 | 
			
		||||
        if (json == null || "null".equals(json) || json.isEmpty()) {
 | 
			
		||||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        final List<E> temp = new ArrayList<>();
 | 
			
		||||
        final JSONArray ja = (JSONArray) JSONValue.parse(json);
 | 
			
		||||
        for (int i = 0; i < ja.size(); i++) {
 | 
			
		||||
            try {
 | 
			
		||||
                temp.add((E) clazz.getConstructor(JSONObject.class).newInstance((JSONObject) ja.get(i)));
 | 
			
		||||
            } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
 | 
			
		||||
                e.printStackTrace();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return temp;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static class PackageInfo implements Serializable {
 | 
			
		||||
        public String name;
 | 
			
		||||
        public List<Plugin> plugins = new ArrayList<>();
 | 
			
		||||
        public String pom;
 | 
			
		||||
        public String url;
 | 
			
		||||
        public URLType type;
 | 
			
		||||
 | 
			
		||||
        public PackageInfo(final JSONObject obj) {
 | 
			
		||||
            name = String.valueOf(obj.get("name"));
 | 
			
		||||
            plugins = Plugin.parseList(String.valueOf(obj.get("plugins")));
 | 
			
		||||
            pom = String.valueOf(obj.get("pom"));
 | 
			
		||||
            url = String.valueOf(obj.get("url"));
 | 
			
		||||
            final Object tt = obj.get("type");
 | 
			
		||||
            type = tt == null ? null : URLType.valueOf(tt.toString());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class Plugin implements Serializable {
 | 
			
		||||
    public static class Plugin implements Serializable {
 | 
			
		||||
        public String artifactId;
 | 
			
		||||
        public String branch;
 | 
			
		||||
        public String description;
 | 
			
		||||
@@ -33,28 +64,75 @@ public class RepoSerialization {
 | 
			
		||||
        public List<TagInfo> tags;
 | 
			
		||||
        public String version;
 | 
			
		||||
        public URLType type;
 | 
			
		||||
 | 
			
		||||
        public Plugin(final JSONObject obj) {
 | 
			
		||||
            artifactId = String.valueOf(obj.get("artifactId"));
 | 
			
		||||
            branch = String.valueOf(obj.get("branch"));
 | 
			
		||||
            description = String.valueOf(obj.get("description"));
 | 
			
		||||
            groupId = String.valueOf(obj.get("groupId"));
 | 
			
		||||
            name = String.valueOf(obj.get("name"));
 | 
			
		||||
            url = String.valueOf(obj.get("url"));
 | 
			
		||||
            pom = String.valueOf(obj.get("pom"));
 | 
			
		||||
            tags = TagInfo.parseList(String.valueOf(obj.get("tags")));
 | 
			
		||||
            version = String.valueOf(obj.get("version"));
 | 
			
		||||
            final Object tt = obj.get("type");
 | 
			
		||||
            type = tt == null ? null : URLType.valueOf(tt.toString());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static List<Plugin> parseList(final String json) {
 | 
			
		||||
            return parse(json, Plugin.class);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class Repositories implements Serializable {
 | 
			
		||||
    public static class Repositories implements Serializable {
 | 
			
		||||
        public String name;
 | 
			
		||||
        public List<Repository> repos;
 | 
			
		||||
 | 
			
		||||
        public Repositories(final JSONObject obj) {
 | 
			
		||||
            name = String.valueOf(obj.get("name"));
 | 
			
		||||
            repos = Repository.parseList(String.valueOf(obj.get("repos")));
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class Repository implements Serializable {
 | 
			
		||||
    public static class Repository implements Serializable {
 | 
			
		||||
        public String id;
 | 
			
		||||
        public URLType type;
 | 
			
		||||
        public String url;
 | 
			
		||||
 | 
			
		||||
        public Repository(final JSONObject obj) {
 | 
			
		||||
            id = String.valueOf(obj.get("id"));
 | 
			
		||||
            final Object tt = obj.get("type");
 | 
			
		||||
            type = tt == null ? null : URLType.valueOf(tt.toString());
 | 
			
		||||
            url = String.valueOf(obj.get("url"));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static List<Repository> parseList(final String json) {
 | 
			
		||||
            return parse(json, Repository.class);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public class TagInfo implements Serializable {
 | 
			
		||||
    public static class TagInfo implements Serializable {
 | 
			
		||||
        public String tag;
 | 
			
		||||
        public String version;
 | 
			
		||||
        public URLType type;
 | 
			
		||||
        public String url;
 | 
			
		||||
 | 
			
		||||
        public TagInfo(final JSONObject obj) {
 | 
			
		||||
            tag = String.valueOf(obj.get("tag"));
 | 
			
		||||
            version = String.valueOf(obj.get("version"));
 | 
			
		||||
            final Object tt = obj.get("type");
 | 
			
		||||
            type = tt == null ? null : URLType.valueOf(tt.toString());
 | 
			
		||||
            url = String.valueOf(obj.get("url"));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static List<TagInfo> parseList(final String json) {
 | 
			
		||||
            return parse(json, TagInfo.class);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public enum URLType {
 | 
			
		||||
        Maven,
 | 
			
		||||
        maven,
 | 
			
		||||
        DirectUrl;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user