61 lines
2.3 KiB
Java
61 lines
2.3 KiB
Java
package xyz.etztech.qol.commands;
|
|
|
|
import com.google.gson.JsonArray;
|
|
import com.google.gson.JsonElement;
|
|
import com.google.gson.JsonObject;
|
|
import com.google.gson.JsonParser;
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.command.Command;
|
|
import org.bukkit.command.CommandExecutor;
|
|
import org.bukkit.command.CommandSender;
|
|
import xyz.etztech.qol.QoL;
|
|
import xyz.etztech.qol.EtzTechUtil;
|
|
import xyz.etztech.qol.Lang;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStreamReader;
|
|
import java.net.URL;
|
|
import java.util.Date;
|
|
|
|
public class WikiCommand implements CommandExecutor {
|
|
QoL plugin;
|
|
|
|
public WikiCommand(QoL paramQoL) {
|
|
this.plugin = paramQoL;
|
|
plugin.getCommand("wiki").setExecutor(this);
|
|
}
|
|
|
|
@Override
|
|
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] args) {
|
|
if (!commandSender.hasPermission("qol.wiki")) {
|
|
EtzTechUtil.sms(commandSender, Lang.NO_PERMISSION.getDef());
|
|
return true;
|
|
}
|
|
if (args.length < 1) {
|
|
EtzTechUtil.sms(commandSender, ChatColor.RED + "Please give a search argument.");
|
|
return true;
|
|
}
|
|
|
|
try {
|
|
Date changedToAt;
|
|
JsonObject obj;
|
|
InputStream response = new URL(String.format("https://minecraft.gamepedia.com/api.php?action=opensearch&format=json&formatversion=2&search=%s&namespace=0&limit=1", args[0])).openStream();
|
|
BufferedReader reader = new BufferedReader(new InputStreamReader(response));
|
|
JsonArray jsonArray = new JsonParser().parse(reader.readLine()).getAsJsonArray();
|
|
StringBuilder message = new StringBuilder(ChatColor.GREEN + jsonArray.get(1).getAsJsonArray().get(0).getAsString());
|
|
message.append(": ");
|
|
message.append(ChatColor.WHITE + jsonArray.get(3).getAsJsonArray().get(0).getAsString());
|
|
|
|
EtzTechUtil.sms(commandSender, message.toString());
|
|
} catch (IOException e) {
|
|
EtzTechUtil.sms(commandSender, ChatColor.RED + "Minecraft wiki API returned nothing.");
|
|
} catch (IndexOutOfBoundsException e) {
|
|
EtzTechUtil.sms(commandSender, ChatColor.RED + String.format("Nothing was found on the wiki using: %s", args[0]));
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|