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

Improved Guide Settings Menu

This commit is contained in:
TheBusyBiscuit 2017-01-16 20:31:57 +01:00
parent 692ea87b4a
commit d66dc68311
4 changed files with 42 additions and 36 deletions

View File

@ -4,6 +4,7 @@ public class Contributor {
public String name; public String name;
public String job; public String job;
public String profile;
public int commits; public int commits;
public Contributor(String name, String job, int commits) { public Contributor(String name, String job, int commits) {

View File

@ -6,6 +6,7 @@ import java.io.FileOutputStream;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.net.URL; import java.net.URL;
import java.net.URLConnection;
import java.nio.channels.Channels; import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel; import java.nio.channels.ReadableByteChannel;
import java.util.HashSet; import java.util.HashSet;
@ -38,7 +39,13 @@ public abstract class GitHubConnector {
try { try {
URL website = new URL("https://api.github.com/repos/" + this.getRepository() + this.getURLSuffix()); URL website = new URL("https://api.github.com/repos/" + this.getRepository() + this.getURLSuffix());
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
URLConnection connection = website.openConnection();
connection.setConnectTimeout(3000);
connection.addRequestProperty("User-Agent", "Slimefun 4 GitHub Agent (by TheBusyBiscuit)");
connection.setDoOutput(true);
ReadableByteChannel rbc = Channels.newChannel(connection.getInputStream());
FileOutputStream fos = new FileOutputStream(file); FileOutputStream fos = new FileOutputStream(file);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close(); fos.close();

View File

@ -72,6 +72,8 @@ public class SlimefunGuide {
return new CustomItem(new MaterialData(Material.ENCHANTED_BOOK), "&eSlimefun Guide &7(Right Click)", (book ? "": "&2"), "&rThis is your basic Guide for Slimefun", "&rYou can see all Items added by this Plugin", "&ror its Addons including their Recipes", "&ra bit of information and more"); return new CustomItem(new MaterialData(Material.ENCHANTED_BOOK), "&eSlimefun Guide &7(Right Click)", (book ? "": "&2"), "&rThis is your basic Guide for Slimefun", "&rYou can see all Items added by this Plugin", "&ror its Addons including their Recipes", "&ra bit of information and more");
} }
private static final int[] slots = new int[] {0, 1, 9, 10, 19, 27, 28, 36, 37, 7, 8, 16, 25, 34, 43, 44};
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public static void openSettings(Player p, final ItemStack guide) { public static void openSettings(Player p, final ItemStack guide) {
final ChestMenu menu = new ChestMenu("Settings / Info"); final ChestMenu menu = new ChestMenu("Settings / Info");
@ -85,8 +87,8 @@ public class SlimefunGuide {
}); });
menu.addItem(0, new CustomItem(new MaterialData(Material.EMERALD), "&7\u21E6 Back to normal view")); menu.addItem(18, new CustomItem(new MaterialData(Material.EMERALD), "&7\u21E6 Back to normal view"));
menu.addMenuClickHandler(0, new MenuClickHandler() { menu.addMenuClickHandler(18, new MenuClickHandler() {
@Override @Override
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) { public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
@ -100,8 +102,7 @@ public class SlimefunGuide {
} }
}); });
for (int i = 1; i < 18; i++) { for (int i: slots) {
if (i != 3 && i != 4 && i != 5) {
menu.addItem(i, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " ")); menu.addItem(i, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "));
menu.addMenuClickHandler(i, new MenuClickHandler() { menu.addMenuClickHandler(i, new MenuClickHandler() {
@ -111,10 +112,9 @@ public class SlimefunGuide {
} }
}); });
} }
}
menu.addItem(18, new CustomItem(new MaterialData(SlimefunManager.isItemSimiliar(guide, SlimefunGuide.getItem(true), true) ? Material.BOOK_AND_QUILL: Material.CHEST), "&7Guide Layout: &e" + (SlimefunManager.isItemSimiliar(guide, SlimefunGuide.getItem(true), true) ? "Book": "Chest"), "", "&7\u21E8 Click to change to: &b" + (SlimefunManager.isItemSimiliar(guide, SlimefunGuide.getItem(true), true) ? "Chest": "Book"))); menu.addItem(2, new CustomItem(new MaterialData(SlimefunManager.isItemSimiliar(guide, SlimefunGuide.getItem(true), true) ? Material.BOOK_AND_QUILL: Material.CHEST), "&7Guide Layout: &e" + (SlimefunManager.isItemSimiliar(guide, SlimefunGuide.getItem(true), true) ? "Book": "Chest"), "", "&7\u21E8 Click to change to: &b" + (SlimefunManager.isItemSimiliar(guide, SlimefunGuide.getItem(true), true) ? "Chest": "Book")));
menu.addMenuClickHandler(18, new MenuClickHandler() { menu.addMenuClickHandler(2, new MenuClickHandler() {
@Override @Override
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) { public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
@ -130,8 +130,8 @@ public class SlimefunGuide {
} }
}); });
menu.addItem(3, new CustomItem(new MaterialData(Material.BOOK_AND_QUILL), "&aCredits", "", "&7\u21E8 Click to see the people behind this Plugin")); 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.addMenuClickHandler(3, new MenuClickHandler() { menu.addMenuClickHandler(17, new MenuClickHandler() {
@Override @Override
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) { public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
@ -141,8 +141,8 @@ public class SlimefunGuide {
}); });
try { try {
menu.addItem(4, new CustomItem(CustomSkull.getItem("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzljODg4MWU0MjkxNWE5ZDI5YmI2MWExNmZiMjZkMDU5OTEzMjA0ZDI2NWRmNWI0MzliM2Q3OTJhY2Q1NiJ9fX0="), "&eSource Code", "", "&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", "", "&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(4, new MenuClickHandler() { menu.addMenuClickHandler(26, new MenuClickHandler() {
@Override @Override
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) { public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
@ -157,8 +157,8 @@ public class SlimefunGuide {
e.printStackTrace(); e.printStackTrace();
} }
menu.addItem(5, new CustomItem(new MaterialData(Material.REDSTONE), "&4Bug Tracker", "", "&7Unsolved Issues: &a" + issues, "", "&7\u21E8 Click to go to the Slimefun Bug Tracker")); menu.addItem(35, new CustomItem(new MaterialData(Material.REDSTONE), "&4Bug Tracker", "", "&7Unsolved Issues: &a" + issues, "", "&7\u21E8 Click to go to the Slimefun Bug Tracker"));
menu.addMenuClickHandler(5, new MenuClickHandler() { menu.addMenuClickHandler(35, new MenuClickHandler() {
@Override @Override
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) { public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
@ -170,17 +170,6 @@ public class SlimefunGuide {
} }
}); });
for (int i = 0; i < 9; i++) {
menu.addItem(27 + i, new CustomItem(new MaterialData(Material.STAINED_GLASS_PANE, (byte) 7), " "));
menu.addMenuClickHandler(27 + i, new MenuClickHandler() {
@Override
public boolean onClick(Player arg0, int arg1, ItemStack arg2, ClickAction arg3) {
return false;
}
});
}
menu.open(p); menu.open(p);
} }
@ -228,7 +217,7 @@ public class SlimefunGuide {
total += contributor.commits; total += contributor.commits;
} }
for (Contributor contributor: contributors) { for (final Contributor contributor: contributors) {
ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) 3); ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
ItemMeta meta = skull.getItemMeta(); ItemMeta meta = skull.getItemMeta();
@ -237,7 +226,7 @@ public class SlimefunGuide {
if (contributor.commits > 0) { if (contributor.commits > 0) {
double percentage = DoubleHandler.fixDouble((contributor.commits * 100.0) / total, 2); double percentage = DoubleHandler.fixDouble((contributor.commits * 100.0) / total, 2);
meta.setLore(Arrays.asList("", ChatColor.translateAlternateColorCodes('&', "&7Role: &r" + contributor.job), ChatColor.translateAlternateColorCodes('&', "&7Contribution: &r" + percentage + "%"))); meta.setLore(Arrays.asList("", ChatColor.translateAlternateColorCodes('&', "&7Role: &r" + contributor.job), ChatColor.translateAlternateColorCodes('&', "&7Contribution: &r" + percentage + "%"), "", ChatColor.translateAlternateColorCodes('&', "&7\u21E8 Click to view my GitHub profile")));
} }
else { else {
meta.setLore(Arrays.asList("", ChatColor.translateAlternateColorCodes('&', "&7Role: &r" + contributor.job))); meta.setLore(Arrays.asList("", ChatColor.translateAlternateColorCodes('&', "&7Role: &r" + contributor.job)));
@ -250,6 +239,12 @@ public class SlimefunGuide {
@Override @Override
public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) { public boolean onClick(Player p, int arg1, ItemStack arg2, ClickAction arg3) {
if (contributor.commits > 0) {
p.closeInventory();
p.sendMessage("");
p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&7&o" + contributor.profile));
p.sendMessage("");
}
return false; return false;
} }
}); });

View File

@ -213,9 +213,12 @@ public class SlimefunStartup extends JavaPlugin {
String name = object.get("login").getAsString(); String name = object.get("login").getAsString();
String job = "&cAuthor"; String job = "&cAuthor";
int commits = object.get("contributions").getAsInt(); int commits = object.get("contributions").getAsInt();
String profile = object.get("html_url").getAsString();
if (!name.equals("invalid-email-address")) { if (!name.equals("invalid-email-address")) {
SlimefunGuide.contributors.add(new Contributor(name, job, commits)); Contributor contributor = new Contributor(name, job, commits);
contributor.profile = profile;
SlimefunGuide.contributors.add(contributor);
} }
} }
SlimefunGuide.contributors.add(new Contributor("AquaLazuryt", "&6Lead Head Artist", 0)); SlimefunGuide.contributors.add(new Contributor("AquaLazuryt", "&6Lead Head Artist", 0));