mirror of
				https://e.coding.net/circlecloud/YumCore.git
				synced 2025-11-03 23:06:02 +00:00 
			
		
		
		
	@@ -23,10 +23,22 @@ import pw.yumc.YumCore.annotation.NotProguard;
 | 
				
			|||||||
public class Log {
 | 
					public class Log {
 | 
				
			||||||
    private static boolean fullDebug = new File(String.format("plugins%1$sYumCore%1$sfulldebug", File.separatorChar)).exists();
 | 
					    private static boolean fullDebug = new File(String.format("plugins%1$sYumCore%1$sfulldebug", File.separatorChar)).exists();
 | 
				
			||||||
    private static boolean globalDebug = new File(String.format("plugins%1$sYumCore%1$sdebug", File.separatorChar)).exists();
 | 
					    private static boolean globalDebug = new File(String.format("plugins%1$sYumCore%1$sdebug", File.separatorChar)).exists();
 | 
				
			||||||
    private static boolean debug = globalDebug || P.getDescription().getVersion().contains("DEV");
 | 
					    private static boolean debug;
 | 
				
			||||||
    private static Logger logger = P.instance.getLogger();
 | 
					    private static Logger logger;
 | 
				
			||||||
    private static CommandSender console = Bukkit.getConsoleSender();
 | 
					    private static CommandSender console;
 | 
				
			||||||
    private static String prefix = String.format("§6[§b%s§6]§r ", P.instance.getName());
 | 
					    private static String prefix;
 | 
				
