1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

More GitHub Integration

This commit is contained in:
TheBusyBiscuit 2017-01-18 12:14:01 +01:00
parent a1c9195312
commit 855e6c19b8
4 changed files with 125 additions and 83 deletions

View File

@ -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<GitHubConnector> connectors = new HashSet<GitHubConnector>();
@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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<Contributor> contributors = new ArrayList<Contributor>();
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

View File

@ -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);
@ -436,6 +358,109 @@ public class SlimefunStartup extends JavaPlugin {
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!");