From 806ea326ecf180fb3f3e77c9ceefa7d78a2fe8d7 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Mon, 7 Sep 2020 16:07:17 -0400 Subject: [PATCH 01/36] scape.fashion WIP --- .../fsbot/commands/developer/TestCommand.java | 2 +- .../scapefashion/ScapeFashionConnection.java | 22 +++++++++++++++++-- .../scapefashion/ScapeFashionItem.java | 20 +++++++++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java index a32ef6f..7c109ee 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java @@ -28,7 +28,7 @@ public class TestCommand extends Command { ScapeFashionConnection conn = new ScapeFashionConnection(); try { - ctx.reply(conn.osrsColor("#00ff00").toString(2)); + conn.osrsColor("#00ff00"); } catch (Exception e) { ctx.reply(e.getMessage()); } diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java index 947bf7c..ace0aaa 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java @@ -13,8 +13,13 @@ import org.json.JSONObject; import java.io.IOException; import java.io.UnsupportedEncodingException; +import java.net.URI; import java.net.URLEncoder; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; import java.nio.charset.StandardCharsets; +import java.util.concurrent.CompletableFuture; public class ScapeFashionConnection { private final String RS3_REQUEST_URL = "https://api.rune.scape.fashion"; @@ -36,11 +41,11 @@ public class ScapeFashionConnection { // Uses the color endpoint to search for items // Returns an object with a list of the top results, and a link redirect to see full list - public JSONArray osrsColor(String color) throws IOException { + public void osrsColor(String color) throws IOException { String url = OSRS_REQUEST_URL + "/colors/" + encode(color); System.out.println(url); - return makeRequest(url); + makeRequestNEW(url); } private void osrsColor(String color, String slot) { @@ -81,6 +86,19 @@ public class ScapeFashionConnection { return new JSONObject(response.body().string()).getJSONArray("items"); } + private void makeRequestNEW(String url) { + var client = HttpClient.newBuilder().version(HttpClient.Version.HTTP_2).build(); + + HttpRequest request = HttpRequest.newBuilder(URI.create(url)) + .header("Content-Type", "application/json") + .header("User-Agent", USER_AGENT) + .GET() + .build(); + + CompletableFuture> response = client.sendAsync(request, HttpResponse.BodyHandlers.ofString()); + response.thenAcceptAsync(res -> System.out.println(res.body())); + } + private String encode(String value) throws UnsupportedEncodingException { return URLEncoder.encode(value, StandardCharsets.UTF_8.toString()); } diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java index d245bbd..392715c 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java @@ -20,6 +20,26 @@ public class ScapeFashionItem { this.match = builder.match; } + public String getName() { + return name; + } + + public String getSlot() { + return slot; + } + + public String getLink() { + return link; + } + + public String[] getColors() { + return colors; + } + + public float getMatch() { + return match; + } + public static class Builder { private String name; private String slot; From 9d85f8e6d6a0d38b0f5ceb7bcf3e5490267732e3 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Tue, 8 Sep 2020 23:36:45 -0400 Subject: [PATCH 02/36] Added gson dep --- build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle b/build.gradle index 6e271dd..e62a1fd 100644 --- a/build.gradle +++ b/build.gradle @@ -30,6 +30,7 @@ dependencies { implementation 'com.vdurmont:emoji-java:4.0.0' implementation 'com.squareup.okhttp3:okhttp:4.4.0' implementation 'ch.qos.logback:logback-classic:1.2.3' + implementation 'com.google.code.gson:gson:2.8.6' implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-starter-web' From eafdc7fbe6e343faef248630dffbb2a8b3430023 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Tue, 8 Sep 2020 23:39:55 -0400 Subject: [PATCH 03/36] Added OSRS request logic --- .../scapefashion/ScapeFashionConnection.java | 76 ++++++++----------- 1 file changed, 33 insertions(+), 43 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java index ace0aaa..c3f5d5d 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java @@ -5,13 +5,7 @@ package dev.salmonllama.fsbot.endpoints.scapefashion; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; -import org.json.JSONArray; -import org.json.JSONObject; - -import java.io.IOException; +import com.google.gson.Gson; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URLEncoder; @@ -19,7 +13,6 @@ import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.nio.charset.StandardCharsets; -import java.util.concurrent.CompletableFuture; public class ScapeFashionConnection { private final String RS3_REQUEST_URL = "https://api.rune.scape.fashion"; @@ -28,36 +21,44 @@ public class ScapeFashionConnection { private final String OSRS_REQUEST_URL = "https://api.scape.fashion"; private final String OSRS_LINK_URL = "https://scape.fashion"; - private final String USER_AGENT = "Fashionscape-Bot github.com/salmonllama/fashionscape-bot"; - - private final OkHttpClient client; - private final Request.Builder requestBuilder; - - public ScapeFashionConnection() { - - client = new OkHttpClient().newBuilder().build(); - requestBuilder = new Request.Builder(); - } + public ScapeFashionConnection() {} // Uses the color endpoint to search for items // Returns an object with a list of the top results, and a link redirect to see full list - public void osrsColor(String color) throws IOException { - String url = OSRS_REQUEST_URL + "/colors/" + encode(color); - System.out.println(url); + public ScapeFashionResult osrsColor(String color) throws Exception { + String uri = OSRS_REQUEST_URL + "/colors/" + encode(color); + String link = OSRS_LINK_URL + "/colors/" + encode(color); - makeRequestNEW(url); + var response = makeRequest(uri); + response.setLink(link); + return response; } - private void osrsColor(String color, String slot) { + private ScapeFashionResult osrsColor(String color, String slot) throws Exception { + String uri = OSRS_REQUEST_URL + "/colors/" + encode(color) + "?slot=" + encode(slot); + String link = OSRS_LINK_URL + "/colors/" + encode(color) + "?slot=" + encode(slot); + var response = makeRequest(uri); + response.setLink(link); + return response; } - private void osrsItem(String item) { + private ScapeFashionResult osrsItem(String item) throws Exception { + String uri = OSRS_REQUEST_URL + "/items/" + encode(item); + String link = OSRS_LINK_URL + "/items/" + encode(item); + var response = makeRequest(uri); + response.setLink(link); + return response; } - private void osrsItem(String item, String slot) { + private ScapeFashionResult osrsItem(String item, String slot) throws Exception { + String uri = OSRS_REQUEST_URL + "/items/" + encode(item) + "?slot=" + encode(slot); + String link = OSRS_LINK_URL + "/items/" + encode(item) + "?slot=" + encode(slot); + var response = makeRequest(uri); + response.setLink(link); + return response; } private void rs3Color(String color) { @@ -76,35 +77,24 @@ public class ScapeFashionConnection { } - private JSONArray makeRequest(String url) throws IOException { - // Returns the items JSONObject - Request request = requestBuilder.get().url(url).addHeader("User-Agent", USER_AGENT).build(); - - Response response = client.newCall(request).execute(); - // returns a JSONArray of JSONObjects - System.out.println(response.body().string()); - return new JSONObject(response.body().string()).getJSONArray("items"); - } - - private void makeRequestNEW(String url) { + private ScapeFashionResult makeRequest(String url) throws Exception { var client = HttpClient.newBuilder().version(HttpClient.Version.HTTP_2).build(); + String USER_AGENT = "Fashionscape-Bot github.com/salmonllama/fashionscape-bot"; + HttpRequest request = HttpRequest.newBuilder(URI.create(url)) .header("Content-Type", "application/json") .header("User-Agent", USER_AGENT) .GET() .build(); - CompletableFuture> response = client.sendAsync(request, HttpResponse.BodyHandlers.ofString()); - response.thenAcceptAsync(res -> System.out.println(res.body())); + Gson gson = new Gson(); + HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); + var json = response.body(); + return gson.fromJson(json, ScapeFashionResult.class); } private String encode(String value) throws UnsupportedEncodingException { return URLEncoder.encode(value, StandardCharsets.UTF_8.toString()); } - - private ScapeFashionResult extract(JSONObject json) { - - return null; - } } From 1cb720d09fe2517b93785bc91c5eff96ad74390f Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Tue, 8 Sep 2020 23:40:24 -0400 Subject: [PATCH 04/36] Added simple toString() for testing --- .../fsbot/endpoints/scapefashion/ScapeFashionItem.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java index 392715c..a9faa13 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java @@ -40,6 +40,11 @@ public class ScapeFashionItem { return match; } + @Override + public String toString() { + return String.format("Item: [%s]", name); + } + public static class Builder { private String name; private String slot; From 083a5d47e6180d6816e23fec8a13dc1f72f1d4f2 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Tue, 8 Sep 2020 23:40:54 -0400 Subject: [PATCH 05/36] Modified for serializeability --- .../scapefashion/ScapeFashionResult.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionResult.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionResult.java index 8bc8518..00b76fd 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionResult.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionResult.java @@ -5,16 +5,22 @@ package dev.salmonllama.fsbot.endpoints.scapefashion; +import com.google.gson.annotations.SerializedName; + import java.util.ArrayList; -import java.util.Collection; +import java.util.List; public class ScapeFashionResult { - private final String link; - private Collection items; + private String link; + @SerializedName("items") + private final List items = new ArrayList<>(); + + public ScapeFashionResult() { + + } public ScapeFashionResult(String link) { this.link = link; - items = new ArrayList<>(); } public ScapeFashionResult addItem(ScapeFashionItem item) { @@ -22,11 +28,15 @@ public class ScapeFashionResult { return this; } + public void setLink(String link) { + this.link = link; + } + public String getLink() { return link; } - public Collection getItems() { + public List getItems() { return items; } } From d2f7e1276511ba418c711de0a97dd3a7d807c271 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Wed, 9 Sep 2020 23:08:40 -0400 Subject: [PATCH 06/36] Completed logic for RS3 --- .../scapefashion/ScapeFashionConnection.java | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java index c3f5d5d..6676f2a 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java @@ -34,9 +34,9 @@ public class ScapeFashionConnection { return response; } - private ScapeFashionResult osrsColor(String color, String slot) throws Exception { - String uri = OSRS_REQUEST_URL + "/colors/" + encode(color) + "?slot=" + encode(slot); - String link = OSRS_LINK_URL + "/colors/" + encode(color) + "?slot=" + encode(slot); + private ScapeFashionResult osrsColor(String color, ScapeFashionSlotOSRS slot) throws Exception { + String uri = OSRS_REQUEST_URL + "/colors/" + encode(color) + "?slot=" + encode(slot.getValue()); + String link = OSRS_LINK_URL + "/colors/" + encode(color) + "?slot=" + encode(slot.getValue()); var response = makeRequest(uri); response.setLink(link); @@ -52,29 +52,49 @@ public class ScapeFashionConnection { return response; } - private ScapeFashionResult osrsItem(String item, String slot) throws Exception { - String uri = OSRS_REQUEST_URL + "/items/" + encode(item) + "?slot=" + encode(slot); - String link = OSRS_LINK_URL + "/items/" + encode(item) + "?slot=" + encode(slot); + private ScapeFashionResult osrsItem(String item, ScapeFashionSlotOSRS slot) throws Exception { + String uri = OSRS_REQUEST_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); + String link = OSRS_LINK_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); var response = makeRequest(uri); response.setLink(link); return response; } - private void rs3Color(String color) { + private ScapeFashionResult rs3Color(String color) throws Exception { + String uri = RS3_REQUEST_URL + "/colors/" + encode(color); + String link = RS3_LINK_URL + "/colors/" + encode(color); + var response = makeRequest(uri); + response.setLink(link); + return response; } - private void rs3Color(String color, String slot) { + private ScapeFashionResult rs3Color(String color, ScapeFashionSlotRs3 slot) throws Exception { + String uri = RS3_REQUEST_URL + "/colors/" + encode(color) + "?slot=" + encode(slot.getValue()); + String link = RS3_LINK_URL + "/colors/" + encode(color) + "?slot=" + encode(slot.getValue()); + var response = makeRequest(uri); + response.setLink(link); + return response; } - private void rs3Item(String item) { + private ScapeFashionResult rs3Item(String item) throws Exception { + String uri = RS3_REQUEST_URL + "/items/" + encode(item); + String link = RS3_LINK_URL + "/items/" + encode(item); + var response = makeRequest(uri); + response.setLink(link); + return response; } - private void rs3Item(String item, String slot) { + private ScapeFashionResult rs3Item(String item, ScapeFashionSlotRs3 slot) throws Exception { + String uri = RS3_REQUEST_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); + String link = RS3_LINK_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); + var response = makeRequest(uri); + response.setLink(link); + return response; } private ScapeFashionResult makeRequest(String url) throws Exception { From cfb60cc8d6329be7b284c5ccbedac8519f15dc52 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Wed, 9 Sep 2020 23:09:11 -0400 Subject: [PATCH 07/36] Slot enums with matcher for command use --- .../scapefashion/ScapeFashionSlotOSRS.java | 42 +++++++++++++++++ .../scapefashion/ScapeFashionSlotRs3.java | 45 +++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotOSRS.java create mode 100644 src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotRs3.java diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotOSRS.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotOSRS.java new file mode 100644 index 0000000..7a15895 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotOSRS.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.endpoints.scapefashion; + +import java.util.Optional; + +// Source: https://github.com/ncpierson/fashionscape/blob/master/api/data/tools/slot.js +public enum ScapeFashionSlotOSRS { + AMMUNITION("ammunition"), + BODY("body"), + CAPE("cape"), + FEET("feet"), + HAND("hand"), + HEAD("head"), + LEG("leg"), + NECK("neck"), + RING("ring"), + SHIELD("shield"), + WEAPON("weapon"); + + private final String value; + + ScapeFashionSlotOSRS(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static Optional matches(String s) { + try { + var slot = ScapeFashionSlotOSRS.valueOf(s); + return Optional.of(slot); + } catch (IllegalArgumentException e) { + return Optional.empty(); + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotRs3.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotRs3.java new file mode 100644 index 0000000..d99cbe1 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotRs3.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.endpoints.scapefashion; + +import java.util.Optional; + +// Source: https://github.com/ncpierson/fashionscape/blob/master/api/data/tools/slot.js +public enum ScapeFashionSlotRs3 { + AMMUNITION("ammunition"), + BACK("back"), + FEET("feet"), + HAND("hand"), + HEAD("head"), + LEG("leg"), + MAIN_HAND("main_hand"), + NECK("neck"), + OFF_HAND("off-hand"), + POCKET("pocket"), + RING("ring"), + SIGIL("sigil"), + TORSO("torso"), + TWO_HANDED("two-handed"); + + private final String value; + + ScapeFashionSlotRs3(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + public static Optional matches(String s) { + try { + var slot = ScapeFashionSlotRs3.valueOf(s); + return Optional.of(slot); + } catch (IllegalArgumentException e) { + return Optional.empty(); + } + } +} From 7d0fbe37d41286ed90d6bef2c123caf09c39bd52 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Thu, 10 Sep 2020 21:37:20 -0400 Subject: [PATCH 08/36] enum-ified command categories --- .../developer/BlacklistUserCommand.java | 7 +- .../developer/CreateGalleryCommand.java | 7 +- .../commands/developer/DefaultCommand.java | 7 +- .../commands/developer/InviteCommand.java | 7 +- .../commands/developer/PermissionCommand.java | 7 +- .../fsbot/commands/developer/TestCommand.java | 10 +- .../fsbot/commands/general/ColorCommand.java | 7 +- .../fsbot/commands/general/ColorsCommand.java | 7 +- .../fsbot/commands/general/HelpCommand.java | 8 +- .../fsbot/commands/general/OutfitCommand.java | 7 +- .../fsbot/commands/general/PingCommand.java | 7 +- .../commands/general/PrivacyCommand.java | 7 +- .../general/ShowGalleriesCommand.java | 7 +- .../fsbot/commands/general/StatsCommand.java | 7 +- .../commands/osrssearch/OsrsBodyCommand.java | 26 ++++ .../fsbot/commands/staff/EchoCommand.java | 7 +- .../commands/staff/GetOutfitCommand.java | 19 ++- .../commands/staff/GetServersCommand.java | 8 +- .../commands/staff/OutfitInfoCommand.java | 40 +++--- .../commands/staff/RemoveOutfitCommand.java | 109 ++++++++-------- .../fsbot/commands/staff/RetagCommand.java | 119 +++++++++--------- .../commands/staff/SetStatusCommand.java | 8 +- .../commands/staff/WelcomeMessageCommand.java | 7 +- .../dev/salmonllama/fsbot/guthix/Command.java | 2 +- .../fsbot/guthix/CommandCategory.java | 24 ++++ 25 files changed, 223 insertions(+), 248 deletions(-) create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/BlacklistUserCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/BlacklistUserCommand.java index 5a8cfe4..a83490d 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/BlacklistUserCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/BlacklistUserCommand.java @@ -2,10 +2,7 @@ package dev.salmonllama.fsbot.commands.developer; import dev.salmonllama.fsbot.database.controllers.UserBlacklistController; import dev.salmonllama.fsbot.database.models.UserBlacklist; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import java.util.Arrays; @@ -15,7 +12,7 @@ public class BlacklistUserCommand extends Command { @Override public String name() { return "Blacklist User"; } @Override public String description() { return "Adds the user to the bot's blacklist, preventing them from using any commands or features"; } @Override public String usage() { return "blacklistuser "; } - @Override public String category() { return "Developer"; } + @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "owner"); } @Override public Collection aliases() { return Arrays.asList("blacklistuser", "bluser", "sabusr"); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java index 5838bc6..3c6d3c0 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java @@ -10,10 +10,7 @@ import com.vdurmont.emoji.EmojiParser; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.GalleryController; import dev.salmonllama.fsbot.database.models.GalleryChannel; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.util.logging.ExceptionLogger; @@ -26,7 +23,7 @@ public class CreateGalleryCommand extends Command { // TODO: This command needs @Override public String name() { return "Create Gallery"; } @Override public String description() { return "Creates a channel gallery, tracking any posted images"; } @Override public String usage() { return "creategallery "; } - @Override public String category() { return "Developer"; } + @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "owner"); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("creategallery", "addgallery", "newgallery")); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/DefaultCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/DefaultCommand.java index ad811a4..ee3ac6e 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/DefaultCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/DefaultCommand.java @@ -1,9 +1,6 @@ package dev.salmonllama.fsbot.commands.developer; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import java.util.Collection; @@ -13,7 +10,7 @@ public class DefaultCommand extends Command { @Override public String name() { return "Default"; } @Override public String description() { return "The command that gets invoked when the prefix is used, but the command is not recognized"; } @Override public String usage() { return "you don't use this command"; } - @Override public String category() { return "Invisible"; } + @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.OWNER); } @Override public Collection aliases() { return Collections.singletonList("default"); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/InviteCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/InviteCommand.java index 487e8de..8c49b64 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/InviteCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/InviteCommand.java @@ -5,10 +5,7 @@ package dev.salmonllama.fsbot.commands.developer; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.DiscordApi; import org.javacord.api.entity.channel.TextChannel; @@ -20,7 +17,7 @@ public class InviteCommand extends Command { @Override public String name() { return "Invite"; } @Override public String description() { return "Spits out a bot invite"; } @Override public String usage() { return "invite"; } - @Override public String category() { return "Developer"; } + @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "owner"); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("invite", "inv")); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java index 676c7d6..bc70722 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java @@ -7,10 +7,7 @@ package dev.salmonllama.fsbot.commands.developer; import dev.salmonllama.fsbot.database.controllers.StaticPermissionController; import dev.salmonllama.fsbot.database.models.StaticPermission; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.entity.user.User; import org.javacord.api.util.logging.ExceptionLogger; @@ -24,7 +21,7 @@ public class PermissionCommand extends Command { @Override public String name() { return "Permission"; } @Override public String description() { return "Manages a user's static permissions"; } @Override public String usage() { return "permission "; } - @Override public String category() { return "Staff"; } + @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.OWNER); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("permission", "permissions", "perm", "perms")); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java index 7c109ee..8b73033 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java @@ -6,10 +6,7 @@ package dev.salmonllama.fsbot.commands.developer; import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import java.util.ArrayList; import java.util.Arrays; @@ -19,7 +16,7 @@ public class TestCommand extends Command { @Override public String name() { return "Test"; } @Override public String description() { return "A test command"; } @Override public String usage() { return "test"; } - @Override public String category() { return "Developer"; } + @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.OWNER); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("test", "t")); } @@ -28,7 +25,8 @@ public class TestCommand extends Command { ScapeFashionConnection conn = new ScapeFashionConnection(); try { - conn.osrsColor("#00ff00"); + var result = conn.osrsColor("#00ff00"); + ctx.reply(String.format("Best match: %s", result.getItems().get(0).toString())); } catch (Exception e) { ctx.reply(e.getMessage()); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/ColorCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/ColorCommand.java index ca11050..3233977 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/ColorCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/ColorCommand.java @@ -7,10 +7,7 @@ package dev.salmonllama.fsbot.commands.general; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.ColorRoleController; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.apache.logging.log4j.util.Strings; import org.javacord.api.entity.server.Server; import org.javacord.api.entity.user.User; @@ -23,7 +20,7 @@ public class ColorCommand extends Command { @Override public String name() { return "Color"; } @Override public String description() { return "Assigns the provided cosmetic role"; } @Override public String usage() { return "color "; } - @Override public String category() { return "General"; } + @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("color", "colour")); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/ColorsCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/ColorsCommand.java index 6fa021e..7b61b73 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/ColorsCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/ColorsCommand.java @@ -7,10 +7,7 @@ package dev.salmonllama.fsbot.commands.general; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.ColorRoleController; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import java.util.ArrayList; @@ -21,7 +18,7 @@ public class ColorsCommand extends Command { @Override public String name() { return "Colors"; } @Override public String description() { return "Lists available cosmetic roles"; } @Override public String usage() { return "colors"; } - @Override public String category() { return "General"; } + @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("colors", "colours")); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java index 224e331..73be01e 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java @@ -21,7 +21,7 @@ public class HelpCommand extends Command { @Override public String name() { return "Help"; } @Override public String description() { return "Shows all commands, or a specific command's information"; } @Override public String usage() { return "help [String command]"; } - @Override public String category() { return "General"; } + @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("help", "h")); } @@ -60,7 +60,7 @@ public class HelpCommand extends Command { List categories = new ArrayList<>(); for (Command cmd : guthix.listCommands()) { - String category = cmd.category(); + String category = cmd.category().getCategory(); if (!categories.contains(category)) { categories.add(category); @@ -82,7 +82,7 @@ public class HelpCommand extends Command { StringBuilder builder = new StringBuilder().append("```yml"); for (Command cmd : guthix.listCommands()) { - String cat = cmd.category().toLowerCase(); + String cat = cmd.category().getCategory().toLowerCase(); if (cat.equals(category.toLowerCase())) { builder.append("\n- ").append(cmd.name()); } @@ -161,7 +161,7 @@ public class HelpCommand extends Command { public boolean isCategory(String input) { for (Command cmd : guthix.listCommands()) { - String category = cmd.category(); + String category = cmd.category().getCategory(); if (category.toLowerCase().equals(input.toLowerCase())) { return true; } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/OutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/OutfitCommand.java index 4540ecd..f439337 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/OutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/OutfitCommand.java @@ -7,10 +7,7 @@ package dev.salmonllama.fsbot.commands.general; import dev.salmonllama.fsbot.database.controllers.OutfitController; import dev.salmonllama.fsbot.database.models.Outfit; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.Message; import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.util.logging.ExceptionLogger; @@ -27,7 +24,7 @@ public class OutfitCommand extends Command { @Override public String name() { return "Outfit"; } @Override public String description() { return "Generates a random image with the given tag. Use ~tags to see valid tags."; } @Override public String usage() { return "outfit "; } - @Override public String category() { return "General"; } + @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } @Override public Collection aliases() { return initAliases(); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/PingCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/PingCommand.java index 5ef8811..1e437aa 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/PingCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/PingCommand.java @@ -5,10 +5,7 @@ package dev.salmonllama.fsbot.commands.general; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import java.util.*; @@ -16,7 +13,7 @@ public class PingCommand extends Command { @Override public String name() { return "Ping"; } @Override public String description() { return "Pings the bot, checks for a heartbeat"; } @Override public String usage() { return "ping"; } - @Override public String category() { return "General"; } + @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } @Override public Collection aliases() { return new ArrayList<>(Collections.singletonList("ping")); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/PrivacyCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/PrivacyCommand.java index 253f115..0280006 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/PrivacyCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/PrivacyCommand.java @@ -1,9 +1,6 @@ package dev.salmonllama.fsbot.commands.general; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import java.util.Collection; @@ -13,7 +10,7 @@ public class PrivacyCommand extends Command { @Override public String name() { return "Privacy"; } @Override public String description() { return "Directs users to the bot's privacy policy"; } @Override public String usage() { return "privacy"; } - @Override public String category() { return "General"; } + @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } @Override public Collection aliases() { return Collections.singletonList("privacy"); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/ShowGalleriesCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/ShowGalleriesCommand.java index 6467fbd..ff786e6 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/ShowGalleriesCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/ShowGalleriesCommand.java @@ -10,23 +10,20 @@ import java.util.Arrays; import java.util.Collection; import java.util.stream.Collectors; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.channel.ServerTextChannel; import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.entity.server.Server; import dev.salmonllama.fsbot.database.controllers.GalleryController; import dev.salmonllama.fsbot.database.models.GalleryChannel; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; import org.javacord.api.util.logging.ExceptionLogger; public class ShowGalleriesCommand extends Command { @Override public String name() { return "Show Galleries"; } @Override public String description() { return "Shows registered gallery channels in the current server"; } @Override public String usage() { return "showgalleries"; } - @Override public String category() { return "General"; } + @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("showgalleries", "listgalleries")); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/StatsCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/StatsCommand.java index c2338f2..c47983d 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/StatsCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/StatsCommand.java @@ -4,19 +4,16 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import dev.salmonllama.fsbot.database.controllers.OutfitController; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; public class StatsCommand extends Command { @Override public String name() { return "Stats"; } @Override public String description() { return "Shows various stats from Fashionscape Bot"; } @Override public String usage() { return "stats"; } - @Override public String category() { return "General"; } + @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("stats")); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java new file mode 100644 index 0000000..d975048 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.osrssearch; + +import dev.salmonllama.fsbot.guthix.*; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; + +public class OsrsBodyCommand extends Command { + @Override public String name() { return "OSRS Body"; } + @Override public String description() { return "Searches scape.fashion for body slot items."; } + @Override public String usage() { return "osrsbody <#color or item name"; } + @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public Collection aliases() { return new ArrayList<>(Collections.singletonList("07body")); } + + @Override + public void onCommand(CommandContext ctx) { + + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java index a2dee70..d583d52 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java @@ -6,10 +6,7 @@ package dev.salmonllama.fsbot.commands.staff; import dev.salmonllama.fsbot.config.BotConfig; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import java.util.ArrayList; import java.util.Collection; @@ -19,7 +16,7 @@ public class EchoCommand extends Command { @Override public String name() { return "Echo"; } @Override public String description() { return "Echos your message. Typical bash"; } @Override public String usage() { return "echo "; } - @Override public String category() { return "Staff"; } + @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } @Override public Collection aliases() { return new ArrayList<>(Collections.singletonList("echo")); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/GetOutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/GetOutfitCommand.java index 583c043..8411e23 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/GetOutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/GetOutfitCommand.java @@ -6,20 +6,17 @@ package dev.salmonllama.fsbot.commands.staff; import dev.salmonllama.fsbot.database.controllers.OutfitController; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -public class GetOutfitCommand extends Command { // TODO: This command also needs HELP +public class GetOutfitCommand extends Command { @Override public String name() { return "Get Outift"; } @Override public String description() { return "Shows the outfit, given an ID"; } @Override public String usage() { return "getoutfit "; } - @Override public String category() { return "Staff"; } + @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("getoutfit", "get")); } @@ -29,11 +26,9 @@ public class GetOutfitCommand extends Command { // TODO: This command also needs String[] args = ctx.getArgs(); String id = args[0]; - OutfitController.findById(id).thenAccept(outfitOpt -> { - outfitOpt.ifPresentOrElse( - outfit -> ctx.reply(outfit.toString()), - () -> ctx.reply("Outfit not found, did you get the id right?") - ); - }); + OutfitController.findById(id).thenAccept(outfitOpt -> outfitOpt.ifPresentOrElse( + outfit -> ctx.reply(outfit.toString()), + () -> ctx.reply("Outfit not found, did you get the id right?") + )); } } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/GetServersCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/GetServersCommand.java index 54be113..ac849ca 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/GetServersCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/GetServersCommand.java @@ -5,11 +5,7 @@ package dev.salmonllama.fsbot.commands.staff; -import dev.salmonllama.fsbot.config.BotConfig; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.DiscordApi; import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.entity.server.Server; @@ -23,7 +19,7 @@ public class GetServersCommand extends Command { @Override public String name() { return "Get Servers"; } @Override public String description() { return "Lists all the servers the bot is in"; } @Override public String usage() { return "getservers"; } - @Override public String category() { return "Staff"; } + @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("getservers", "servers")); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/OutfitInfoCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/OutfitInfoCommand.java index 607d36c..7f61f08 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/OutfitInfoCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/OutfitInfoCommand.java @@ -5,12 +5,8 @@ package dev.salmonllama.fsbot.commands.staff; -import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.OutfitController; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import java.util.ArrayList; @@ -21,7 +17,7 @@ public class OutfitInfoCommand extends Command { @Override public String name() { return "Outfit Info"; } @Override public String description() { return "Shows all related info about the outfit"; } @Override public String usage() { return "outfitinfo "; } - @Override public String category() { return "Staff"; } + @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("outfitinfo", "oinfo")); } @@ -35,23 +31,19 @@ public class OutfitInfoCommand extends Command { } String id = args[0]; - OutfitController.findById(id).thenAcceptAsync(possibleOutfit -> { - possibleOutfit.ifPresentOrElse(outfit -> { - EmbedBuilder embed = new EmbedBuilder() - .setTitle("Outfit Info") - .setThumbnail(outfit.getLink()) - .setAuthor(ctx.getApi().getYourself()) - .setUrl(outfit.getLink()) - .setFooter(String.format("Tag: %s", outfit.getTag())) - .addField("Added", outfit.getCreated().toString(), true) - .addField("Updated", outfit.getUpdated().toString(), true) - .addField("Submitted by:", ctx.getApi().getUserById(outfit.getSubmitter()).join().getDiscriminatedName()) - .addField("Deleted", outfit.isDeleted() ? "True" : "False", true) - .addField("Featured", outfit.isFeatured() ? "True" : "False", true); - ctx.reply(embed); - }, () -> { - ctx.reply("Outfit not found"); - }); - }); + OutfitController.findById(id).thenAcceptAsync(possibleOutfit -> possibleOutfit.ifPresentOrElse(outfit -> { + EmbedBuilder embed = new EmbedBuilder() + .setTitle("Outfit Info") + .setThumbnail(outfit.getLink()) + .setAuthor(ctx.getApi().getYourself()) + .setUrl(outfit.getLink()) + .setFooter(String.format("Tag: %s", outfit.getTag())) + .addField("Added", outfit.getCreated().toString(), true) + .addField("Updated", outfit.getUpdated().toString(), true) + .addField("Submitted by:", ctx.getApi().getUserById(outfit.getSubmitter()).join().getDiscriminatedName()) + .addField("Deleted", outfit.isDeleted() ? "True" : "False", true) + .addField("Featured", outfit.isFeatured() ? "True" : "False", true); + ctx.reply(embed); + }, () -> ctx.reply("Outfit not found"))); } } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java index 3912aad..bb80328 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java @@ -8,10 +8,7 @@ package dev.salmonllama.fsbot.commands.staff; import com.vdurmont.emoji.EmojiParser; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.OutfitController; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.channel.TextChannel; import org.javacord.api.entity.message.embed.EmbedBuilder; @@ -23,7 +20,7 @@ public class RemoveOutfitCommand extends Command { @Override public String name() { return "Remove Outfit"; } @Override public String description() { return "Removes an outfit from the database given an id"; } @Override public String usage() { return "remove "; } - @Override public String category() { return "Staff"; } + @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("removeoutfit", "remove")); } @@ -40,67 +37,65 @@ public class RemoveOutfitCommand extends Command { // get the outfit, confirm deletion through reaction. String outfitId = args[0]; - OutfitController.findById(outfitId).thenAcceptAsync(possibleOutfit -> { - possibleOutfit.ifPresentOrElse(outfit -> { - // Send outfit info, react with selectors, add a listener to the message - EmbedBuilder embed = new EmbedBuilder() - .setTitle("Confirm Outfit Deletion") - .setThumbnail(outfit.getLink()) - .setAuthor(ctx.getApi().getUserById(outfit.getSubmitter()).join()) - .setUrl(outfit.getLink()) - .setFooter(String.format("Tag: %s", outfit.getTag())) - .addField("Added", outfit.getCreated().toString(), true) - .addField("Updated", outfit.getUpdated().toString(), true) - .addField("Submitted by:", ctx.getApi().getUserById(outfit.getSubmitter()).join().getDiscriminatedName()) - .addField("Deleted", outfit.isDeleted() ? "True" : "False", true) - .addField("Featured", outfit.isFeatured() ? "True" : "False", true); + OutfitController.findById(outfitId).thenAcceptAsync(possibleOutfit -> possibleOutfit.ifPresentOrElse(outfit -> { + // Send outfit info, react with selectors, add a listener to the message + EmbedBuilder embed = new EmbedBuilder() + .setTitle("Confirm Outfit Deletion") + .setThumbnail(outfit.getLink()) + .setAuthor(ctx.getApi().getUserById(outfit.getSubmitter()).join()) + .setUrl(outfit.getLink()) + .setFooter(String.format("Tag: %s", outfit.getTag())) + .addField("Added", outfit.getCreated().toString(), true) + .addField("Updated", outfit.getUpdated().toString(), true) + .addField("Submitted by:", ctx.getApi().getUserById(outfit.getSubmitter()).join().getDiscriminatedName()) + .addField("Deleted", outfit.isDeleted() ? "True" : "False", true) + .addField("Featured", outfit.isFeatured() ? "True" : "False", true); - ctx.reply(embed).thenAcceptAsync(msg -> { - msg.addReaction(EmojiParser.parseToUnicode(":white_check_mark:")); - msg.addReaction(EmojiParser.parseToUnicode(":octagonal_sign:")); + ctx.reply(embed).thenAcceptAsync(msg -> { + msg.addReaction(EmojiParser.parseToUnicode(":white_check_mark:")); + msg.addReaction(EmojiParser.parseToUnicode(":octagonal_sign:")); - msg.addReactionAddListener(event -> { - if (event.getUser().getId() != authorId) { - return; - } + msg.addReactionAddListener(event -> { + if (event.getUser().getId() != authorId) { + return; + } - if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":white_check_mark:"))) { - // Delete the outfit - OutfitController.delete(outfit.getId()); + if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":white_check_mark:"))) { + // Delete the outfit + OutfitController.delete(outfit.getId()); - EmbedBuilder response = new EmbedBuilder() - .setTitle("Deletion Successful!") - .setDescription(String.format("Outfit %s marked as deleted", outfit.getId())); + EmbedBuilder response = new EmbedBuilder() + .setTitle("Deletion Successful!") + .setDescription(String.format("Outfit %s marked as deleted", outfit.getId())); - msg.delete(); - ctx.reply(response); + msg.delete(); + ctx.reply(response); - EmbedBuilder log = new EmbedBuilder() - .setTitle("Outfit Marked as Deleted") - .setThumbnail(outfit.getLink()) - .addField("Deleted By:", ctx.getAuthor().getDiscriminatedName()); + EmbedBuilder log = new EmbedBuilder() + .setTitle("Outfit Marked as Deleted") + .setThumbnail(outfit.getLink()) + .addField("Deleted By:", ctx.getAuthor().getDiscriminatedName()); - ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent(chnl -> { - chnl.sendMessage(log); - }); + ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent( + chnl -> chnl.sendMessage(log) + ); - } else if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":octagonal_sign:"))) { - // Do nothing - EmbedBuilder response = new EmbedBuilder() - .setTitle("Deletion Aborted") - .setDescription(String.format("No modifications were made to %s", outfit.getId())); + } else if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":octagonal_sign:"))) { + // Do nothing + EmbedBuilder response = new EmbedBuilder() + .setTitle("Deletion Aborted") + .setDescription(String.format("No modifications were made to %s", outfit.getId())); - ctx.reply(response); - } - }); - }); - }, () -> { - EmbedBuilder response = new EmbedBuilder() - .setTitle("Outfit not Found") - .setDescription(String.format("ID %s does not exist", outfitId)); + ctx.reply(response); + } + }); + }); + }, () -> { + EmbedBuilder response = new EmbedBuilder() + .setTitle("Outfit not Found") + .setDescription(String.format("ID %s does not exist", outfitId)); - ctx.reply(response); - }); - }); + ctx.reply(response); + })); } } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java index c362e3e..dc6b58c 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java @@ -9,10 +9,7 @@ import com.vdurmont.emoji.EmojiParser; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.OutfitController; import dev.salmonllama.fsbot.database.models.Outfit; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.channel.TextChannel; import org.javacord.api.entity.message.embed.EmbedBuilder; @@ -26,7 +23,7 @@ public class RetagCommand extends Command { @Override public String name() { return "Retag"; } @Override public String description() { return "Changes the tag of the given outfit"; } @Override public String usage() { return "retag "; } - @Override public String category() { return "Staff"; } + @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } @Override public Collection aliases() { return new ArrayList<>(Collections.singletonList("retag")); } @@ -45,71 +42,69 @@ public class RetagCommand extends Command { String outfitId = args[0]; String newTag = args[1]; - OutfitController.findById(outfitId).thenAcceptAsync(possibleOutfit -> { - possibleOutfit.ifPresentOrElse(outfit -> { - // Send info, confirmation, and add reaction listener - EmbedBuilder response = new EmbedBuilder() - .setTitle("Confirm Tag Edit") - .setThumbnail(outfit.getLink()) - .setAuthor(ctx.getApi().getUserById(outfit.getSubmitter()).join()) - .setUrl(outfit.getLink()) - .addField("Current Tag:", outfit.getTag()) - .addField("New Tag:", newTag); + OutfitController.findById(outfitId).thenAcceptAsync(possibleOutfit -> possibleOutfit.ifPresentOrElse(outfit -> { + // Send info, confirmation, and add reaction listener + EmbedBuilder response = new EmbedBuilder() + .setTitle("Confirm Tag Edit") + .setThumbnail(outfit.getLink()) + .setAuthor(ctx.getApi().getUserById(outfit.getSubmitter()).join()) + .setUrl(outfit.getLink()) + .addField("Current Tag:", outfit.getTag()) + .addField("New Tag:", newTag); - ctx.reply(response).thenAcceptAsync(msg -> { - msg.addReaction(EmojiParser.parseToUnicode(":white_check_mark:")); - msg.addReaction(EmojiParser.parseToUnicode(":octagonal_sign:")); + ctx.reply(response).thenAcceptAsync(msg -> { + msg.addReaction(EmojiParser.parseToUnicode(":white_check_mark:")); + msg.addReaction(EmojiParser.parseToUnicode(":octagonal_sign:")); - msg.addReactionAddListener(event -> { - if (event.getUser().getId() != authorId) { - return; - } + msg.addReactionAddListener(event -> { + if (event.getUser().getId() != authorId) { + return; + } - if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":white_check_mark:"))) { - // Update the outfit - Outfit newOutfit = new Outfit.OutfitBuilder(outfit) - .setTag(newTag) - .setUpdated(new Timestamp(System.currentTimeMillis())) - .build(); + if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":white_check_mark:"))) { + // Update the outfit + Outfit newOutfit = new Outfit.OutfitBuilder(outfit) + .setTag(newTag) + .setUpdated(new Timestamp(System.currentTimeMillis())) + .build(); - OutfitController.update(newOutfit).thenAcceptAsync((Void) -> { - EmbedBuilder embed = new EmbedBuilder() - .setTitle("Outfit retagged successfully!") - .setDescription(String.format("Outfit %s will now display as %s", newOutfit.getId(), newOutfit.getTag())); - - msg.delete(); - ctx.reply(embed); - - EmbedBuilder log = new EmbedBuilder() - .setTitle("Outfit Retagged") - .setThumbnail(outfit.getLink()) - .addField("New tag:", newTag); - - ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent(chnl -> { - chnl.sendMessage(log); - }); - }); - - } else if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":octagonal_sign:"))) { - // Do nothing - msg.delete(); + OutfitController.update(newOutfit).thenAcceptAsync((Void) -> { EmbedBuilder embed = new EmbedBuilder() - .setTitle("Update Cancelled") - .setDescription("No modifications were made"); + .setTitle("Outfit retagged successfully!") + .setDescription(String.format("Outfit %s will now display as %s", newOutfit.getId(), newOutfit.getTag())); + msg.delete(); ctx.reply(embed); - } - }); - }); - }, () -> { - // Err, outfit not found - EmbedBuilder response = new EmbedBuilder() - .setTitle("Error occurred") - .setDescription("That ID was not found in the database") - .setColor(Color.RED); - ctx.reply(response); + EmbedBuilder log = new EmbedBuilder() + .setTitle("Outfit Retagged") + .setThumbnail(outfit.getLink()) + .addField("New tag:", newTag); + + ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent( + chnl -> chnl.sendMessage(log) + ); + }); + + } else if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":octagonal_sign:"))) { + // Do nothing + msg.delete(); + EmbedBuilder embed = new EmbedBuilder() + .setTitle("Update Cancelled") + .setDescription("No modifications were made"); + + ctx.reply(embed); + } + }); }); - }); + }, () -> { + // Err, outfit not found + EmbedBuilder response = new EmbedBuilder() + .setTitle("Error occurred") + .setDescription("That ID was not found in the database") + .setColor(Color.RED); + + ctx.reply(response); + })); } } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/SetStatusCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/SetStatusCommand.java index 785371a..23d14c1 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/SetStatusCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/SetStatusCommand.java @@ -6,11 +6,7 @@ package dev.salmonllama.fsbot.commands.staff; import com.vdurmont.emoji.EmojiParser; -import dev.salmonllama.fsbot.config.BotConfig; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import java.awt.*; @@ -22,7 +18,7 @@ public class SetStatusCommand extends Command { @Override public String name() { return "Set Status"; } @Override public String description() { return "Updates the bot's current status"; } @Override public String usage() { return "updatestatus "; } - @Override public String category() { return "Staff"; } + @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("setstatus", "status")); } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java index 997260d..1beb597 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java @@ -8,10 +8,7 @@ package dev.salmonllama.fsbot.commands.staff; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.ServerConfigController; import dev.salmonllama.fsbot.database.models.ServerConfig; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.util.logging.ExceptionLogger; @@ -23,7 +20,7 @@ public class WelcomeMessageCommand extends Command { @Override public String name() { return "Welcome Message"; } @Override public String description() { return "View or update the server welcome message. Options: get|set|getchannel|setchannel."; } @Override public String usage() { return "welcomemessage [String newMessage]"; } - @Override public String category() { return "Staff"; } + @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("welcomemessage", "wmsg")); } diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/Command.java b/src/main/java/dev/salmonllama/fsbot/guthix/Command.java index 92c8df8..8ee9c16 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/Command.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/Command.java @@ -12,7 +12,7 @@ public abstract class Command { public abstract String name(); public abstract String description(); public abstract String usage(); - public abstract String category(); + public abstract CommandCategory category(); public abstract CommandPermission permission(); public abstract Collection aliases(); diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java b/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java new file mode 100644 index 0000000..47903db --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.guthix; + +public enum CommandCategory { + DEVELOPER("Developer"), + GENERAL("General"), + OSRS_ITEM_SEARCH("Oldschool Item Search"), + RS3_ITEM_SEARCH("Runescape Item Search"), + STAFF("Staff"); + + private final String category; + + CommandCategory(String category) { + this.category = category; + } + + public String getCategory() { + return category; + } +} From 0b81aae27202c1ef6752cacb26801ba8a95cd3aa Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Thu, 10 Sep 2020 21:43:04 -0400 Subject: [PATCH 09/36] Missed a command --- .../salmonllama/fsbot/commands/staff/AddColorCommand.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/AddColorCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/AddColorCommand.java index 2863f78..4d0bb79 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/AddColorCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/AddColorCommand.java @@ -8,10 +8,7 @@ package dev.salmonllama.fsbot.commands.staff; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.ColorRoleController; import dev.salmonllama.fsbot.database.models.ColorRole; -import dev.salmonllama.fsbot.guthix.Command; -import dev.salmonllama.fsbot.guthix.CommandContext; -import dev.salmonllama.fsbot.guthix.CommandPermission; -import dev.salmonllama.fsbot.guthix.PermissionType; +import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.permission.Role; import java.util.ArrayList; @@ -23,7 +20,7 @@ public class AddColorCommand extends Command { @Override public String name() { return "Add Color"; } @Override public String description() { return "adds the provided role to the toggleable cosmetic roles."; } @Override public String usage() { return "addcolor "; } - @Override public String category() { return "Staff"; } + @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("addcolor", "addcolour", "addclr")); } From 187e2dd79b38f8f4ba1f9ca5ba43ae7b333e1cf9 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Thu, 10 Sep 2020 22:12:23 -0400 Subject: [PATCH 10/36] Fixed naming consistency --- .../endpoints/scapefashion/ScapeFashionConnection.java | 4 ++-- ...capeFashionSlotOSRS.java => ScapeFashionSlotOsrs.java} | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) rename src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/{ScapeFashionSlotOSRS.java => ScapeFashionSlotOsrs.java} (79%) diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java index 6676f2a..dccb24e 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java @@ -34,7 +34,7 @@ public class ScapeFashionConnection { return response; } - private ScapeFashionResult osrsColor(String color, ScapeFashionSlotOSRS slot) throws Exception { + public ScapeFashionResult osrsColor(String color, ScapeFashionSlotOsrs slot) throws Exception { String uri = OSRS_REQUEST_URL + "/colors/" + encode(color) + "?slot=" + encode(slot.getValue()); String link = OSRS_LINK_URL + "/colors/" + encode(color) + "?slot=" + encode(slot.getValue()); @@ -52,7 +52,7 @@ public class ScapeFashionConnection { return response; } - private ScapeFashionResult osrsItem(String item, ScapeFashionSlotOSRS slot) throws Exception { + private ScapeFashionResult osrsItem(String item, ScapeFashionSlotOsrs slot) throws Exception { String uri = OSRS_REQUEST_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); String link = OSRS_LINK_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotOSRS.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotOsrs.java similarity index 79% rename from src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotOSRS.java rename to src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotOsrs.java index 7a15895..04a5651 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotOSRS.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionSlotOsrs.java @@ -8,7 +8,7 @@ package dev.salmonllama.fsbot.endpoints.scapefashion; import java.util.Optional; // Source: https://github.com/ncpierson/fashionscape/blob/master/api/data/tools/slot.js -public enum ScapeFashionSlotOSRS { +public enum ScapeFashionSlotOsrs { AMMUNITION("ammunition"), BODY("body"), CAPE("cape"), @@ -23,7 +23,7 @@ public enum ScapeFashionSlotOSRS { private final String value; - ScapeFashionSlotOSRS(String value) { + ScapeFashionSlotOsrs(String value) { this.value = value; } @@ -31,9 +31,9 @@ public enum ScapeFashionSlotOSRS { return value; } - public static Optional matches(String s) { + public static Optional matches(String s) { try { - var slot = ScapeFashionSlotOSRS.valueOf(s); + var slot = ScapeFashionSlotOsrs.valueOf(s); return Optional.of(slot); } catch (IllegalArgumentException e) { return Optional.empty(); From 28534320cf6353175cc48ef5c5e8535c82191eb8 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Fri, 11 Sep 2020 23:20:53 -0400 Subject: [PATCH 11/36] Added more class fields for better 1:1 result mapping --- .../scapefashion/ScapeFashionImages.java | 13 ++++++++++ .../scapefashion/ScapeFashionItem.java | 26 ++++++++++++++----- .../scapefashion/ScapeFashionWiki.java | 23 ++++++++++++++++ 3 files changed, 55 insertions(+), 7 deletions(-) create mode 100644 src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionImages.java create mode 100644 src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionWiki.java diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionImages.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionImages.java new file mode 100644 index 0000000..9bc208c --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionImages.java @@ -0,0 +1,13 @@ +package dev.salmonllama.fsbot.endpoints.scapefashion; + +public class ScapeFashionImages { + private String detail; + + public ScapeFashionImages() { + + } + + public String getDetail() { + return detail; + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java index a9faa13..051e9d2 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionItem.java @@ -6,20 +6,26 @@ package dev.salmonllama.fsbot.endpoints.scapefashion; public class ScapeFashionItem { + private final ScapeFashionImages images; private final String name; private final String slot; - private final String link; + private final ScapeFashionWiki wiki; private final String[] colors; private final float match; private ScapeFashionItem(Builder builder) { + this.images = builder.images; this.name = builder.name; this.slot = builder.slot; - this.link = builder.link; + this.wiki = builder.wiki; this.colors = builder.colors; this.match = builder.match; } + public ScapeFashionImages getImages() { + return images; + } + public String getName() { return name; } @@ -28,8 +34,8 @@ public class ScapeFashionItem { return slot; } - public String getLink() { - return link; + public ScapeFashionWiki getWiki() { + return wiki; } public String[] getColors() { @@ -46,9 +52,10 @@ public class ScapeFashionItem { } public static class Builder { + private ScapeFashionImages images; private String name; private String slot; - private String link; + private ScapeFashionWiki wiki; private String[] colors; private float match; @@ -56,6 +63,11 @@ public class ScapeFashionItem { } + public Builder setImages(ScapeFashionImages images) { + this.images = images; + return this; + } + public Builder setName(String name) { this.name = name; return this; @@ -66,8 +78,8 @@ public class ScapeFashionItem { return this; } - public Builder setLink(String link) { - this.link = link; + public Builder setWiki(ScapeFashionWiki wiki) { + this.wiki = wiki; return this; } diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionWiki.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionWiki.java new file mode 100644 index 0000000..2bb26a4 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionWiki.java @@ -0,0 +1,23 @@ +package dev.salmonllama.fsbot.endpoints.scapefashion; + +public class ScapeFashionWiki { + private String api; + private String link; + private int pageId; + + public ScapeFashionWiki() { + + } + + public String getApi() { + return api; + } + + public String getLink() { + return link; + } + + public int getPageId() { + return pageId; + } +} From 86614754724392109500b52536113df415939863 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Fri, 11 Sep 2020 23:23:01 -0400 Subject: [PATCH 12/36] Initial body command and base utilities --- .../commands/osrssearch/OsrsBodyCommand.java | 21 +++++++++++ .../osrssearch/OsrsSearchUtilities.java | 36 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java index d975048..8342ae1 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java @@ -5,9 +5,13 @@ package dev.salmonllama.fsbot.commands.osrssearch; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotOsrs; import dev.salmonllama.fsbot.guthix.*; +import org.apache.logging.log4j.util.Strings; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -21,6 +25,23 @@ public class OsrsBodyCommand extends Command { @Override public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + var args = ctx.getArgs(); + if (OsrsSearchUtilities.isColor(args[0])) { + // Color search + ScapeFashionConnection conn = new ScapeFashionConnection(); + try { // TODO: Commands with items instead of colors do not work + var bestMatch = conn.osrsColor(Strings.join(Arrays.asList(args), ' '), ScapeFashionSlotOsrs.BODY); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + OsrsSearchUtilities.handleException(e, ctx); + } + } else { + // Item search + } } } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java new file mode 100644 index 0000000..a9bd1ff --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.osrssearch; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionResult; +import dev.salmonllama.fsbot.guthix.CommandContext; +import org.javacord.api.entity.channel.TextChannel; +import org.javacord.api.entity.message.embed.EmbedBuilder; + +public class OsrsSearchUtilities { + static boolean isColor(String s) { + return s.startsWith("#"); + } + + static void sendResult(ScapeFashionResult result, TextChannel channel) { + var bestMatch = result.getItems().get(0); + EmbedBuilder embed = new EmbedBuilder() + .setTitle(String.format("Best Match - %s", bestMatch.getName())) + .setImage(bestMatch.getImages().getDetail()) + .setUrl(result.getLink()) + .setDescription(String.format("Click the title or visit %s for full results!", result.getLink())); + + channel.sendMessage(embed); + } + + static void handleException(Exception e, CommandContext ctx) { + EmbedBuilder embed = new EmbedBuilder() + .setTitle("An error has occurred!") + .setDescription(e.getMessage()); + + ctx.reply(embed); + } +} From e44687377b46457199d6d25847f50d523e76b34c Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 12:27:24 -0400 Subject: [PATCH 13/36] Adding frontend-exception handler utility --- .../fsbot/utilities/DiscordUtilities.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java diff --git a/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java b/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java new file mode 100644 index 0000000..c3c72e6 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.utilities; + +import dev.salmonllama.fsbot.config.BotConfig; +import dev.salmonllama.fsbot.guthix.CommandContext; +import org.javacord.api.entity.message.embed.EmbedBuilder; + +import java.awt.*; + +public class DiscordUtilities { + public static void handleException(Exception e, CommandContext ctx) { + EmbedBuilder embed = new EmbedBuilder() + .setTitle("Exception caught in command thread:") + .addField("message:", e.getMessage()) + .setColor(Color.RED); + + logException(e, ctx); + ctx.reply(embed); + } + + private static void logException(Exception e, CommandContext ctx) { + EmbedBuilder embed = new EmbedBuilder() + .setTitle("Runtime error:") + .addField("Message:", e.getMessage()) + .setColor(Color.RED); + + ctx.getApi().getTextChannelById(BotConfig.ACTIVITY_LOG).ifPresent(channel -> channel.sendMessage(embed)); + } +} From ccd19910b5ab559070c68bb432ba03c9a5d8df6f Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 12:27:49 -0400 Subject: [PATCH 14/36] Removed unused import --- .../java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java index d583d52..f0a4e6a 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java @@ -5,7 +5,6 @@ package dev.salmonllama.fsbot.commands.staff; -import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.guthix.*; import java.util.ArrayList; From ce62a37fdd9eaab21bec84cc6e3dfa2db9906911 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 12:28:03 -0400 Subject: [PATCH 15/36] Implemented Logback --- src/main/java/dev/salmonllama/fsbot/Main.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/Main.java b/src/main/java/dev/salmonllama/fsbot/Main.java index 794cb29..940cb07 100644 --- a/src/main/java/dev/salmonllama/fsbot/Main.java +++ b/src/main/java/dev/salmonllama/fsbot/Main.java @@ -12,6 +12,8 @@ import dev.salmonllama.fsbot.listeners.*; import org.javacord.api.DiscordApiBuilder; import dev.salmonllama.fsbot.utilities.Constants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -20,6 +22,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Main { + + private final static Logger logger = LoggerFactory.getLogger(Main.class); + public static void main(String[] args) { String configLocation = Constants.BOT_FOLDER.concat(Constants.CONFIG_NAME); BotConfig.initConfig(configLocation, false); @@ -40,8 +45,7 @@ public class Main { api.addMessageCreateListener(new AchievementListener()); api.addMessageCreateListener(new ReportListener()); - System.out.printf("Bot invite: %s%n", api.createBotInvite()); - System.out.printf("Logged in as %s%n", api.getYourself().getDiscriminatedName()); + logger.info("{} reporting for duty", api.getYourself().getDiscriminatedName()); }); SpringApplication.run(Main.class, args); From bc69c31713d5e03dda6ec1241f6751d93d952cbe Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 12:28:28 -0400 Subject: [PATCH 16/36] Finalized response embed --- .../osrssearch/OsrsSearchUtilities.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java index a9bd1ff..9debece 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java @@ -6,10 +6,13 @@ package dev.salmonllama.fsbot.commands.osrssearch; import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionResult; -import dev.salmonllama.fsbot.guthix.CommandContext; +import org.apache.logging.log4j.util.Strings; import org.javacord.api.entity.channel.TextChannel; import org.javacord.api.entity.message.embed.EmbedBuilder; +import java.awt.*; +import java.util.Arrays; + public class OsrsSearchUtilities { static boolean isColor(String s) { return s.startsWith("#"); @@ -17,20 +20,17 @@ public class OsrsSearchUtilities { static void sendResult(ScapeFashionResult result, TextChannel channel) { var bestMatch = result.getItems().get(0); + var colors = Strings.join(Arrays.asList(bestMatch.getColors()), ','); EmbedBuilder embed = new EmbedBuilder() .setTitle(String.format("Best Match - %s", bestMatch.getName())) .setImage(bestMatch.getImages().getDetail()) .setUrl(result.getLink()) + .setColor(Color.decode(bestMatch.getColors()[0])) + .addField("Match:", String.valueOf(bestMatch.getMatch()), true) + .addField("Colors:", colors, true) + .setDescription(String.format("Click the title or visit %s for full results!", result.getLink())); channel.sendMessage(embed); } - - static void handleException(Exception e, CommandContext ctx) { - EmbedBuilder embed = new EmbedBuilder() - .setTitle("An error has occurred!") - .setDescription(e.getMessage()); - - ctx.reply(embed); - } } From 26cbbee03e82d850ae45cb4a32842cb2da5a4823 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 15:34:01 -0400 Subject: [PATCH 17/36] Completed OSRS Search Module --- .../commands/osrssearch/OsrsBodyCommand.java | 28 ++++++--- .../commands/osrssearch/OsrsCapeCommand.java | 61 +++++++++++++++++++ .../commands/osrssearch/OsrsFeetCommand.java | 61 +++++++++++++++++++ .../commands/osrssearch/OsrsHandCommand.java | 61 +++++++++++++++++++ .../commands/osrssearch/OsrsHeadCommand.java | 61 +++++++++++++++++++ .../commands/osrssearch/OsrsLegsCommand.java | 61 +++++++++++++++++++ .../commands/osrssearch/OsrsNeckCommand.java | 61 +++++++++++++++++++ .../osrssearch/OsrsSearchCommand.java | 60 ++++++++++++++++++ .../osrssearch/OsrsShieldCommand.java | 61 +++++++++++++++++++ .../osrssearch/OsrsWeaponCommand.java | 61 +++++++++++++++++++ 10 files changed, 569 insertions(+), 7 deletions(-) create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsCapeCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsFeetCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHandCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHeadCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsLegsCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsNeckCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsShieldCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsWeaponCommand.java diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java index 8342ae1..b799eb1 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java @@ -8,20 +8,24 @@ package dev.salmonllama.fsbot.commands.osrssearch; import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotOsrs; import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; public class OsrsBodyCommand extends Command { @Override public String name() { return "OSRS Body"; } @Override public String description() { return "Searches scape.fashion for body slot items."; } - @Override public String usage() { return "osrsbody <#color or item name"; } + @Override public String usage() { return "osrsbody <#color or item name>"; } @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Collections.singletonList("07body")); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07body", "osrsbody")); } + + private static final Logger logger = LoggerFactory.getLogger(OsrsBodyCommand.class); @Override public void onCommand(CommandContext ctx) { @@ -31,17 +35,27 @@ public class OsrsBodyCommand extends Command { } var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + if (OsrsSearchUtilities.isColor(args[0])) { // Color search - ScapeFashionConnection conn = new ScapeFashionConnection(); - try { // TODO: Commands with items instead of colors do not work - var bestMatch = conn.osrsColor(Strings.join(Arrays.asList(args), ' '), ScapeFashionSlotOsrs.BODY); + try { + var bestMatch = conn.osrsColor(params, ScapeFashionSlotOsrs.BODY); OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); } catch (Exception e) { - OsrsSearchUtilities.handleException(e, ctx); + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); } } else { // Item search + try { + var bestMatch = conn.osrsItem(params, ScapeFashionSlotOsrs.BODY); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } } } } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsCapeCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsCapeCommand.java new file mode 100644 index 0000000..135cc89 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsCapeCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.osrssearch; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotOsrs; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +public class OsrsCapeCommand extends Command { + @Override public String name() { return "OSRS Cape"; } + @Override public String description() { return "Searches scape.fashion for cape slot items."; } + @Override public String usage() { return "osrscape <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07cape", "osrscape")); } + + private static final Logger logger = LoggerFactory.getLogger(OsrsCapeCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (OsrsSearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.osrsColor(params, ScapeFashionSlotOsrs.CAPE); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.osrsItem(params, ScapeFashionSlotOsrs.CAPE); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsFeetCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsFeetCommand.java new file mode 100644 index 0000000..dc4ad65 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsFeetCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.osrssearch; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotOsrs; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +public class OsrsFeetCommand extends Command { + @Override public String name() { return "OSRS Feet"; } + @Override public String description() { return "Searches scape.fashion for foot slot items."; } + @Override public String usage() { return "osrsfeet <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07feet", "osrsfeet")); } + + private static final Logger logger = LoggerFactory.getLogger(OsrsFeetCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (OsrsSearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.osrsColor(params, ScapeFashionSlotOsrs.FEET); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.osrsItem(params, ScapeFashionSlotOsrs.FEET); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHandCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHandCommand.java new file mode 100644 index 0000000..44a0f33 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHandCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.osrssearch; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotOsrs; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +public class OsrsHandCommand extends Command { + @Override public String name() { return "OSRS Hand"; } + @Override public String description() { return "Searches scape.fashion for hand slot items."; } + @Override public String usage() { return "osrshand <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07hand", "osrshand")); } + + private static final Logger logger = LoggerFactory.getLogger(OsrsHandCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (OsrsSearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.osrsColor(params, ScapeFashionSlotOsrs.HAND); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.osrsItem(params, ScapeFashionSlotOsrs.HAND); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHeadCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHeadCommand.java new file mode 100644 index 0000000..140ef2e --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHeadCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.osrssearch; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotOsrs; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +public class OsrsHeadCommand extends Command { + @Override public String name() { return "OSRS Head"; } + @Override public String description() { return "Searches scape.fashion for head slot items."; } + @Override public String usage() { return "osrshead <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07head", "osrshead")); } + + private static final Logger logger = LoggerFactory.getLogger(OsrsHeadCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (OsrsSearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.osrsColor(params, ScapeFashionSlotOsrs.HEAD); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.osrsItem(params, ScapeFashionSlotOsrs.HEAD); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsLegsCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsLegsCommand.java new file mode 100644 index 0000000..95302ff --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsLegsCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.osrssearch; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotOsrs; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +public class OsrsLegsCommand extends Command { + @Override public String name() { return "OSRS Legs"; } + @Override public String description() { return "Searches scape.fashion for leg slot items."; } + @Override public String usage() { return "osrslegs <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07legs", "osrslegs")); } + + private static final Logger logger = LoggerFactory.getLogger(OsrsLegsCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (OsrsSearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.osrsColor(params, ScapeFashionSlotOsrs.LEG); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.osrsItem(params, ScapeFashionSlotOsrs.LEG); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsNeckCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsNeckCommand.java new file mode 100644 index 0000000..b7af727 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsNeckCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.osrssearch; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotOsrs; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +public class OsrsNeckCommand extends Command { + @Override public String name() { return "OSRS Neck"; } + @Override public String description() { return "Searches scape.fashion for neck slot items."; } + @Override public String usage() { return "osrsneck <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07neck", "osrsneck")); } + + private static final Logger logger = LoggerFactory.getLogger(OsrsNeckCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (OsrsSearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.osrsColor(params, ScapeFashionSlotOsrs.NECK); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.osrsItem(params, ScapeFashionSlotOsrs.NECK); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchCommand.java new file mode 100644 index 0000000..6cf5fcf --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchCommand.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.osrssearch; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +public class OsrsSearchCommand extends Command { + @Override public String name() { return "OSRS Search"; } + @Override public String description() { return "Searches scape.fashion for any items."; } + @Override public String usage() { return "osrssearch <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07search", "osrssearch")); } + + private static final Logger logger = LoggerFactory.getLogger(OsrsSearchCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (OsrsSearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.osrsColor(params); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.osrsItem(params); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsShieldCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsShieldCommand.java new file mode 100644 index 0000000..f776eae --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsShieldCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.osrssearch; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotOsrs; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +public class OsrsShieldCommand extends Command { + @Override public String name() { return "OSRS Shield"; } + @Override public String description() { return "Searches scape.fashion for shield slot items."; } + @Override public String usage() { return "osrsshield <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07shield", "osrsshield")); } + + private static final Logger logger = LoggerFactory.getLogger(OsrsShieldCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (OsrsSearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.osrsColor(params, ScapeFashionSlotOsrs.SHIELD); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.osrsItem(params, ScapeFashionSlotOsrs.SHIELD); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsWeaponCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsWeaponCommand.java new file mode 100644 index 0000000..6898449 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsWeaponCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.osrssearch; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotOsrs; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +public class OsrsWeaponCommand extends Command { + @Override public String name() { return "OSRS Weapon"; } + @Override public String description() { return "Searches scape.fashion for weapo slot items."; } + @Override public String usage() { return "osrsweapon <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07weapon", "osrsweapon")); } + + private static final Logger logger = LoggerFactory.getLogger(OsrsWeaponCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (OsrsSearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.osrsColor(params, ScapeFashionSlotOsrs.WEAPON); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.osrsItem(params, ScapeFashionSlotOsrs.WEAPON); + OsrsSearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} From bd747c630283f385777e1dceed5e7f54acccd826 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 15:34:26 -0400 Subject: [PATCH 18/36] Registered OSRS search commands --- .../java/dev/salmonllama/fsbot/guthix/Guthix.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java index e65f7ae..8cdd874 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java @@ -7,6 +7,7 @@ package dev.salmonllama.fsbot.guthix; import dev.salmonllama.fsbot.commands.developer.*; import dev.salmonllama.fsbot.commands.general.*; +import dev.salmonllama.fsbot.commands.osrssearch.*; import dev.salmonllama.fsbot.commands.staff.OutfitInfoCommand; import dev.salmonllama.fsbot.commands.staff.*; import org.javacord.api.DiscordApi; @@ -64,6 +65,20 @@ public class Guthix implements MessageCreateListener { addCommand(new HelpCommand(this)); addCommand(new StatsCommand()); addCommand(new PrivacyCommand()); + + // Osrs Search Commands + addCommand(new OsrsSearchCommand()); + addCommand(new OsrsHeadCommand()); + addCommand(new OsrsBodyCommand()); + addCommand(new OsrsHeadCommand()); + addCommand(new OsrsLegsCommand()); + addCommand(new OsrsFeetCommand()); + addCommand(new OsrsCapeCommand()); + addCommand(new OsrsNeckCommand()); + addCommand(new OsrsShieldCommand()); + addCommand(new OsrsWeaponCommand()); + + // Rs3 Search Commands } public void addCommand(Command cmd) { From e3db8db80b02f2fc995c39433b167f115e2487fe Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 15:35:57 -0400 Subject: [PATCH 19/36] Fix filter bug for new category system --- .../dev/salmonllama/fsbot/commands/general/HelpCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java index 73be01e..70dbb64 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java @@ -161,7 +161,7 @@ public class HelpCommand extends Command { public boolean isCategory(String input) { for (Command cmd : guthix.listCommands()) { - String category = cmd.category().getCategory(); + String category = cmd.category().getCategory().toLowerCase(); if (category.toLowerCase().equals(input.toLowerCase())) { return true; } From 3788c3f042a611b617dcb2d2b0abfa9da7ec8ab6 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 15:36:34 -0400 Subject: [PATCH 20/36] Prevented returning bestMatch as searched items --- .../scapefashion/ScapeFashionConnection.java | 23 ++++++++++++++++--- .../fsbot/guthix/CommandCategory.java | 4 ++-- .../dev/salmonllama/fsbot/guthix/Guthix.java | 6 ++--- .../fsbot/utilities/DiscordUtilities.java | 10 ++++++++ 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java index dccb24e..2bf6301 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java @@ -6,6 +6,9 @@ package dev.salmonllama.fsbot.endpoints.scapefashion; import com.google.gson.Gson; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URLEncoder; @@ -21,6 +24,8 @@ public class ScapeFashionConnection { private final String OSRS_REQUEST_URL = "https://api.scape.fashion"; private final String OSRS_LINK_URL = "https://scape.fashion"; + private static final Logger logger = LoggerFactory.getLogger(ScapeFashionConnection.class); + public ScapeFashionConnection() {} // Uses the color endpoint to search for items @@ -43,21 +48,27 @@ public class ScapeFashionConnection { return response; } - private ScapeFashionResult osrsItem(String item) throws Exception { + public ScapeFashionResult osrsItem(String item) throws Exception { String uri = OSRS_REQUEST_URL + "/items/" + encode(item); String link = OSRS_LINK_URL + "/items/" + encode(item); var response = makeRequest(uri); response.setLink(link); + if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { + response.getItems().remove(0); + } return response; } - private ScapeFashionResult osrsItem(String item, ScapeFashionSlotOsrs slot) throws Exception { + public ScapeFashionResult osrsItem(String item, ScapeFashionSlotOsrs slot) throws Exception { String uri = OSRS_REQUEST_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); String link = OSRS_LINK_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); var response = makeRequest(uri); response.setLink(link); + if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { + response.getItems().remove(0); + } return response; } @@ -85,6 +96,9 @@ public class ScapeFashionConnection { var response = makeRequest(uri); response.setLink(link); + if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { + response.getItems().remove(0); + } return response; } @@ -94,6 +108,9 @@ public class ScapeFashionConnection { var response = makeRequest(uri); response.setLink(link); + if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { + response.getItems().remove(0); + } return response; } @@ -115,6 +132,6 @@ public class ScapeFashionConnection { } private String encode(String value) throws UnsupportedEncodingException { - return URLEncoder.encode(value, StandardCharsets.UTF_8.toString()); + return URLEncoder.encode(value, StandardCharsets.UTF_8.toString()).replace("+", "%20"); } } diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java b/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java index 47903db..36edc54 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java @@ -8,8 +8,8 @@ package dev.salmonllama.fsbot.guthix; public enum CommandCategory { DEVELOPER("Developer"), GENERAL("General"), - OSRS_ITEM_SEARCH("Oldschool Item Search"), - RS3_ITEM_SEARCH("Runescape Item Search"), + OSRS_ITEM_SEARCH("07Search"), + RS3_ITEM_SEARCH("RS3Search"), STAFF("Staff"); private final String category; diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java index 8cdd874..9e81aa1 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java @@ -23,10 +23,10 @@ import java.util.HashMap; */ public class Guthix implements MessageCreateListener { @SuppressWarnings("unused") - private DiscordApi api; + private final DiscordApi api; - private Registry registry; - private PermissionManager manager; + private final Registry registry; + private final PermissionManager manager; public Guthix(DiscordApi api) { this.api = api; diff --git a/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java b/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java index c3c72e6..ae419e0 100644 --- a/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java +++ b/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java @@ -8,8 +8,14 @@ package dev.salmonllama.fsbot.utilities; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.guthix.CommandContext; import org.javacord.api.entity.message.embed.EmbedBuilder; +import org.javacord.api.util.logging.ExceptionLogger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.awt.*; +import java.util.Arrays; +import java.util.function.Consumer; +import java.util.function.Function; public class DiscordUtilities { public static void handleException(Exception e, CommandContext ctx) { @@ -30,4 +36,8 @@ public class DiscordUtilities { ctx.getApi().getTextChannelById(BotConfig.ACTIVITY_LOG).ifPresent(channel -> channel.sendMessage(embed)); } + + public static void report(Class... throwable) { + System.out.println(Arrays.stream(throwable)); + } } From c83c93d339dfe51d2194d69a8be6f3d9d37e5846 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 15:37:53 -0400 Subject: [PATCH 21/36] Revert "Prevented returning bestMatch as searched items" This reverts commit 3788c3f0 --- .../scapefashion/ScapeFashionConnection.java | 23 +++---------------- .../fsbot/guthix/CommandCategory.java | 4 ++-- .../dev/salmonllama/fsbot/guthix/Guthix.java | 6 ++--- .../fsbot/utilities/DiscordUtilities.java | 10 -------- 4 files changed, 8 insertions(+), 35 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java index 2bf6301..dccb24e 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java @@ -6,9 +6,6 @@ package dev.salmonllama.fsbot.endpoints.scapefashion; import com.google.gson.Gson; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URLEncoder; @@ -24,8 +21,6 @@ public class ScapeFashionConnection { private final String OSRS_REQUEST_URL = "https://api.scape.fashion"; private final String OSRS_LINK_URL = "https://scape.fashion"; - private static final Logger logger = LoggerFactory.getLogger(ScapeFashionConnection.class); - public ScapeFashionConnection() {} // Uses the color endpoint to search for items @@ -48,27 +43,21 @@ public class ScapeFashionConnection { return response; } - public ScapeFashionResult osrsItem(String item) throws Exception { + private ScapeFashionResult osrsItem(String item) throws Exception { String uri = OSRS_REQUEST_URL + "/items/" + encode(item); String link = OSRS_LINK_URL + "/items/" + encode(item); var response = makeRequest(uri); response.setLink(link); - if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { - response.getItems().remove(0); - } return response; } - public ScapeFashionResult osrsItem(String item, ScapeFashionSlotOsrs slot) throws Exception { + private ScapeFashionResult osrsItem(String item, ScapeFashionSlotOsrs slot) throws Exception { String uri = OSRS_REQUEST_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); String link = OSRS_LINK_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); var response = makeRequest(uri); response.setLink(link); - if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { - response.getItems().remove(0); - } return response; } @@ -96,9 +85,6 @@ public class ScapeFashionConnection { var response = makeRequest(uri); response.setLink(link); - if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { - response.getItems().remove(0); - } return response; } @@ -108,9 +94,6 @@ public class ScapeFashionConnection { var response = makeRequest(uri); response.setLink(link); - if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { - response.getItems().remove(0); - } return response; } @@ -132,6 +115,6 @@ public class ScapeFashionConnection { } private String encode(String value) throws UnsupportedEncodingException { - return URLEncoder.encode(value, StandardCharsets.UTF_8.toString()).replace("+", "%20"); + return URLEncoder.encode(value, StandardCharsets.UTF_8.toString()); } } diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java b/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java index 36edc54..47903db 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java @@ -8,8 +8,8 @@ package dev.salmonllama.fsbot.guthix; public enum CommandCategory { DEVELOPER("Developer"), GENERAL("General"), - OSRS_ITEM_SEARCH("07Search"), - RS3_ITEM_SEARCH("RS3Search"), + OSRS_ITEM_SEARCH("Oldschool Item Search"), + RS3_ITEM_SEARCH("Runescape Item Search"), STAFF("Staff"); private final String category; diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java index 9e81aa1..8cdd874 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java @@ -23,10 +23,10 @@ import java.util.HashMap; */ public class Guthix implements MessageCreateListener { @SuppressWarnings("unused") - private final DiscordApi api; + private DiscordApi api; - private final Registry registry; - private final PermissionManager manager; + private Registry registry; + private PermissionManager manager; public Guthix(DiscordApi api) { this.api = api; diff --git a/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java b/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java index ae419e0..c3c72e6 100644 --- a/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java +++ b/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java @@ -8,14 +8,8 @@ package dev.salmonllama.fsbot.utilities; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.guthix.CommandContext; import org.javacord.api.entity.message.embed.EmbedBuilder; -import org.javacord.api.util.logging.ExceptionLogger; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.awt.*; -import java.util.Arrays; -import java.util.function.Consumer; -import java.util.function.Function; public class DiscordUtilities { public static void handleException(Exception e, CommandContext ctx) { @@ -36,8 +30,4 @@ public class DiscordUtilities { ctx.getApi().getTextChannelById(BotConfig.ACTIVITY_LOG).ifPresent(channel -> channel.sendMessage(embed)); } - - public static void report(Class... throwable) { - System.out.println(Arrays.stream(throwable)); - } } From ee066fb084f52cf574323dae52e59d46147abc7b Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 15:38:42 -0400 Subject: [PATCH 22/36] Revert "Revert "Prevented returning bestMatch as searched items"" This reverts commit c83c93d3 --- .../scapefashion/ScapeFashionConnection.java | 23 ++++++++++++++++--- .../fsbot/guthix/CommandCategory.java | 4 ++-- .../dev/salmonllama/fsbot/guthix/Guthix.java | 6 ++--- .../fsbot/utilities/DiscordUtilities.java | 10 ++++++++ 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java index dccb24e..2bf6301 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java @@ -6,6 +6,9 @@ package dev.salmonllama.fsbot.endpoints.scapefashion; import com.google.gson.Gson; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URLEncoder; @@ -21,6 +24,8 @@ public class ScapeFashionConnection { private final String OSRS_REQUEST_URL = "https://api.scape.fashion"; private final String OSRS_LINK_URL = "https://scape.fashion"; + private static final Logger logger = LoggerFactory.getLogger(ScapeFashionConnection.class); + public ScapeFashionConnection() {} // Uses the color endpoint to search for items @@ -43,21 +48,27 @@ public class ScapeFashionConnection { return response; } - private ScapeFashionResult osrsItem(String item) throws Exception { + public ScapeFashionResult osrsItem(String item) throws Exception { String uri = OSRS_REQUEST_URL + "/items/" + encode(item); String link = OSRS_LINK_URL + "/items/" + encode(item); var response = makeRequest(uri); response.setLink(link); + if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { + response.getItems().remove(0); + } return response; } - private ScapeFashionResult osrsItem(String item, ScapeFashionSlotOsrs slot) throws Exception { + public ScapeFashionResult osrsItem(String item, ScapeFashionSlotOsrs slot) throws Exception { String uri = OSRS_REQUEST_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); String link = OSRS_LINK_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); var response = makeRequest(uri); response.setLink(link); + if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { + response.getItems().remove(0); + } return response; } @@ -85,6 +96,9 @@ public class ScapeFashionConnection { var response = makeRequest(uri); response.setLink(link); + if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { + response.getItems().remove(0); + } return response; } @@ -94,6 +108,9 @@ public class ScapeFashionConnection { var response = makeRequest(uri); response.setLink(link); + if (response.getItems().get(0).getName().toLowerCase().equals(item.toLowerCase())) { + response.getItems().remove(0); + } return response; } @@ -115,6 +132,6 @@ public class ScapeFashionConnection { } private String encode(String value) throws UnsupportedEncodingException { - return URLEncoder.encode(value, StandardCharsets.UTF_8.toString()); + return URLEncoder.encode(value, StandardCharsets.UTF_8.toString()).replace("+", "%20"); } } diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java b/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java index 47903db..36edc54 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/CommandCategory.java @@ -8,8 +8,8 @@ package dev.salmonllama.fsbot.guthix; public enum CommandCategory { DEVELOPER("Developer"), GENERAL("General"), - OSRS_ITEM_SEARCH("Oldschool Item Search"), - RS3_ITEM_SEARCH("Runescape Item Search"), + OSRS_ITEM_SEARCH("07Search"), + RS3_ITEM_SEARCH("RS3Search"), STAFF("Staff"); private final String category; diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java index 8cdd874..9e81aa1 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java @@ -23,10 +23,10 @@ import java.util.HashMap; */ public class Guthix implements MessageCreateListener { @SuppressWarnings("unused") - private DiscordApi api; + private final DiscordApi api; - private Registry registry; - private PermissionManager manager; + private final Registry registry; + private final PermissionManager manager; public Guthix(DiscordApi api) { this.api = api; diff --git a/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java b/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java index c3c72e6..ae419e0 100644 --- a/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java +++ b/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java @@ -8,8 +8,14 @@ package dev.salmonllama.fsbot.utilities; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.guthix.CommandContext; import org.javacord.api.entity.message.embed.EmbedBuilder; +import org.javacord.api.util.logging.ExceptionLogger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.awt.*; +import java.util.Arrays; +import java.util.function.Consumer; +import java.util.function.Function; public class DiscordUtilities { public static void handleException(Exception e, CommandContext ctx) { @@ -30,4 +36,8 @@ public class DiscordUtilities { ctx.getApi().getTextChannelById(BotConfig.ACTIVITY_LOG).ifPresent(channel -> channel.sendMessage(embed)); } + + public static void report(Class... throwable) { + System.out.println(Arrays.stream(throwable)); + } } From 8282ccfe11cec2405321d9d7540567b77c4f1df7 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 16:29:14 -0400 Subject: [PATCH 23/36] "engine work" --- .../fsbot/commands/developer/BlacklistUserCommand.java | 4 ++-- .../fsbot/commands/developer/CreateGalleryCommand.java | 7 ++----- .../fsbot/commands/developer/DefaultCommand.java | 4 ++-- .../fsbot/commands/developer/InviteCommand.java | 3 ++- .../fsbot/commands/developer/PermissionCommand.java | 5 ++--- .../salmonllama/fsbot/commands/developer/TestCommand.java | 5 ++--- .../salmonllama/fsbot/commands/general/ColorCommand.java | 5 ++--- .../salmonllama/fsbot/commands/general/ColorsCommand.java | 5 ++--- .../salmonllama/fsbot/commands/general/HelpCommand.java | 4 ++-- .../salmonllama/fsbot/commands/general/OutfitCommand.java | 7 ++++--- .../salmonllama/fsbot/commands/general/PingCommand.java | 2 +- .../fsbot/commands/general/PrivacyCommand.java | 6 +++--- .../fsbot/commands/general/ShowGalleriesCommand.java | 8 ++++---- .../salmonllama/fsbot/commands/general/StatsCommand.java | 6 ++---- .../fsbot/commands/osrssearch/OsrsBodyCommand.java | 5 ++--- .../fsbot/commands/osrssearch/OsrsCapeCommand.java | 5 ++--- .../fsbot/commands/osrssearch/OsrsFeetCommand.java | 5 ++--- .../fsbot/commands/osrssearch/OsrsHandCommand.java | 5 ++--- .../fsbot/commands/osrssearch/OsrsHeadCommand.java | 5 ++--- .../fsbot/commands/osrssearch/OsrsLegsCommand.java | 5 ++--- .../fsbot/commands/osrssearch/OsrsNeckCommand.java | 5 ++--- .../fsbot/commands/osrssearch/OsrsSearchCommand.java | 5 ++--- .../fsbot/commands/osrssearch/OsrsShieldCommand.java | 5 ++--- .../fsbot/commands/osrssearch/OsrsWeaponCommand.java | 5 ++--- .../salmonllama/fsbot/commands/staff/AddColorCommand.java | 4 +--- .../dev/salmonllama/fsbot/commands/staff/EchoCommand.java | 5 ++--- .../fsbot/commands/staff/GetOutfitCommand.java | 5 ++--- .../fsbot/commands/staff/GetServersCommand.java | 5 ++--- .../fsbot/commands/staff/OutfitInfoCommand.java | 5 ++--- .../fsbot/commands/staff/RemoveOutfitCommand.java | 5 ++--- .../salmonllama/fsbot/commands/staff/RetagCommand.java | 5 ++--- .../fsbot/commands/staff/SetStatusCommand.java | 3 ++- .../fsbot/commands/staff/WelcomeMessageCommand.java | 5 ++--- .../fsbot/database/controllers/OutfitController.java | 7 ++++--- src/main/java/dev/salmonllama/fsbot/guthix/Command.java | 4 ++-- 35 files changed, 75 insertions(+), 99 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/BlacklistUserCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/BlacklistUserCommand.java index a83490d..8a7ff04 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/BlacklistUserCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/BlacklistUserCommand.java @@ -6,7 +6,7 @@ import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class BlacklistUserCommand extends Command { @Override public String name() { return "Blacklist User"; } @@ -14,7 +14,7 @@ public class BlacklistUserCommand extends Command { @Override public String usage() { return "blacklistuser "; } @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "owner"); } - @Override public Collection aliases() { return Arrays.asList("blacklistuser", "bluser", "sabusr"); } + @Override public List aliases() { return Arrays.asList("blacklistuser", "bluser", "sabusr"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java index 3c6d3c0..1a38b3d 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/CreateGalleryCommand.java @@ -5,19 +5,16 @@ package dev.salmonllama.fsbot.commands.developer; -import com.vdurmont.emoji.EmojiManager; import com.vdurmont.emoji.EmojiParser; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.GalleryController; import dev.salmonllama.fsbot.database.models.GalleryChannel; import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; -import org.javacord.api.util.logging.ExceptionLogger; import java.awt.*; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class CreateGalleryCommand extends Command { // TODO: This command needs help. @Override public String name() { return "Create Gallery"; } @@ -25,7 +22,7 @@ public class CreateGalleryCommand extends Command { // TODO: This command needs @Override public String usage() { return "creategallery "; } @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "owner"); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("creategallery", "addgallery", "newgallery")); } + @Override public List aliases() { return Arrays.asList("creategallery", "addgallery", "newgallery"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/DefaultCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/DefaultCommand.java index ee3ac6e..ffa135e 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/DefaultCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/DefaultCommand.java @@ -3,8 +3,8 @@ package dev.salmonllama.fsbot.commands.developer; import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; -import java.util.Collection; import java.util.Collections; +import java.util.List; public class DefaultCommand extends Command { @Override public String name() { return "Default"; } @@ -12,7 +12,7 @@ public class DefaultCommand extends Command { @Override public String usage() { return "you don't use this command"; } @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.OWNER); } - @Override public Collection aliases() { return Collections.singletonList("default"); } + @Override public List aliases() { return Collections.singletonList("default"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/InviteCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/InviteCommand.java index 8c49b64..01ca801 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/InviteCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/InviteCommand.java @@ -12,6 +12,7 @@ import org.javacord.api.entity.channel.TextChannel; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.List; public class InviteCommand extends Command { @Override public String name() { return "Invite"; } @@ -19,7 +20,7 @@ public class InviteCommand extends Command { @Override public String usage() { return "invite"; } @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "owner"); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("invite", "inv")); } + @Override public List aliases() { return Arrays.asList("invite", "inv"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java index bc70722..caeab46 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java @@ -13,9 +13,8 @@ import org.javacord.api.entity.user.User; import org.javacord.api.util.logging.ExceptionLogger; import java.awt.*; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class PermissionCommand extends Command { @Override public String name() { return "Permission"; } @@ -23,7 +22,7 @@ public class PermissionCommand extends Command { @Override public String usage() { return "permission "; } @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.OWNER); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("permission", "permissions", "perm", "perms")); } + @Override public List aliases() { return Arrays.asList("permission", "permissions", "perm", "perms"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java index 8b73033..69e1336 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java @@ -8,9 +8,8 @@ package dev.salmonllama.fsbot.commands.developer; import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; import dev.salmonllama.fsbot.guthix.*; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class TestCommand extends Command { @Override public String name() { return "Test"; } @@ -18,7 +17,7 @@ public class TestCommand extends Command { @Override public String usage() { return "test"; } @Override public CommandCategory category() { return CommandCategory.DEVELOPER; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.OWNER); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("test", "t")); } + @Override public List aliases() { return Arrays.asList("test", "t"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/ColorCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/ColorCommand.java index 3233977..c9ac0d5 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/ColorCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/ColorCommand.java @@ -12,9 +12,8 @@ import org.apache.logging.log4j.util.Strings; import org.javacord.api.entity.server.Server; import org.javacord.api.entity.user.User; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class ColorCommand extends Command { @Override public String name() { return "Color"; } @@ -22,7 +21,7 @@ public class ColorCommand extends Command { @Override public String usage() { return "color "; } @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("color", "colour")); } + @Override public List aliases() { return Arrays.asList("color", "colour"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/ColorsCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/ColorsCommand.java index 7b61b73..762003e 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/ColorsCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/ColorsCommand.java @@ -10,9 +10,8 @@ import dev.salmonllama.fsbot.database.controllers.ColorRoleController; import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class ColorsCommand extends Command { @Override public String name() { return "Colors"; } @@ -20,7 +19,7 @@ public class ColorsCommand extends Command { @Override public String usage() { return "colors"; } @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("colors", "colours")); } + @Override public List aliases() { return Arrays.asList("colors", "colours"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java index 70dbb64..22cdefd 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/HelpCommand.java @@ -23,7 +23,7 @@ public class HelpCommand extends Command { @Override public String usage() { return "help [String command]"; } @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("help", "h")); } + @Override public List aliases() { return Arrays.asList("help", "h"); } private final Guthix guthix; @@ -84,7 +84,7 @@ public class HelpCommand extends Command { for (Command cmd : guthix.listCommands()) { String cat = cmd.category().getCategory().toLowerCase(); if (cat.equals(category.toLowerCase())) { - builder.append("\n- ").append(cmd.name()); + builder.append("\n- ").append(cmd.aliases().get(0)); } } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/OutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/OutfitCommand.java index f439337..ce5dc62 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/OutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/OutfitCommand.java @@ -15,6 +15,7 @@ import org.javacord.api.util.logging.ExceptionLogger; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.List; import java.util.concurrent.CompletableFuture; public class OutfitCommand extends Command { @@ -26,7 +27,7 @@ public class OutfitCommand extends Command { @Override public String usage() { return "outfit "; } @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return initAliases(); } + @Override public List aliases() { return initAliases(); } @Override public void onCommand(CommandContext ctx) { @@ -192,8 +193,8 @@ public class OutfitCommand extends Command { } } - private Collection initAliases() { - Collection aliases = OutfitController.getDistinctTags().join(); + private List initAliases() { + List aliases = OutfitController.getDistinctTags().join(); aliases.addAll(NON_TAG_ALIASES); return aliases; } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/PingCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/PingCommand.java index 1e437aa..8138376 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/PingCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/PingCommand.java @@ -15,7 +15,7 @@ public class PingCommand extends Command { @Override public String usage() { return "ping"; } @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Collections.singletonList("ping")); } + @Override public List aliases() { return Collections.singletonList("ping"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/PrivacyCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/PrivacyCommand.java index 0280006..753be84 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/PrivacyCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/PrivacyCommand.java @@ -3,8 +3,8 @@ package dev.salmonllama.fsbot.commands.general; import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; -import java.util.Collection; import java.util.Collections; +import java.util.List; public class PrivacyCommand extends Command { @Override public String name() { return "Privacy"; } @@ -12,12 +12,12 @@ public class PrivacyCommand extends Command { @Override public String usage() { return "privacy"; } @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return Collections.singletonList("privacy"); } + @Override public List aliases() { return Collections.singletonList("privacy"); } @Override public void onCommand(CommandContext ctx) { - String privacyUrl = "https://github.com/Salmonllama/Fashionscape-Bot/blob/database-rewrite/privacy.md"; // TODO: Change this to master + String privacyUrl = "https://github.com/Salmonllama/Fashionscape-Bot/blob/master/privacy.md"; EmbedBuilder response = new EmbedBuilder() .setTitle("Click Here to open") diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/ShowGalleriesCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/ShowGalleriesCommand.java index ff786e6..2c04ac4 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/ShowGalleriesCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/ShowGalleriesCommand.java @@ -5,9 +5,9 @@ package dev.salmonllama.fsbot.commands.general; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.List; import java.util.stream.Collectors; import dev.salmonllama.fsbot.guthix.*; @@ -25,11 +25,11 @@ public class ShowGalleriesCommand extends Command { @Override public String usage() { return "showgalleries"; } @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("showgalleries", "listgalleries")); } + @Override public List aliases() { return Arrays.asList("showgalleries", "listgalleries"); } @Override public void onCommand(CommandContext ctx) { if (ctx.isPrivateMessage()) { - ctx.reply("This command can only be used within a server"); // TODO: Preset embeds again, yeah + ctx.reply("This command can only be used within a server"); return; } @@ -42,7 +42,7 @@ public class ShowGalleriesCommand extends Command { }); } - EmbedBuilder galleryEmbed(Collection galleries, Server server) { // TODO: Base FSBot embed. + EmbedBuilder galleryEmbed(Collection galleries, Server server) { EmbedBuilder embed = new EmbedBuilder() .setTitle("Server Gallery Channels"); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/general/StatsCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/general/StatsCommand.java index c47983d..b8f78c0 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/general/StatsCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/general/StatsCommand.java @@ -1,8 +1,6 @@ package dev.salmonllama.fsbot.commands.general; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; +import java.util.*; import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; @@ -15,7 +13,7 @@ public class StatsCommand extends Command { @Override public String usage() { return "stats"; } @Override public CommandCategory category() { return CommandCategory.GENERAL; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("stats")); } + @Override public List aliases() { return Collections.singletonList("stats"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java index b799eb1..e10a9d3 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsBodyCommand.java @@ -13,9 +13,8 @@ import org.apache.logging.log4j.util.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class OsrsBodyCommand extends Command { @Override public String name() { return "OSRS Body"; } @@ -23,7 +22,7 @@ public class OsrsBodyCommand extends Command { @Override public String usage() { return "osrsbody <#color or item name>"; } @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07body", "osrsbody")); } + @Override public List aliases() { return Arrays.asList("07body", "osrsbody"); } private static final Logger logger = LoggerFactory.getLogger(OsrsBodyCommand.class); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsCapeCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsCapeCommand.java index 135cc89..00a04af 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsCapeCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsCapeCommand.java @@ -13,9 +13,8 @@ import org.apache.logging.log4j.util.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class OsrsCapeCommand extends Command { @Override public String name() { return "OSRS Cape"; } @@ -23,7 +22,7 @@ public class OsrsCapeCommand extends Command { @Override public String usage() { return "osrscape <#color or item name>"; } @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07cape", "osrscape")); } + @Override public List aliases() { return Arrays.asList("07cape", "osrscape"); } private static final Logger logger = LoggerFactory.getLogger(OsrsCapeCommand.class); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsFeetCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsFeetCommand.java index dc4ad65..0ec2345 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsFeetCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsFeetCommand.java @@ -13,9 +13,8 @@ import org.apache.logging.log4j.util.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class OsrsFeetCommand extends Command { @Override public String name() { return "OSRS Feet"; } @@ -23,7 +22,7 @@ public class OsrsFeetCommand extends Command { @Override public String usage() { return "osrsfeet <#color or item name>"; } @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07feet", "osrsfeet")); } + @Override public List aliases() { return Arrays.asList("07feet", "osrsfeet"); } private static final Logger logger = LoggerFactory.getLogger(OsrsFeetCommand.class); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHandCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHandCommand.java index 44a0f33..5307266 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHandCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHandCommand.java @@ -13,9 +13,8 @@ import org.apache.logging.log4j.util.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class OsrsHandCommand extends Command { @Override public String name() { return "OSRS Hand"; } @@ -23,7 +22,7 @@ public class OsrsHandCommand extends Command { @Override public String usage() { return "osrshand <#color or item name>"; } @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07hand", "osrshand")); } + @Override public List aliases() { return Arrays.asList("07hand", "osrshand"); } private static final Logger logger = LoggerFactory.getLogger(OsrsHandCommand.class); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHeadCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHeadCommand.java index 140ef2e..c180bd3 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHeadCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsHeadCommand.java @@ -13,9 +13,8 @@ import org.apache.logging.log4j.util.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class OsrsHeadCommand extends Command { @Override public String name() { return "OSRS Head"; } @@ -23,7 +22,7 @@ public class OsrsHeadCommand extends Command { @Override public String usage() { return "osrshead <#color or item name>"; } @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07head", "osrshead")); } + @Override public List aliases() { return Arrays.asList("07head", "osrshead"); } private static final Logger logger = LoggerFactory.getLogger(OsrsHeadCommand.class); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsLegsCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsLegsCommand.java index 95302ff..0cc79b6 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsLegsCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsLegsCommand.java @@ -13,9 +13,8 @@ import org.apache.logging.log4j.util.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class OsrsLegsCommand extends Command { @Override public String name() { return "OSRS Legs"; } @@ -23,7 +22,7 @@ public class OsrsLegsCommand extends Command { @Override public String usage() { return "osrslegs <#color or item name>"; } @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07legs", "osrslegs")); } + @Override public List aliases() { return Arrays.asList("07legs", "osrslegs"); } private static final Logger logger = LoggerFactory.getLogger(OsrsLegsCommand.class); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsNeckCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsNeckCommand.java index b7af727..e6ac5c8 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsNeckCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsNeckCommand.java @@ -13,9 +13,8 @@ import org.apache.logging.log4j.util.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class OsrsNeckCommand extends Command { @Override public String name() { return "OSRS Neck"; } @@ -23,7 +22,7 @@ public class OsrsNeckCommand extends Command { @Override public String usage() { return "osrsneck <#color or item name>"; } @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07neck", "osrsneck")); } + @Override public List aliases() { return Arrays.asList("07neck", "osrsneck"); } private static final Logger logger = LoggerFactory.getLogger(OsrsNeckCommand.class); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchCommand.java index 6cf5fcf..695fe01 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchCommand.java @@ -12,9 +12,8 @@ import org.apache.logging.log4j.util.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class OsrsSearchCommand extends Command { @Override public String name() { return "OSRS Search"; } @@ -22,7 +21,7 @@ public class OsrsSearchCommand extends Command { @Override public String usage() { return "osrssearch <#color or item name>"; } @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07search", "osrssearch")); } + @Override public List aliases() { return Arrays.asList("07search", "osrssearch"); } private static final Logger logger = LoggerFactory.getLogger(OsrsSearchCommand.class); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsShieldCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsShieldCommand.java index f776eae..51262ed 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsShieldCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsShieldCommand.java @@ -13,9 +13,8 @@ import org.apache.logging.log4j.util.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class OsrsShieldCommand extends Command { @Override public String name() { return "OSRS Shield"; } @@ -23,7 +22,7 @@ public class OsrsShieldCommand extends Command { @Override public String usage() { return "osrsshield <#color or item name>"; } @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07shield", "osrsshield")); } + @Override public List aliases() { return Arrays.asList("07shield", "osrsshield"); } private static final Logger logger = LoggerFactory.getLogger(OsrsShieldCommand.class); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsWeaponCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsWeaponCommand.java index 6898449..ea2d7c9 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsWeaponCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsWeaponCommand.java @@ -13,9 +13,8 @@ import org.apache.logging.log4j.util.Strings; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class OsrsWeaponCommand extends Command { @Override public String name() { return "OSRS Weapon"; } @@ -23,7 +22,7 @@ public class OsrsWeaponCommand extends Command { @Override public String usage() { return "osrsweapon <#color or item name>"; } @Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("07weapon", "osrsweapon")); } + @Override public List aliases() { return Arrays.asList("07weapon", "osrsweapon"); } private static final Logger logger = LoggerFactory.getLogger(OsrsWeaponCommand.class); diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/AddColorCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/AddColorCommand.java index 4d0bb79..8ff0c0e 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/AddColorCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/AddColorCommand.java @@ -11,9 +11,7 @@ import dev.salmonllama.fsbot.database.models.ColorRole; import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.permission.Role; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.List; public class AddColorCommand extends Command { @@ -22,7 +20,7 @@ public class AddColorCommand extends Command { @Override public String usage() { return "addcolor "; } @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("addcolor", "addcolour", "addclr")); } + @Override public List aliases() { return Arrays.asList("addcolor", "addcolour", "addclr"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java index f0a4e6a..82076fe 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/EchoCommand.java @@ -7,9 +7,8 @@ package dev.salmonllama.fsbot.commands.staff; import dev.salmonllama.fsbot.guthix.*; -import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; +import java.util.List; public class EchoCommand extends Command { @Override public String name() { return "Echo"; } @@ -17,7 +16,7 @@ public class EchoCommand extends Command { @Override public String usage() { return "echo "; } @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } - @Override public Collection aliases() { return new ArrayList<>(Collections.singletonList("echo")); } + @Override public List aliases() { return Collections.singletonList("echo"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/GetOutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/GetOutfitCommand.java index 8411e23..b5d8911 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/GetOutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/GetOutfitCommand.java @@ -8,9 +8,8 @@ package dev.salmonllama.fsbot.commands.staff; import dev.salmonllama.fsbot.database.controllers.OutfitController; import dev.salmonllama.fsbot.guthix.*; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class GetOutfitCommand extends Command { @Override public String name() { return "Get Outift"; } @@ -18,7 +17,7 @@ public class GetOutfitCommand extends Command { @Override public String usage() { return "getoutfit "; } @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("getoutfit", "get")); } + @Override public List aliases() { return Arrays.asList("getoutfit", "get"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/GetServersCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/GetServersCommand.java index ac849ca..7c6207f 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/GetServersCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/GetServersCommand.java @@ -11,9 +11,8 @@ import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.entity.server.Server; import java.awt.*; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class GetServersCommand extends Command { @Override public String name() { return "Get Servers"; } @@ -21,7 +20,7 @@ public class GetServersCommand extends Command { @Override public String usage() { return "getservers"; } @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("getservers", "servers")); } + @Override public List aliases() { return Arrays.asList("getservers", "servers"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/OutfitInfoCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/OutfitInfoCommand.java index 7f61f08..f1de22d 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/OutfitInfoCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/OutfitInfoCommand.java @@ -9,9 +9,8 @@ import dev.salmonllama.fsbot.database.controllers.OutfitController; import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class OutfitInfoCommand extends Command { @Override public String name() { return "Outfit Info"; } @@ -19,7 +18,7 @@ public class OutfitInfoCommand extends Command { @Override public String usage() { return "outfitinfo "; } @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("outfitinfo", "oinfo")); } + @Override public List aliases() { return Arrays.asList("outfitinfo", "oinfo"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java index bb80328..c3de223 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java @@ -12,9 +12,8 @@ import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.channel.TextChannel; import org.javacord.api.entity.message.embed.EmbedBuilder; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class RemoveOutfitCommand extends Command { @Override public String name() { return "Remove Outfit"; } @@ -22,7 +21,7 @@ public class RemoveOutfitCommand extends Command { @Override public String usage() { return "remove "; } @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("removeoutfit", "remove")); } + @Override public List aliases() { return Arrays.asList("removeoutfit", "remove"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java index dc6b58c..fc60b47 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java @@ -15,9 +15,8 @@ import org.javacord.api.entity.message.embed.EmbedBuilder; import java.awt.*; import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; +import java.util.List; public class RetagCommand extends Command { @Override public String name() { return "Retag"; } @@ -25,7 +24,7 @@ public class RetagCommand extends Command { @Override public String usage() { return "retag "; } @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } - @Override public Collection aliases() { return new ArrayList<>(Collections.singletonList("retag")); } + @Override public List aliases() { return Collections.singletonList("retag"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/SetStatusCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/SetStatusCommand.java index 23d14c1..7199d10 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/SetStatusCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/SetStatusCommand.java @@ -13,6 +13,7 @@ import java.awt.*; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.List; public class SetStatusCommand extends Command { @Override public String name() { return "Set Status"; } @@ -20,7 +21,7 @@ public class SetStatusCommand extends Command { @Override public String usage() { return "updatestatus "; } @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("setstatus", "status")); } + @Override public List aliases() { return Arrays.asList("setstatus", "status"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java index 1beb597..cc678db 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/WelcomeMessageCommand.java @@ -12,9 +12,8 @@ import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.util.logging.ExceptionLogger; -import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; +import java.util.List; public class WelcomeMessageCommand extends Command { @Override public String name() { return "Welcome Message"; } @@ -22,7 +21,7 @@ public class WelcomeMessageCommand extends Command { @Override public String usage() { return "welcomemessage [String newMessage]"; } @Override public CommandCategory category() { return CommandCategory.STAFF; } @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } - @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("welcomemessage", "wmsg")); } + @Override public List aliases() { return Arrays.asList("welcomemessage", "wmsg"); } @Override public void onCommand(CommandContext ctx) { diff --git a/src/main/java/dev/salmonllama/fsbot/database/controllers/OutfitController.java b/src/main/java/dev/salmonllama/fsbot/database/controllers/OutfitController.java index 8d6e385..ae9de84 100644 --- a/src/main/java/dev/salmonllama/fsbot/database/controllers/OutfitController.java +++ b/src/main/java/dev/salmonllama/fsbot/database/controllers/OutfitController.java @@ -13,6 +13,7 @@ import java.sql.SQLException; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Collection; +import java.util.List; import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionException; @@ -159,7 +160,7 @@ public class OutfitController { }); } - public static CompletableFuture> getDistinctTags() { + public static CompletableFuture> getDistinctTags() { return CompletableFuture.supplyAsync(() -> { try { return getDistinctTagsExec(); @@ -332,10 +333,10 @@ public class OutfitController { return extractCount(rs); } - private static Collection getDistinctTagsExec() throws SQLException { + private static List getDistinctTagsExec() throws SQLException { ResultSet rs = FSDB.get().select("SELECT DISTINCT tag FROM outfits"); - Collection tags = new ArrayList<>(); + List tags = new ArrayList<>(); while (rs.next()) { tags.add(rs.getString("tag")); } diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/Command.java b/src/main/java/dev/salmonllama/fsbot/guthix/Command.java index 8ee9c16..c904818 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/Command.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/Command.java @@ -5,7 +5,7 @@ package dev.salmonllama.fsbot.guthix; -import java.util.Collection; +import java.util.List; import java.util.concurrent.CompletableFuture; public abstract class Command { @@ -14,7 +14,7 @@ public abstract class Command { public abstract String usage(); public abstract CommandCategory category(); public abstract CommandPermission permission(); - public abstract Collection aliases(); + public abstract List aliases(); public abstract void onCommand(CommandContext ctx); From a98ef34290725bf2e9d4c81a8a941f66056800eb Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 16:29:28 -0400 Subject: [PATCH 24/36] Added wiki link to embed footer --- .../fsbot/commands/osrssearch/OsrsSearchUtilities.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java index 9debece..bf58007 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java @@ -26,6 +26,7 @@ public class OsrsSearchUtilities { .setImage(bestMatch.getImages().getDetail()) .setUrl(result.getLink()) .setColor(Color.decode(bestMatch.getColors()[0])) + .setFooter(String.format("Wiki: %s", result.getLink())) .addField("Match:", String.valueOf(bestMatch.getMatch()), true) .addField("Colors:", colors, true) From a4a0f6a6346750754ebdb95f5d7d4a3b7044f754 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 17:27:35 -0400 Subject: [PATCH 25/36] Temporarily disabled unsafe operations --- .../salmonllama/fsbot/utilities/DiscordUtilities.java | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java b/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java index ae419e0..770c72b 100644 --- a/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java +++ b/src/main/java/dev/salmonllama/fsbot/utilities/DiscordUtilities.java @@ -8,14 +8,9 @@ package dev.salmonllama.fsbot.utilities; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.guthix.CommandContext; import org.javacord.api.entity.message.embed.EmbedBuilder; -import org.javacord.api.util.logging.ExceptionLogger; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.awt.*; import java.util.Arrays; -import java.util.function.Consumer; -import java.util.function.Function; public class DiscordUtilities { public static void handleException(Exception e, CommandContext ctx) { @@ -37,7 +32,7 @@ public class DiscordUtilities { ctx.getApi().getTextChannelById(BotConfig.ACTIVITY_LOG).ifPresent(channel -> channel.sendMessage(embed)); } - public static void report(Class... throwable) { - System.out.println(Arrays.stream(throwable)); - } +// public static void report(Class... throwable) { +// System.out.println(Arrays.stream(throwable)); +// } } From 39cf590cf4902a0b68d06a3aaaaa187c737df929 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Sat, 12 Sep 2020 17:41:28 -0400 Subject: [PATCH 26/36] Add wiki denotation to author field --- .../fsbot/commands/osrssearch/OsrsSearchUtilities.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java index bf58007..1c7c28d 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java @@ -24,9 +24,9 @@ public class OsrsSearchUtilities { EmbedBuilder embed = new EmbedBuilder() .setTitle(String.format("Best Match - %s", bestMatch.getName())) .setImage(bestMatch.getImages().getDetail()) + .setAuthor(String.format("Wiki: %s", bestMatch.getName()), bestMatch.getWiki().getLink(), bestMatch.getImages().getDetail()) .setUrl(result.getLink()) .setColor(Color.decode(bestMatch.getColors()[0])) - .setFooter(String.format("Wiki: %s", result.getLink())) .addField("Match:", String.valueOf(bestMatch.getMatch()), true) .addField("Colors:", colors, true) From 17c88fa37935093ab7bf9bc0bb49f1a748ff2a7d Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Mon, 14 Sep 2020 09:24:18 -0400 Subject: [PATCH 27/36] Completed RS3Search module --- .../commands/rs3search/Rs3BackCommand.java | 61 +++++++++++++++++++ .../commands/rs3search/Rs3BodyCommand.java | 61 +++++++++++++++++++ .../commands/rs3search/Rs3FeetCommand.java | 61 +++++++++++++++++++ .../commands/rs3search/Rs3HandCommand.java | 61 +++++++++++++++++++ .../commands/rs3search/Rs3HeadCommand.java | 61 +++++++++++++++++++ .../commands/rs3search/Rs3LegsCommand.java | 61 +++++++++++++++++++ .../rs3search/Rs3MainhandCommand.java | 60 ++++++++++++++++++ .../commands/rs3search/Rs3NeckCommand.java | 61 +++++++++++++++++++ .../commands/rs3search/Rs3OffhandCommand.java | 60 ++++++++++++++++++ .../commands/rs3search/Rs3SearchCommand.java | 60 ++++++++++++++++++ .../rs3search/Rs3SearchUtilities.java | 35 +++++++++++ .../rs3search/Rs3TwohandedCommand.java | 60 ++++++++++++++++++ .../dev/salmonllama/fsbot/guthix/Guthix.java | 14 ++++- 13 files changed, 715 insertions(+), 1 deletion(-) create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3BackCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3BodyCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3FeetCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3HandCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3HeadCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3LegsCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3MainhandCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3NeckCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3OffhandCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3SearchCommand.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3SearchUtilities.java create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3TwohandedCommand.java diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3BackCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3BackCommand.java new file mode 100644 index 0000000..3fffdc4 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3BackCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotRs3; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class Rs3BackCommand extends Command { + @Override public String name() { return "RS3 Back"; } + @Override public String description() { return "Searches scape.fashion for rs3 back slot items."; } + @Override public String usage() { return "rs3back <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.RS3_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public List aliases() { return Collections.singletonList("rs3back"); } + + private static final Logger logger = LoggerFactory.getLogger(Rs3BackCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (Rs3SearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.rs3Color(params, ScapeFashionSlotRs3.BACK); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.rs3Item(params, ScapeFashionSlotRs3.BACK); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3BodyCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3BodyCommand.java new file mode 100644 index 0000000..1102423 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3BodyCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotRs3; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class Rs3BodyCommand extends Command { + @Override public String name() { return "RS3 Body"; } + @Override public String description() { return "Searches scape.fashion for rs3 body slot items."; } + @Override public String usage() { return "rs3body <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.RS3_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public List aliases() { return Collections.singletonList("rs3body"); } + + private static final Logger logger = LoggerFactory.getLogger(Rs3BodyCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (Rs3SearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.rs3Color(params, ScapeFashionSlotRs3.TORSO); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.rs3Item(params, ScapeFashionSlotRs3.TORSO); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3FeetCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3FeetCommand.java new file mode 100644 index 0000000..bf3ee85 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3FeetCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotRs3; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class Rs3FeetCommand extends Command { + @Override public String name() { return "RS3 Feet"; } + @Override public String description() { return "Searches scape.fashion for rs3 foot slot items."; } + @Override public String usage() { return "rs3feet <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.RS3_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public List aliases() { return Collections.singletonList("rs3feet"); } + + private static final Logger logger = LoggerFactory.getLogger(Rs3FeetCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (Rs3SearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.rs3Color(params, ScapeFashionSlotRs3.FEET); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.rs3Item(params, ScapeFashionSlotRs3.FEET); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3HandCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3HandCommand.java new file mode 100644 index 0000000..25b4c88 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3HandCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotRs3; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class Rs3HandCommand extends Command { + @Override public String name() { return "RS3 Hand"; } + @Override public String description() { return "Searches scape.fashion for rs3 hand slot items."; } + @Override public String usage() { return "rs3hand <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.RS3_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public List aliases() { return Collections.singletonList("rs3hand"); } + + private static final Logger logger = LoggerFactory.getLogger(Rs3HandCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (Rs3SearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.rs3Color(params, ScapeFashionSlotRs3.HAND); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.rs3Item(params, ScapeFashionSlotRs3.HAND); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3HeadCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3HeadCommand.java new file mode 100644 index 0000000..6311fe7 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3HeadCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotRs3; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class Rs3HeadCommand extends Command { + @Override public String name() { return "RS3 Head"; } + @Override public String description() { return "Searches scape.fashion for rs3 head slot items."; } + @Override public String usage() { return "rs3head <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.RS3_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public List aliases() { return Collections.singletonList("rs3head"); } + + private static final Logger logger = LoggerFactory.getLogger(Rs3HeadCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (Rs3SearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.rs3Color(params, ScapeFashionSlotRs3.HEAD); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.rs3Item(params, ScapeFashionSlotRs3.HEAD); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3LegsCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3LegsCommand.java new file mode 100644 index 0000000..fdf245d --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3LegsCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotRs3; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class Rs3LegsCommand extends Command { + @Override public String name() { return "RS3 Legs"; } + @Override public String description() { return "Searches scape.fashion for rs3 leg slot items."; } + @Override public String usage() { return "rs3legs <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.RS3_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public List aliases() { return Collections.singletonList("rs3legs"); } + + private static final Logger logger = LoggerFactory.getLogger(Rs3LegsCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (Rs3SearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.rs3Color(params, ScapeFashionSlotRs3.LEG); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.rs3Item(params, ScapeFashionSlotRs3.LEG); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3MainhandCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3MainhandCommand.java new file mode 100644 index 0000000..1ae22a5 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3MainhandCommand.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotRs3; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.List; + +public class Rs3MainhandCommand extends Command { + @Override public String name() { return "RS3 Mainhand"; } + @Override public String description() { return "Searches scape.fashion for rs3 mainhand slot items."; } + @Override public String usage() { return "rs3mainhand <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.RS3_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public List aliases() { return Arrays.asList("rs3mainhand", "rs3mh"); } + + private static final Logger logger = LoggerFactory.getLogger(Rs3MainhandCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (Rs3SearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.rs3Color(params, ScapeFashionSlotRs3.MAIN_HAND); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.rs3Item(params, ScapeFashionSlotRs3.MAIN_HAND); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3NeckCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3NeckCommand.java new file mode 100644 index 0000000..466ed77 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3NeckCommand.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotRs3; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class Rs3NeckCommand extends Command { + @Override public String name() { return "RS3 Neck"; } + @Override public String description() { return "Searches scape.fashion for rs3 neck slot items."; } + @Override public String usage() { return "rs3neck <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.RS3_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public List aliases() { return Collections.singletonList("rs3neck"); } + + private static final Logger logger = LoggerFactory.getLogger(Rs3NeckCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (Rs3SearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.rs3Color(params, ScapeFashionSlotRs3.NECK); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.rs3Item(params, ScapeFashionSlotRs3.NECK); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3OffhandCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3OffhandCommand.java new file mode 100644 index 0000000..a5fe708 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3OffhandCommand.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotRs3; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.List; + +public class Rs3OffhandCommand extends Command { + @Override public String name() { return "RS3 Offhand"; } + @Override public String description() { return "Searches scape.fashion for rs3 offhand slot items."; } + @Override public String usage() { return "rs3offhand <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.RS3_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public List aliases() { return Arrays.asList("rs3offhand", "rs3oh"); } + + private static final Logger logger = LoggerFactory.getLogger(Rs3OffhandCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (Rs3SearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.rs3Color(params, ScapeFashionSlotRs3.OFF_HAND); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.rs3Item(params, ScapeFashionSlotRs3.OFF_HAND); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3SearchCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3SearchCommand.java new file mode 100644 index 0000000..362496c --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3SearchCommand.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class Rs3SearchCommand extends Command { + @Override public String name() { return "RS3 Search"; } + @Override public String description() { return "Searches scape.fashion for rs3 items."; } + @Override public String usage() { return "rs3search <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.RS3_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public List aliases() { return Collections.singletonList("rs3search"); } + + private static final Logger logger = LoggerFactory.getLogger(Rs3SearchCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (Rs3SearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.rs3Color(params); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.rs3Item(params); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3SearchUtilities.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3SearchUtilities.java new file mode 100644 index 0000000..d2d22d6 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3SearchUtilities.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionResult; +import org.apache.logging.log4j.util.Strings; +import org.javacord.api.entity.channel.TextChannel; +import org.javacord.api.entity.message.embed.EmbedBuilder; + +import java.awt.*; +import java.util.Arrays; + +public class Rs3SearchUtilities { + static boolean isColor(String s) { + return s.startsWith("#"); + } + + static void sendResult(ScapeFashionResult result, TextChannel channel) { + var bestMatch = result.getItems().get(0); + var colors = Strings.join(Arrays.asList(bestMatch.getColors()), ','); + EmbedBuilder embed = new EmbedBuilder() + .setTitle(String.format("Best Match - %s", bestMatch.getName())) + .setImage(bestMatch.getImages().getDetail()) + .setAuthor(String.format("Wiki: %s", bestMatch.getName()), bestMatch.getWiki().getLink(), bestMatch.getImages().getDetail()) + .setUrl(result.getLink()) + .setColor(Color.decode(bestMatch.getColors()[0])) + .addField("Match:", String.valueOf(bestMatch.getMatch()), true) + .addField("Colors:", colors, true); + + channel.sendMessage(embed); + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3TwohandedCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3TwohandedCommand.java new file mode 100644 index 0000000..3499732 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/rs3search/Rs3TwohandedCommand.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.rs3search; + +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection; +import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionSlotRs3; +import dev.salmonllama.fsbot.guthix.*; +import dev.salmonllama.fsbot.utilities.DiscordUtilities; +import org.apache.logging.log4j.util.Strings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Arrays; +import java.util.List; + +public class Rs3TwohandedCommand extends Command { + @Override public String name() { return "RS3 Twohanded"; } + @Override public String description() { return "Searches scape.fashion for rs3 twohanded slot items."; } + @Override public String usage() { return "rs3twohanded <#color or item name>"; } + @Override public CommandCategory category() { return CommandCategory.RS3_ITEM_SEARCH; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); } + @Override public List aliases() { return Arrays.asList("rs3twohanded", "rs32h"); } + + private static final Logger logger = LoggerFactory.getLogger(Rs3TwohandedCommand.class); + + @Override + public void onCommand(CommandContext ctx) { + if (ctx.getArgs().length == 0) { + ctx.reply("Specify something"); + return; + } + + var args = ctx.getArgs(); + ScapeFashionConnection conn = new ScapeFashionConnection(); + var params = Strings.join(Arrays.asList(args), ' '); + + if (Rs3SearchUtilities.isColor(args[0])) { + // Color search + try { + var bestMatch = conn.rs3Color(params, ScapeFashionSlotRs3.TWO_HANDED); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } else { + // Item search + try { + var bestMatch = conn.rs3Item(params, ScapeFashionSlotRs3.TWO_HANDED); + Rs3SearchUtilities.sendResult(bestMatch, ctx.getChannel()); + } catch (Exception e) { + logger.error(e.getMessage()); + DiscordUtilities.handleException(e, ctx); + } + } + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java index 9e81aa1..f53fca4 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java @@ -8,6 +8,7 @@ package dev.salmonllama.fsbot.guthix; import dev.salmonllama.fsbot.commands.developer.*; import dev.salmonllama.fsbot.commands.general.*; import dev.salmonllama.fsbot.commands.osrssearch.*; +import dev.salmonllama.fsbot.commands.rs3search.*; import dev.salmonllama.fsbot.commands.staff.OutfitInfoCommand; import dev.salmonllama.fsbot.commands.staff.*; import org.javacord.api.DiscordApi; @@ -70,7 +71,7 @@ public class Guthix implements MessageCreateListener { addCommand(new OsrsSearchCommand()); addCommand(new OsrsHeadCommand()); addCommand(new OsrsBodyCommand()); - addCommand(new OsrsHeadCommand()); + addCommand(new OsrsHandCommand()); addCommand(new OsrsLegsCommand()); addCommand(new OsrsFeetCommand()); addCommand(new OsrsCapeCommand()); @@ -79,6 +80,17 @@ public class Guthix implements MessageCreateListener { addCommand(new OsrsWeaponCommand()); // Rs3 Search Commands + addCommand(new Rs3SearchCommand()); + addCommand(new Rs3HeadCommand()); + addCommand(new Rs3BodyCommand()); + addCommand(new Rs3NeckCommand()); + addCommand(new Rs3HandCommand()); + addCommand(new Rs3FeetCommand()); + addCommand(new Rs3LegsCommand()); + addCommand(new Rs3BackCommand()); + addCommand(new Rs3MainhandCommand()); + addCommand(new Rs3OffhandCommand()); + addCommand(new Rs3TwohandedCommand()); } public void addCommand(Command cmd) { From 6c3f4c27bfd37bc419d81270fafbb189d7509b86 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Mon, 14 Sep 2020 09:24:57 -0400 Subject: [PATCH 28/36] Removed embed body text --- .../fsbot/commands/osrssearch/OsrsSearchUtilities.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java index 1c7c28d..d337a2c 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/osrssearch/OsrsSearchUtilities.java @@ -28,9 +28,7 @@ public class OsrsSearchUtilities { .setUrl(result.getLink()) .setColor(Color.decode(bestMatch.getColors()[0])) .addField("Match:", String.valueOf(bestMatch.getMatch()), true) - .addField("Colors:", colors, true) - - .setDescription(String.format("Click the title or visit %s for full results!", result.getLink())); + .addField("Colors:", colors, true); channel.sendMessage(embed); } From 2fde19f703c6d51cd6aaa921daaab8663770b571 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Mon, 14 Sep 2020 09:25:12 -0400 Subject: [PATCH 29/36] Made rs3 search methods public --- .../endpoints/scapefashion/ScapeFashionConnection.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java index 2bf6301..19ce43a 100644 --- a/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java +++ b/src/main/java/dev/salmonllama/fsbot/endpoints/scapefashion/ScapeFashionConnection.java @@ -72,7 +72,7 @@ public class ScapeFashionConnection { return response; } - private ScapeFashionResult rs3Color(String color) throws Exception { + public ScapeFashionResult rs3Color(String color) throws Exception { String uri = RS3_REQUEST_URL + "/colors/" + encode(color); String link = RS3_LINK_URL + "/colors/" + encode(color); @@ -81,7 +81,7 @@ public class ScapeFashionConnection { return response; } - private ScapeFashionResult rs3Color(String color, ScapeFashionSlotRs3 slot) throws Exception { + public ScapeFashionResult rs3Color(String color, ScapeFashionSlotRs3 slot) throws Exception { String uri = RS3_REQUEST_URL + "/colors/" + encode(color) + "?slot=" + encode(slot.getValue()); String link = RS3_LINK_URL + "/colors/" + encode(color) + "?slot=" + encode(slot.getValue()); @@ -90,7 +90,7 @@ public class ScapeFashionConnection { return response; } - private ScapeFashionResult rs3Item(String item) throws Exception { + public ScapeFashionResult rs3Item(String item) throws Exception { String uri = RS3_REQUEST_URL + "/items/" + encode(item); String link = RS3_LINK_URL + "/items/" + encode(item); @@ -102,7 +102,7 @@ public class ScapeFashionConnection { return response; } - private ScapeFashionResult rs3Item(String item, ScapeFashionSlotRs3 slot) throws Exception { + public ScapeFashionResult rs3Item(String item, ScapeFashionSlotRs3 slot) throws Exception { String uri = RS3_REQUEST_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); String link = RS3_LINK_URL + "/items/" + encode(item) + "?slot=" + encode(slot.getValue()); From 48f3c252a6e39cd41d7301d9deff562b552c2117 Mon Sep 17 00:00:00 2001 From: Aleksei Gryczewski Date: Sat, 3 Oct 2020 15:31:44 +0000 Subject: [PATCH 30/36] Restored color-coded log messages --- .../salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java | 2 ++ .../java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java | 1 + .../java/dev/salmonllama/fsbot/listeners/ImageListener.java | 2 ++ 3 files changed, 5 insertions(+) diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java index c3de223..c4044be 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java @@ -12,6 +12,7 @@ import dev.salmonllama.fsbot.guthix.*; import org.javacord.api.entity.channel.TextChannel; import org.javacord.api.entity.message.embed.EmbedBuilder; +import java.awt.Color; import java.util.Arrays; import java.util.List; @@ -73,6 +74,7 @@ public class RemoveOutfitCommand extends Command { EmbedBuilder log = new EmbedBuilder() .setTitle("Outfit Marked as Deleted") .setThumbnail(outfit.getLink()) + .setColor(Color.RED) .addField("Deleted By:", ctx.getAuthor().getDiscriminatedName()); ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent( diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java index fc60b47..f548e22 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java @@ -77,6 +77,7 @@ public class RetagCommand extends Command { EmbedBuilder log = new EmbedBuilder() .setTitle("Outfit Retagged") + .setColor(Color.YELLOW) .setThumbnail(outfit.getLink()) .addField("New tag:", newTag); diff --git a/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java b/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java index 021d49d..6b9f98d 100644 --- a/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java +++ b/src/main/java/dev/salmonllama/fsbot/listeners/ImageListener.java @@ -17,6 +17,7 @@ import org.javacord.api.entity.message.embed.EmbedBuilder; import org.javacord.api.event.message.MessageCreateEvent; import org.javacord.api.listener.message.MessageCreateListener; import org.javacord.api.util.logging.ExceptionLogger; +import java.awt.Color; import java.util.UUID; @@ -107,6 +108,7 @@ public class ImageListener implements MessageCreateListener { .setThumbnail(outfit.getLink()) .setFooter(String.format("%s | %s", outfit.getTag(), outfit.getId())) .setUrl(outfit.getLink()) + .setColor(Color.GREEN) .addField("Uploaded:", outfit.getCreated().toString()); if (!outfit.getMeta().equals("")) { From 19b2eef56b0b376b4fced753ef33cfd30c64d1a9 Mon Sep 17 00:00:00 2001 From: salmonllama Date: Sat, 3 Oct 2020 18:04:39 -0400 Subject: [PATCH 31/36] Added command to edit outfit meta --- .../fsbot/commands/staff/EditMetaCommand.java | 98 +++++++++++++++++++ .../fsbot/database/models/Outfit.java | 4 + .../dev/salmonllama/fsbot/guthix/Guthix.java | 1 + 3 files changed, 103 insertions(+) create mode 100644 src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java new file mode 100644 index 0000000..fc00479 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java @@ -0,0 +1,98 @@ +package dev.salmonllama.fsbot.commands.staff; + +import com.vdurmont.emoji.EmojiParser; +import dev.salmonllama.fsbot.config.BotConfig; +import dev.salmonllama.fsbot.database.controllers.OutfitController; +import dev.salmonllama.fsbot.guthix.*; +import org.apache.logging.log4j.util.Strings; +import org.javacord.api.entity.message.embed.EmbedBuilder; + +import java.awt.*; +import java.util.Arrays; +import java.util.List; + +public class EditMetaCommand extends Command { + @Override public String name() { return "Edit Meta"; } + @Override public String description() { return "Edit the meta information on the given outfit"; } + @Override public String usage() { return "editmeta "; } + @Override public CommandCategory category() { return CommandCategory.STAFF; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); } + @Override public List aliases() { return Arrays.asList("editmeta", "emeta"); } + + @Override + public void onCommand(CommandContext ctx) { + var args = ctx.getArgs(); + var newMeta = Strings.join(Arrays.asList(Arrays.copyOfRange(args, 1, args.length)), ' '); + var channel = ctx.getChannel(); + var authorId = ctx.getUser().getId(); + + if (args.length != 1) { + channel.sendMessage("You must supply a valid outfit ID."); + return; + } + + // get the outfit, confirm meta-edit through confirmation + String outfitId = args[0]; + OutfitController.findById(outfitId).thenAcceptAsync(possibleOutfit -> possibleOutfit.ifPresentOrElse(outfit -> { + // Send outfit info, react with selectors, add a listener to the message + EmbedBuilder embed = new EmbedBuilder() + .setTitle("Confirm Meta Edit") + .setThumbnail(outfit.getLink()) + .setAuthor(ctx.getApi().getUserById(outfit.getSubmitter()).join()) + .setUrl(outfit.getLink()) + .setFooter(String.format("Tag: %s", outfit.getTag())) + .addField("Submitted by:", ctx.getApi().getUserById(outfit.getSubmitter()).join().getDiscriminatedName()) + .addField("Current Meta", outfit.getMeta()) + .addField("Proposed Meta", newMeta); + + ctx.reply(embed).thenAcceptAsync(msg -> { + msg.addReaction(EmojiParser.parseToUnicode(":white_check_mark:")); + msg.addReaction(EmojiParser.parseToUnicode(":octagonal_sign:")); + + msg.addReactionAddListener(event -> { + if (event.getUser().getId() != authorId) { + return; + } + + if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":white_check_mark:"))) { + // Edit the outfit's meta + + outfit.setMeta(newMeta); + OutfitController.update(outfit); + + EmbedBuilder response = new EmbedBuilder() + .setTitle("Meta Modification Successful!") + .setDescription(String.format("New Meta: %s", outfit.getMeta())); + + msg.delete(); + ctx.reply(response); + + EmbedBuilder log = new EmbedBuilder() + .setTitle("Outfit Meta Changed") + .setThumbnail(outfit.getLink()) + .setColor(Color.YELLOW) + .addField("Edited By:", ctx.getAuthor().getDiscriminatedName()); + + ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent( + chnl -> chnl.sendMessage(log) + ); + + } else if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":octagonal_sign:"))) { + // Do nothing + EmbedBuilder response = new EmbedBuilder() + .setTitle("Meta Modification Aborted") + .setDescription(String.format("No modifications were made to %s", outfit.getId())); + + ctx.reply(response); + } + }); + }); + }, () -> { + EmbedBuilder response = new EmbedBuilder() + .setTitle("Outfit not Found") + .setDescription(String.format("ID %s does not exist", outfitId)); + + ctx.reply(response); + })); + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java b/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java index 6791f5d..3e436ac 100644 --- a/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java +++ b/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java @@ -56,6 +56,10 @@ public class Outfit extends DatabaseModel { return meta; } + public void setMeta(String meta) { + this.meta = meta; + } + public Timestamp getCreated() { return created; } diff --git a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java index f53fca4..edcda78 100644 --- a/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java +++ b/src/main/java/dev/salmonllama/fsbot/guthix/Guthix.java @@ -57,6 +57,7 @@ public class Guthix implements MessageCreateListener { addCommand(new SetStatusCommand()); addCommand(new WelcomeMessageCommand()); addCommand(new ShowGalleriesCommand()); + addCommand(new EditMetaCommand()); // General Commands addCommand(new PingCommand()); From 567a6585aef24da3f26ae381201f357071ef7e81 Mon Sep 17 00:00:00 2001 From: salmonllama Date: Sat, 3 Oct 2020 18:51:35 -0400 Subject: [PATCH 32/36] Added 5 minute Member role to NewMember workflow --- .../salmonllama/fsbot/config/BotConfig.java | 3 +++ .../fsbot/listeners/NewMemberListener.java | 12 +++++++++++- .../fsbot/utilities/AddMemberRole.java | 18 ++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java diff --git a/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java b/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java index f202a66..5424747 100644 --- a/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java +++ b/src/main/java/dev/salmonllama/fsbot/config/BotConfig.java @@ -63,6 +63,9 @@ public class BotConfig { @ConfigurationOption public static String HYDRIX_ROLE = "hydrix role id here"; + @ConfigurationOption + public static String MEMBER_ROLE = "member role id here"; + @ConfigurationOption public static String IMGUR_ID = "imgur_id_here"; diff --git a/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java b/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java index 458b439..de11c98 100644 --- a/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java +++ b/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java @@ -7,22 +7,32 @@ package dev.salmonllama.fsbot.listeners; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.ServerConfigController; +import dev.salmonllama.fsbot.utilities.AddMemberRole; import org.javacord.api.event.server.member.ServerMemberJoinEvent; import org.javacord.api.listener.server.member.ServerMemberJoinListener; +import java.util.concurrent.TimeUnit; + public class NewMemberListener implements ServerMemberJoinListener { + ServerMemberJoinEvent event; + public void onServerMemberJoin(ServerMemberJoinEvent event) { + this.event = event; if (!event.getServer().getIdAsString().equals(BotConfig.HOME_SERVER)) { // Only active in the Fashionscape server, currently. return; } - // TODO: Use the ServerConfig to retrieve the welcome channel as well. + // Send the welcome message in the welcome channel event.getApi().getServerTextChannelById(BotConfig.WELCOME_CHANNEL).ifPresent( // Get the Welcome Channel channel -> ServerConfigController.get(event.getServer().getIdAsString()).thenAcceptAsync( // Fetch the server config, if set. possibleConfig -> possibleConfig.ifPresent( // If config exists config -> channel.sendMessage(String.format(config.getWelcomeMessage(), event.getUser().getMentionTag()))))); // Send the welcome message + + // Add the Member role after 5 minutes + var roleAdder = new AddMemberRole(event); + event.getApi().getThreadPool().getScheduler().schedule(roleAdder, 5, TimeUnit.MINUTES); } } diff --git a/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java b/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java new file mode 100644 index 0000000..84c3548 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java @@ -0,0 +1,18 @@ +package dev.salmonllama.fsbot.utilities; + +import dev.salmonllama.fsbot.config.BotConfig; +import org.javacord.api.event.server.member.ServerMemberJoinEvent; + +public class AddMemberRole implements Runnable{ + + ServerMemberJoinEvent event; + + public AddMemberRole(ServerMemberJoinEvent event) { + this.event = event; + } + + @Override + public void run() { + event.getApi().getRoleById(BotConfig.MEMBER_ROLE).ifPresent(role -> role.addUser(event.getUser())); + } +} From c8b7cf243116b36fb7b40f82ed4f8ec149ad3267 Mon Sep 17 00:00:00 2001 From: salmonllama Date: Sat, 3 Oct 2020 18:54:11 -0400 Subject: [PATCH 33/36] Refactored MemberRole service for simplicity --- .../java/dev/salmonllama/fsbot/utilities/AddMemberRole.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java b/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java index 84c3548..b400895 100644 --- a/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java +++ b/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java @@ -13,6 +13,6 @@ public class AddMemberRole implements Runnable{ @Override public void run() { - event.getApi().getRoleById(BotConfig.MEMBER_ROLE).ifPresent(role -> role.addUser(event.getUser())); + event.getApi().getRoleById(BotConfig.MEMBER_ROLE).ifPresent(event.getUser()::addRole); } } From 9a8131b1e11bd090643446b24015c40d190cbc84 Mon Sep 17 00:00:00 2001 From: salmonllama Date: Sat, 3 Oct 2020 19:01:29 -0400 Subject: [PATCH 34/36] Reorganize for services --- .../dev/salmonllama/fsbot/listeners/NewMemberListener.java | 6 +++--- .../AddMemberRole.java => services/MemberRoleService.java} | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) rename src/main/java/dev/salmonllama/fsbot/{utilities/AddMemberRole.java => services/MemberRoleService.java} (68%) diff --git a/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java b/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java index de11c98..6e477c3 100644 --- a/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java +++ b/src/main/java/dev/salmonllama/fsbot/listeners/NewMemberListener.java @@ -7,7 +7,7 @@ package dev.salmonllama.fsbot.listeners; import dev.salmonllama.fsbot.config.BotConfig; import dev.salmonllama.fsbot.database.controllers.ServerConfigController; -import dev.salmonllama.fsbot.utilities.AddMemberRole; +import dev.salmonllama.fsbot.services.MemberRoleService; import org.javacord.api.event.server.member.ServerMemberJoinEvent; import org.javacord.api.listener.server.member.ServerMemberJoinListener; @@ -32,7 +32,7 @@ public class NewMemberListener implements ServerMemberJoinListener { config -> channel.sendMessage(String.format(config.getWelcomeMessage(), event.getUser().getMentionTag()))))); // Send the welcome message // Add the Member role after 5 minutes - var roleAdder = new AddMemberRole(event); - event.getApi().getThreadPool().getScheduler().schedule(roleAdder, 5, TimeUnit.MINUTES); + var memberRoleService = new MemberRoleService(event); + event.getApi().getThreadPool().getScheduler().schedule(memberRoleService, 5, TimeUnit.MINUTES); } } diff --git a/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java b/src/main/java/dev/salmonllama/fsbot/services/MemberRoleService.java similarity index 68% rename from src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java rename to src/main/java/dev/salmonllama/fsbot/services/MemberRoleService.java index b400895..a778cb6 100644 --- a/src/main/java/dev/salmonllama/fsbot/utilities/AddMemberRole.java +++ b/src/main/java/dev/salmonllama/fsbot/services/MemberRoleService.java @@ -1,13 +1,13 @@ -package dev.salmonllama.fsbot.utilities; +package dev.salmonllama.fsbot.services; import dev.salmonllama.fsbot.config.BotConfig; import org.javacord.api.event.server.member.ServerMemberJoinEvent; -public class AddMemberRole implements Runnable{ +public class MemberRoleService implements Runnable { ServerMemberJoinEvent event; - public AddMemberRole(ServerMemberJoinEvent event) { + public MemberRoleService(ServerMemberJoinEvent event) { this.event = event; } From 70ffa9c1f0b756b892b2915453e063720b453c67 Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Wed, 11 Nov 2020 11:07:45 -0500 Subject: [PATCH 35/36] Updated Javacord Dependency --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e62a1fd..b8dbbb8 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ repositories { dependencies { implementation 'org.xerial:sqlite-jdbc:3.30.1' implementation 'com.github.Kaaz:ConfigurationBuilder:0.4' - implementation 'org.javacord:javacord:3.0.6' + implementation 'org.javacord:javacord:3.1.1' implementation 'com.vdurmont:emoji-java:4.0.0' implementation 'com.squareup.okhttp3:okhttp:4.4.0' implementation 'ch.qos.logback:logback-classic:1.2.3' From 0b916cdb9fdc026ccc89f46f60ee4e71a95c576d Mon Sep 17 00:00:00 2001 From: Salmonllama Date: Wed, 11 Nov 2020 11:18:09 -0500 Subject: [PATCH 36/36] Update for breaking changes --- src/main/java/dev/salmonllama/fsbot/Main.java | 1 - .../dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java | 2 +- .../salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java | 2 +- .../java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/dev/salmonllama/fsbot/Main.java b/src/main/java/dev/salmonllama/fsbot/Main.java index 940cb07..482f7e2 100644 --- a/src/main/java/dev/salmonllama/fsbot/Main.java +++ b/src/main/java/dev/salmonllama/fsbot/Main.java @@ -34,7 +34,6 @@ public class Main { new DiscordApiBuilder().setToken(BotConfig.TOKEN).login().thenAccept(api -> { - @SuppressWarnings("unused") Guthix guthix = new Guthix(api); // Register listeners diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java index fc00479..0fc61df 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/EditMetaCommand.java @@ -50,7 +50,7 @@ public class EditMetaCommand extends Command { msg.addReaction(EmojiParser.parseToUnicode(":octagonal_sign:")); msg.addReactionAddListener(event -> { - if (event.getUser().getId() != authorId) { + if (event.getUserId() != authorId) { return; } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java index c4044be..92f19a5 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java @@ -56,7 +56,7 @@ public class RemoveOutfitCommand extends Command { msg.addReaction(EmojiParser.parseToUnicode(":octagonal_sign:")); msg.addReactionAddListener(event -> { - if (event.getUser().getId() != authorId) { + if (event.getUserId() != authorId) { return; } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java index f548e22..a503a56 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RetagCommand.java @@ -56,7 +56,7 @@ public class RetagCommand extends Command { msg.addReaction(EmojiParser.parseToUnicode(":octagonal_sign:")); msg.addReactionAddListener(event -> { - if (event.getUser().getId() != authorId) { + if (event.getUserId() != authorId) { return; }