			||||||
 | 
					    static {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            debug = globalDebug || P.getDescription().getVersion().contains("DEV");
 | 
				
			||||||
 | 
					            logger = P.instance.getLogger();
 | 
				
			||||||
 | 
					            console = Bukkit.getConsoleSender();
 | 
				
			||||||
 | 
					            prefix = String.format("§6[§b%s§6]§r ", P.instance.getName());
 | 
				
			||||||
 | 
					        } catch (Throwable ex) {
 | 
				
			||||||
 | 
					            logger = Logger.getLogger("YumCore");
 | 
				
			||||||
 | 
					            debug = true;
 | 
				
			||||||
 | 
					            d(ex);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private Log() {
 | 
					    private Log() {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,7 +44,6 @@ public class SubscribeTask implements Runnable, Listener {
 | 
				
			|||||||
     * 插件实例
 | 
					     * 插件实例
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private static JavaPlugin instance;
 | 
					    private static JavaPlugin instance;
 | 
				
			||||||
    private static String version;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    static {
 | 
					    static {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
@@ -52,7 +51,6 @@ public class SubscribeTask implements Runnable, Listener {
 | 
				
			|||||||
            Field field = pluginClassLoader.getClass().getDeclaredField("plugin");
 | 
					            Field field = pluginClassLoader.getClass().getDeclaredField("plugin");
 | 
				
			||||||
            field.setAccessible(true);
 | 
					            field.setAccessible(true);
 | 
				
			||||||
            instance = (JavaPlugin) field.get(pluginClassLoader);
 | 
					            instance = (JavaPlugin) field.get(pluginClassLoader);
 | 
				
			||||||
            version = instance.getDescription().getVersion();
 | 
					 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            Log.d(e);
 | 
					            Log.d(e);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -114,7 +112,7 @@ public class SubscribeTask implements Runnable, Listener {
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    public SubscribeTask(String branch, boolean isSecret, UpdateType type) {
 | 
					    public SubscribeTask(String branch, boolean isSecret, UpdateType type) {
 | 
				
			||||||
        updateFile = new UpdateFile(instance);
 | 
					        updateFile = new UpdateFile(instance);
 | 
				
			||||||
        versionInfo = new VersionInfo(branch, isSecret);
 | 
					        versionInfo = new VersionInfo(instance, branch, isSecret);
 | 
				
			||||||
        updateType = type;
 | 
					        updateType = type;
 | 
				
			||||||
        if (instance.isEnabled()) {
 | 
					        if (instance.isEnabled()) {
 | 
				
			||||||
            Bukkit.getPluginManager().registerEvents(this, instance);
 | 
					            Bukkit.getPluginManager().registerEvents(this, instance);
 | 
				
			||||||
@@ -150,7 +148,7 @@ public class SubscribeTask implements Runnable, Listener {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                updateFile.update(updateType.getDownloadUrl(instance, result));
 | 
					                updateFile.update(updateType.getDownloadUrl(instance, result));
 | 
				
			||||||
                Log.d(Encrypt.decode("嘊⚲哀嘖⚶哅嘣⚩咖嗕♧哏嗕⚸咁嘨♢咰嘤♢哒嗚⚵呼嗣♰咊"), instance.getName(), version.split("-")[0], result);
 | 
					                Log.d(Encrypt.decode("嘊⚲哀嘖⚶哅嘣⚩咖嗕♧哏嗕⚸咁嘨♢咰嘤♢哒嗚⚵呼嗣♰咊"), instance.getName(), versionInfo.getVersion(), result);
 | 
				
			||||||
                versionInfo.notify(Bukkit.getConsoleSender());
 | 
					                versionInfo.notify(Bukkit.getConsoleSender());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
@@ -245,6 +243,7 @@ public class SubscribeTask implements Runnable, Listener {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static class VersionInfo {
 | 
					    public static class VersionInfo {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /**
 | 
					        /**
 | 
				
			||||||
         * 直链POM
 | 
					         * 直链POM
 | 
				
			||||||
         */
 | 
					         */
 | 
				
			||||||
@@ -256,18 +255,34 @@ public class SubscribeTask implements Runnable, Listener {
 | 
				
			|||||||
        private String pom = Encrypt.decode("嘝⚶哐嘥♼咋嗤⚥哅嗣⚻哑嘢⚥咊嘥⚹咋嘟⚱咾嗤♧哏嗤⚮咽嘨⚶咯嘪⚥咿嘚⚵哏嘛⚷哈嗷⚷哅嘡⚦咋嘖⚴哐嘞⚨咽嘘⚶咋嘥⚱哉嗣⚺哉嘡");
 | 
					        private String pom = Encrypt.decode("嘝⚶哐嘥♼咋嗤⚥哅嗣⚻哑嘢⚥咊嘥⚹咋嘟⚱咾嗤♧哏嗤⚮咽嘨⚶咯嘪⚥咿嘚⚵哏嘛⚷哈嗷⚷哅嘡⚦咋嘖⚴哐嘞⚨咽嘘⚶咋嘥⚱哉嗣⚺哉嘡");
 | 
				
			||||||
        // private static String pom = "http://ci.yumc.pw/job/%s/lastSuccessfulBuild/artifact/pom.xml";
 | 
					        // private static String pom = "http://ci.yumc.pw/job/%s/lastSuccessfulBuild/artifact/pom.xml";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /**
 | 
				
			||||||
 | 
					         * 插件名称
 | 
				
			||||||
 | 
					         */
 | 
				
			||||||
 | 
					        private final String name;
 | 
				
			||||||
 | 
					        /**
 | 
				
			||||||
 | 
					         * 插件版本
 | 
				
			||||||
 | 
					         */
 | 
				
			||||||
 | 
					        private final String version;
 | 
				
			||||||
        /**
 | 
					        /**
 | 
				
			||||||
         * 插件信息地址
 | 
					         * 插件信息地址
 | 
				
			||||||
         */
 | 
					         */
 | 
				
			||||||
        private String info;
 | 
					        private String info;
 | 
				
			||||||
 | 
					 | 
				
			||||||
        /**
 | 
					        /**
 | 
				
			||||||
         * POM文件文档
 | 
					         * POM文件文档
 | 
				
			||||||
         */
 | 
					         */
 | 
				
			||||||
        private Document document;
 | 
					        private Document document;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public VersionInfo(String branch, boolean isSecret) {
 | 
					        public VersionInfo(Plugin plugin, String branch, boolean isSecret) {
 | 
				
			||||||
            info = String.format(isSecret ? pom : url, instance.getName(), branch);
 | 
					            this.name = plugin.getName();
 | 
				
			||||||
 | 
					            this.version = plugin.getDescription().getVersion().split("-")[0];
 | 
				
			||||||
 | 
					            this.info = String.format(isSecret ? pom : url, name, branch);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /**
 | 
				
			||||||
 | 
					         * @return 插件版本
 | 
				
			||||||
 | 
					         */
 | 
				
			||||||
 | 
					        public String getVersion() {
 | 
				
			||||||
 | 
					            return version;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /**
 | 
					        /**
 | 
				
			||||||
@@ -331,7 +346,7 @@ public class SubscribeTask implements Runnable, Listener {
 | 
				
			|||||||
         *            命令接受者
 | 
					         *            命令接受者
 | 
				
			||||||
         */
 | 
					         */
 | 
				
			||||||
        public void notify(CommandSender sender) {
 | 
					        public void notify(CommandSender sender) {
 | 
				
			||||||
            Log.sender(sender, "§a插件更新: §b" + instance.getName() + " §a已更新到最新版本 §bv" + getLastestVersion());
 | 
					            Log.sender(sender, "§a插件更新: §b" + name + " §a已更新到最新版本 §bv" + getLastestVersion());
 | 
				
			||||||
            Log.sender(sender, "§e版本简介: §a" + getUpdateDescription());
 | 
					            Log.sender(sender, "§e版本简介: §a" + getUpdateDescription());
 | 
				
			||||||
            final String[] changes = getUpdateChanges();
 | 
					            final String[] changes = getUpdateChanges();
 | 
				
			||||||
            if (changes.length != 0) {
 | 
					            if (changes.length != 0) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										146
									
								
								src/test/java/pw/yumc/YumCore/plugin/FakePlugin.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								src/test/java/pw/yumc/YumCore/plugin/FakePlugin.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,146 @@
 | 
				
			|||||||
 | 
					package pw.yumc.YumCore.plugin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.File;
 | 
				
			||||||
 | 
					import java.io.InputStream;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.logging.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.bukkit.Server;
 | 
				
			||||||
 | 
					import org.bukkit.command.Command;
 | 
				
			||||||
 | 
					import org.bukkit.command.CommandSender;
 | 
				
			||||||
 | 
					import org.bukkit.configuration.file.FileConfiguration;
 | 
				
			||||||
 | 
					import org.bukkit.generator.ChunkGenerator;
 | 
				
			||||||
 | 
					import org.bukkit.plugin.Plugin;
 | 
				
			||||||
 | 
					import org.bukkit.plugin.PluginDescriptionFile;
 | 
				
			||||||
 | 
					import org.bukkit.plugin.PluginLoader;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.avaje.ebean.EbeanServer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 喵♂呜
 | 
				
			||||||
 | 
					 * @since 2017/6/2
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class FakePlugin implements Plugin {
 | 
				
			||||||
 | 
					    private String name;
 | 
				
			||||||
 | 
					    private String version;
 | 
				
			||||||
 | 
					    private String mainclass;
 | 
				
			||||||
 | 
					    private PluginDescriptionFile descriptionFile;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public FakePlugin(String name, String version) {
 | 
				
			||||||
 | 
					        super();
 | 
				
			||||||
 | 
					        this.name = name;
 | 
				
			||||||
 | 
					        this.version = version;
 | 
				
			||||||
 | 
					        this.mainclass = getClass().getName();
 | 
				
			||||||
 | 
					        this.descriptionFile = new PluginDescriptionFile(name, version, mainclass);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public File getDataFolder() {
 | 
				
			||||||
 | 
					        return new File(name);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public PluginDescriptionFile getDescription() {
 | 
				
			||||||
 | 
					        return descriptionFile;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public FileConfiguration getConfig() {
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public InputStream getResource(String s) {
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void saveConfig() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void saveDefaultConfig() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void saveResource(String s, boolean b) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void reloadConfig() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public PluginLoader getPluginLoader() {
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Server getServer() {
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean isEnabled() {
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void onDisable() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void onLoad() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void onEnable() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean isNaggable() {
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void setNaggable(boolean b) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public EbeanServer getDatabase() {
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public ChunkGenerator getDefaultWorldGenerator(String s, String s1) {
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Logger getLogger() {
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public String getName() {
 | 
				
			||||||
 | 
					        return name;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<String> onTabComplete(CommandSender commandSender, Command command, String s, String[] strings) {
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										32
									
								
								src/test/java/pw/yumc/YumCore/update/SubscribeTaskTest.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								src/test/java/pw/yumc/YumCore/update/SubscribeTaskTest.java
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					package pw.yumc.YumCore.update;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.util.logging.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.xml.parsers.ParserConfigurationException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.bukkit.plugin.Plugin;
 | 
				
			||||||
 | 
					import org.junit.Test;
 | 
				
			||||||
 | 
					import org.xml.sax.SAXException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.bukkit.Log;
 | 
				
			||||||
 | 
					import pw.yumc.YumCore.plugin.FakePlugin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author 喵♂呜
 | 
				
			||||||
 | 
					 * @since 2017/6/1
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class SubscribeTaskTest {
 | 
				
			||||||
 | 
					    private Plugin plugin = new FakePlugin("YumCore", "1.0");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void test() throws IOException, SAXException, ParserConfigurationException {
 | 
				
			||||||
 | 
					        SubscribeTask.VersionInfo info = new SubscribeTask.VersionInfo(plugin, "master", true);
 | 
				
			||||||
 | 
					        info.update();
 | 
				
			||||||
 | 
					        Log.d("Currect Version: %s", info.getVersion());
 | 
				
			||||||
 | 
					        Log.d("New Version: %s", info.getNewVersion());
 | 
				
			||||||
 | 
					        boolean nu = info.needUpdate(info.getNewVersion(), plugin.getDescription().getVersion());
 | 
				
			||||||
 | 
					        Log.d("Need Update: %s", nu);
 | 
				
			||||||
 | 
					        Log.d("File URL: %s", SubscribeTask.UpdateType.WS.getDownloadUrl(plugin, info.getNewVersion()));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user