diff --git a/src/me/mrCookieSlime/Slimefun/GitHub/GitHubConnector.java b/src/me/mrCookieSlime/Slimefun/GitHub/GitHubConnector.java index e1c4d2aa9..56c0a435a 100644 --- a/src/me/mrCookieSlime/Slimefun/GitHub/GitHubConnector.java +++ b/src/me/mrCookieSlime/Slimefun/GitHub/GitHubConnector.java @@ -15,7 +15,7 @@ import java.util.Set; import com.google.gson.JsonElement; import com.google.gson.JsonParser; -public abstract class GitHubConnector { +public abstract class GitHubConnector implements Runnable { public static Set connectors = new HashSet(); @@ -23,8 +23,6 @@ public abstract class GitHubConnector { public GitHubConnector() { this.file = new File("plugins/Slimefun/cache/github/" + this.getFileName() + ".json"); - - this.pullFile(); connectors.add(this); } @@ -93,4 +91,9 @@ public abstract class GitHubConnector { this.onFailure(); } } + + @Override + public void run() { + this.pullFile(); + } } diff --git a/src/me/mrCookieSlime/Slimefun/GitHub/IntegerFormat.java b/src/me/mrCookieSlime/Slimefun/GitHub/IntegerFormat.java new file mode 100644 index 000000000..a3b1e45c0 --- /dev/null +++ b/src/me/mrCookieSlime/Slimefun/GitHub/IntegerFormat.java @@ -0,0 +1,12 @@ +package me.mrCookieSlime.Slimefun.GitHub; + +import java.text.NumberFormat; +import java.util.Locale; + +public class IntegerFormat { + + public static String formatBigNumber(int i) { + return NumberFormat.getNumberInstance(Locale.US).format(i); + } + +} diff --git a/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java b/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java index c491481d9..4e3ba20ac 100644 --- a/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java +++ b/src/me/mrCookieSlime/Slimefun/SlimefunGuide.java @@ -35,6 +35,7 @@ import me.mrCookieSlime.CSCoreLibPlugin.general.Math.DoubleHandler; import me.mrCookieSlime.CSCoreLibPlugin.general.String.StringUtils; import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull; import me.mrCookieSlime.Slimefun.GitHub.Contributor; +import me.mrCookieSlime.Slimefun.GitHub.IntegerFormat; import me.mrCookieSlime.Slimefun.Lists.RecipeType; import me.mrCookieSlime.Slimefun.Objects.Category; import me.mrCookieSlime.Slimefun.Objects.LockedCategory; @@ -60,6 +61,7 @@ public class SlimefunGuide { public static List contributors = new ArrayList(); public static int issues = 0; public static int forks = 0; + public static int code_lines = 0; static boolean all_recipes = true; private static final int category_size = 36; @@ -130,7 +132,7 @@ public class SlimefunGuide { } }); - menu.addItem(17, new CustomItem(new MaterialData(Material.BOOK_AND_QUILL), "&aCredits", "", "&7Contributors: &e" + contributors.size(), "", "&7\u21E8 Click to see the people behind this Plugin")); + menu.addItem(17, new CustomItem(new MaterialData(Material.BOOK_AND_QUILL), "&aCredits", "", "&7Lines of Code: &c" + IntegerFormat.formatBigNumber(code_lines), "&7Contributors: &e" + contributors.size(), "", "&7\u21E8 Click to see the people behind this Plugin")); menu.addMenuClickHandler(17, new MenuClickHandler() { @Override @@ -141,7 +143,7 @@ public class SlimefunGuide { }); try { - menu.addItem(26, new CustomItem(new MaterialData(Material.REDSTONE_COMPARATOR), "&eSource Code", "", "&7Contributors: &e" + contributors.size(), "&7Forks: &e" + forks, "", "&7&oSlimefun 4 is a community project,", "&7&othe source code is available on GitHub", "&7&oand if you want to keep this Plugin alive,", "&7&othen please consider contributing to it", "", "&7\u21E8 Click to go to GitHub")); + menu.addItem(26, new CustomItem(new MaterialData(Material.REDSTONE_COMPARATOR), "&eSource Code", "", "&7Lines of Code: &c" + IntegerFormat.formatBigNumber(code_lines), "&7Contributors: &e" + contributors.size(), "&7Forks: &e" + forks, "", "&7&oSlimefun 4 is a community project,", "&7&othe source code is available on GitHub", "&7&oand if you want to keep this Plugin alive,", "&7&othen please consider contributing to it", "", "&7\u21E8 Click to go to GitHub")); menu.addMenuClickHandler(26, new MenuClickHandler() { @Override diff --git a/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java b/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java index 4398ddeb2..5e6cba69d 100644 --- a/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java +++ b/src/me/mrCookieSlime/Slimefun/SlimefunStartup.java @@ -199,84 +199,6 @@ public class SlimefunStartup extends JavaPlugin { OreGenSystem.registerResource(new OilResource()); OreGenSystem.registerResource(new NetherIceResource()); - // Connecting to GitHub... - - new GitHubConnector() { - - @Override - public void onSuccess(JsonElement element) { - JsonArray array = element.getAsJsonArray(); - - for (int i = 0; i < array.size(); i++) { - JsonObject object = array.get(i).getAsJsonObject(); - - String name = object.get("login").getAsString(); - String job = "&cAuthor"; - int commits = object.get("contributions").getAsInt(); - String profile = object.get("html_url").getAsString(); - - if (!name.equals("invalid-email-address")) { - Contributor contributor = new Contributor(name, job, commits); - contributor.profile = profile; - SlimefunGuide.contributors.add(contributor); - } - } - SlimefunGuide.contributors.add(new Contributor("AquaLazuryt", "&6Lead Head Artist", 0)); - } - - @Override - public void onFailure() { - SlimefunGuide.contributors.add(new Contributor("TheBusyBiscuit", "&cAuthor", 3)); - SlimefunGuide.contributors.add(new Contributor("John000708", "&cAuthor", 2)); - SlimefunGuide.contributors.add(new Contributor("AquaLazuryt", "&6Lead Head Artist", 0)); - } - - @Override - public String getRepository() { - return "TheBusyBiscuit/Slimefun4"; - } - - @Override - public String getFileName() { - return "contributors"; - } - - @Override - public String getURLSuffix() { - return "/contributors"; - } - }; - - new GitHubConnector() { - - @Override - public void onSuccess(JsonElement element) { - JsonObject object = element.getAsJsonObject(); - SlimefunGuide.issues = object.get("open_issues_count").getAsInt(); - SlimefunGuide.forks = object.get("forks").getAsInt(); - } - - @Override - public void onFailure() { - } - - @Override - public String getRepository() { - return "TheBusyBiscuit/Slimefun4"; - } - - @Override - public String getFileName() { - return "repo"; - } - - @Override - public String getURLSuffix() { - return ""; - } - }; - - // All Slimefun Listeners new ArmorListener(this); new ItemListener(this); @@ -435,7 +357,110 @@ public class SlimefunStartup extends JavaPlugin { // Starting all ASYNC Tasks getServer().getScheduler().scheduleAsyncRepeatingTask(this, new AutoSavingTask(), 1200L, config.getInt("options.auto-save-delay-in-minutes") * 60L * 20L); getServer().getScheduler().scheduleAsyncRepeatingTask(this, ticker, 100L, config.getInt("URID.custom-ticker-delay")); + + getServer().getScheduler().scheduleAsyncDelayedTask(this, new GitHubConnector() { + + @Override + public void onSuccess(JsonElement element) { + JsonArray array = element.getAsJsonArray(); + + for (int i = 0; i < array.size(); i++) { + JsonObject object = array.get(i).getAsJsonObject(); + + String name = object.get("login").getAsString(); + String job = "&cAuthor"; + int commits = object.get("contributions").getAsInt(); + String profile = object.get("html_url").getAsString(); + + if (!name.equals("invalid-email-address")) { + Contributor contributor = new Contributor(name, job, commits); + contributor.profile = profile; + SlimefunGuide.contributors.add(contributor); + } + } + SlimefunGuide.contributors.add(new Contributor("AquaLazuryt", "&6Lead Head Artist", 0)); + } + + @Override + public void onFailure() { + SlimefunGuide.contributors.add(new Contributor("TheBusyBiscuit", "&cAuthor", 3)); + SlimefunGuide.contributors.add(new Contributor("John000708", "&cAuthor", 2)); + SlimefunGuide.contributors.add(new Contributor("AquaLazuryt", "&6Lead Head Artist", 0)); + } + + @Override + public String getRepository() { + return "TheBusyBiscuit/Slimefun4"; + } + + @Override + public String getFileName() { + return "contributors"; + } + @Override + public String getURLSuffix() { + return "/contributors"; + } + }); + + getServer().getScheduler().scheduleAsyncDelayedTask(this, new GitHubConnector() { + + @Override + public void onSuccess(JsonElement element) { + JsonObject object = element.getAsJsonObject(); + SlimefunGuide.issues = object.get("open_issues_count").getAsInt(); + SlimefunGuide.forks = object.get("forks").getAsInt(); + } + + @Override + public void onFailure() { + } + + @Override + public String getRepository() { + return "TheBusyBiscuit/Slimefun4"; + } + + @Override + public String getFileName() { + return "repo"; + } + + @Override + public String getURLSuffix() { + return ""; + } + }); + + getServer().getScheduler().scheduleAsyncDelayedTask(this, new GitHubConnector() { + + @Override + public void onSuccess(JsonElement element) { + JsonObject object = element.getAsJsonObject(); + SlimefunGuide.code_lines = object.get("Java").getAsInt(); + } + + @Override + public void onFailure() { + } + + @Override + public String getRepository() { + return "TheBusyBiscuit/Slimefun4"; + } + + @Override + public String getFileName() { + return "lines_of_code"; + } + + @Override + public String getURLSuffix() { + return "/languages"; + } + }); + // Hooray! System.out.println("[Slimefun] Finished!");