Compare commits

..

1 Commits
main ... main

Author SHA1 Message Date
benamaurer 74709cef0b Added alternate spelling of color as aliases for color command.
Added alternate spelling of color as aliases for color command.
2022-08-24 00:38:48 +00:00
3 changed files with 25 additions and 64 deletions

10
pom.xml
View File

@ -3,7 +3,7 @@
<groupId>xyz.etztech</groupId>
<artifactId>QoL</artifactId>
<!-- Version is used in plugin.yml -->
<version>1.17</version>
<version>1.16</version>
<packaging>jar</packaging>
<!-- Plugin Information -->
@ -42,7 +42,7 @@
<dependency>
<groupId>us.dynmap</groupId>
<artifactId>dynmap-api</artifactId>
<version>3.5</version>
<version>1.9.4</version>
<scope>provided</scope>
</dependency>
<dependency>
@ -53,7 +53,7 @@
<dependency>
<groupId>com.discordsrv</groupId>
<artifactId>discordsrv</artifactId>
<version>1.27.0</version>
<version>1.23.0</version>
<scope>provided</scope>
</dependency>
<dependency>
@ -81,7 +81,7 @@
</repository>
<repository>
<id>birbmc-repo</id>
<url>https://mvn.jojodev.com</url>
<url>https://mvn.birbmc.com</url>
</repository>
<repository>
<id>dynmap-repo</id>
@ -105,7 +105,7 @@
</repository>
<repository>
<id>shopkeepers-repo</id>
<url>https://repo.projectshard.dev/repository/releases/</url>
<url>https://nexus.lichtspiele.org/repository/releases/</url>
</repository>
</repositories>

View File

@ -1,24 +1,25 @@
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.TabExecutor;
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.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Date;
public class WikiCommand implements TabExecutor {
public class WikiCommand implements CommandExecutor {
QoL plugin;
public WikiCommand(QoL paramQoL) {
@ -27,7 +28,7 @@ public class WikiCommand implements TabExecutor {
}
@Override
public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args) {
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;
@ -37,61 +38,23 @@ public class WikiCommand implements TabExecutor {
return true;
}
String query = String.join(" ", args);
List<List<String>> result = getWikiResults(query, 1);
if (result.isEmpty())
{
EtzTechUtil.sms(commandSender, ChatColor.RED + String.format("Nothing was found on the wiki using: %s", query));
return true;
}
String message = ChatColor.GREEN + result.get(0).get(0) + ": " + ChatColor.WHITE + result.get(0).get(1);
EtzTechUtil.sms(commandSender, message);
return true;
}
@Override
public List<String> onTabComplete(CommandSender commandSender, Command command, String label, String[] args) {
String query = String.join(" ", args);
if (query.isEmpty()) return null;
List<List<String>> results = getWikiResults(query, 10);
if (results.isEmpty()) return null;
List<String> completions = new ArrayList<>();
results.forEach((result) -> completions.add(result.get(0)));
return completions;
}
private List<List<String>> getWikiResults(String query, Integer numOfResults) {
try {
InputStream response = new URL(String.format(plugin.getConfig().getString("wiki-base-url", "https://minecraft.wiki:") + "/api.php?action=opensearch&format=json&formatversion=2&search=%s&namespace=0&limit=%d", query, numOfResults)).openStream();
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());
JsonArray names = jsonArray.get(1).getAsJsonArray();
JsonArray links = jsonArray.get(3).getAsJsonArray();
// Check if we got any result
if (names.size() < 1)
return Collections.emptyList();
List<List<String>> results = new ArrayList<>();
for (int i = 0; i < names.size(); i++)
{
List<String> e = new ArrayList<>();
e.add(names.get(i).getAsString());
e.add(links.get(i).getAsString());
results.add(e);
}
return results;
} catch(Exception e) {
return Collections.emptyList();
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;
}
}

View File

@ -124,5 +124,3 @@ head_shop:
# Diamond price of a head in the shop, default is 2 diamonds
price: 2
# Base URL for the /wiki command. Should support a https://www.mediawiki.org/wiki/API:Opensearch request
wiki-base-url: 'https://minecraft.wiki'