TF-PlotSquared/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/plugin.java

110 lines
4.1 KiB
Java
Raw Normal View History

2014-09-22 13:02:14 +02:00
/*
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
* and/or monetize any of our intellectual property. IntellectualCrafters is not
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
2014-11-05 14:42:08 +11:00
*
* >> File = plugin.java >> Generated by: Citymonstret at 2014-08-09 01:42
2014-09-22 13:02:14 +02:00
*/
package com.intellectualcrafters.plot.commands;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
2014-09-22 13:02:14 +02:00
2014-11-05 14:42:08 +11:00
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
2014-09-22 13:02:14 +02:00
2014-11-05 14:42:08 +11:00
import com.intellectualcrafters.plot.PlayerFunctions;
import com.intellectualcrafters.plot.PlotMain;
2014-09-22 13:02:14 +02:00
2014-11-05 14:42:08 +11:00
public class plugin extends SubCommand {
2014-10-11 18:16:08 +02:00
2014-11-05 14:42:08 +11:00
public plugin() {
super("plugin", "plots.use", "Show plugin information", "plugin", "pl", CommandCategory.INFO, false);
}
public static String downloads, version;
2014-10-11 18:16:08 +02:00
2014-11-05 14:42:08 +11:00
public static void setup(final JavaPlugin plugin) {
2014-10-11 18:16:08 +02:00
plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
2014-10-11 18:24:50 +02:00
try {
2014-11-05 14:42:08 +11:00
downloads = convertToNumericString(getInfo("https://intellectualsites.com/spigot_api.php?method=downloads&url=http://www.spigotmc.org/resources/plotsquared.1177/"), false);
}
catch (final Exception e) {
2014-10-11 18:24:50 +02:00
downloads = "unknown";
}
2014-10-11 18:16:08 +02:00
}
}, 1l);
plugin.getServer().getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
@Override
public void run() {
2014-10-11 18:24:50 +02:00
try {
2014-11-05 14:42:08 +11:00
version = convertToNumericString(getInfo("https://intellectualsites.com/spigot_api.php?method=version&resource=1177"), true);
}
catch (final Exception e) {
// Let's just ignore this, most likely error 500...
2014-10-11 18:24:50 +02:00
version = "unknown";
}
2014-10-11 18:16:08 +02:00
}
}, 200l);
}
@Override
2014-11-05 14:42:08 +11:00
public boolean execute(final Player plr, final String... args) {
Bukkit.getScheduler().runTaskAsynchronously(JavaPlugin.getPlugin(PlotMain.class), new Runnable() {
@Override
public void run() {
final ArrayList<String> strings = new ArrayList<String>() {
{
add(String.format("&c>> &6PlotSquared (Version: %s)", PlotMain.getMain().getDescription().getVersion()));
add(String.format("&c>> &6Made by Citymonstret and Empire92"));
add(String.format("&c>> &6Download at &lhttp://i-s.link/ps"));
add(String.format("&c>> &cNewest Version (Spigot): %s", version));
add(String.format("&c>> &cTotal Downloads (Spigot): %s", downloads));
}
};
for (final String s : strings) {
PlayerFunctions.sendMessage(plr, s);
}
}
});
return true;
}
2014-09-22 13:02:14 +02:00
2014-11-05 14:42:08 +11:00
private static String convertToNumericString(final String str, final boolean dividers) {
final StringBuilder builder = new StringBuilder();
for (final char c : str.toCharArray()) {
if (Character.isDigit(c)) {
2014-10-11 18:16:08 +02:00
builder.append(c);
2014-11-05 14:42:08 +11:00
}
else if (dividers && ((c == ',') || (c == '.') || (c == '-') || (c == '_'))) {
2014-10-11 18:16:08 +02:00
builder.append(c);
2014-11-05 14:42:08 +11:00
}
2014-10-11 18:16:08 +02:00
}
return builder.toString();
}
2014-11-05 14:42:08 +11:00
/**
* @param link
* @return
*/
private static String getInfo(final String link) throws Exception {
final URLConnection connection = new URL(link).openConnection();
2014-10-11 18:30:24 +02:00
connection.addRequestProperty("User-Agent", "Mozilla/4.0");
2014-11-05 14:42:08 +11:00
final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
2014-10-11 18:30:24 +02:00
String document = "", line;
while ((line = reader.readLine()) != null) {
document += (line + "\n");
}
reader.close();
return document;
2014-11-05 14:42:08 +11:00
}
2014-09-22 13:02:14 +02:00
}