package org.royaldev.royalbot.commands.impl; import org.pircbotx.hooks.types.GenericMessageEvent; import org.royaldev.royalbot.BotUtils; import org.royaldev.royalbot.commands.CallInfo; import org.royaldev.royalbot.commands.NoticeableCommand; import java.net.URLEncoder; public class NumberFactCommand extends NoticeableCommand { @Override public void onCommand(GenericMessageEvent event, CallInfo callInfo, String[] args) { if (args.length < 1) { notice(event, "Not enough arguments"); return; } String num = args[0], type = (args.length > 1) ? args[1].toLowerCase() : "", content; try { content = BotUtils.getContent("http://numbersapi.com/" + URLEncoder.encode(num, "UTF-8") + "/" + URLEncoder.encode(type, "UTF-8")); } catch (Exception ex) { notice(event, "Couldn't get a fact!"); return; } if (content.trim().equalsIgnoreCase("Cannot GET /" + num + "/" + type)) { notice(event, "Invalid type."); return; } if (content.trim().equalsIgnoreCase("Invalid url")) { notice(event, "Invalid options."); return; } event.respond(content); } @Override public String getName() { return "numberfact"; } @Override public String getUsage() { return "<command> [number string] (type)"; } @Override public String getDescription() { return "Gets facts about numbers"; } @Override public String[] getAliases() { return new String[]{"nf", "numfact", "num"}; } @Override public CommandType getCommandType() { return CommandType.BOTH; } @Override public AuthLevel getAuthLevel() { return AuthLevel.PUBLIC; } }