Completed RS3Search module

This commit is contained in:
Salmonllama 2020-09-14 09:24:18 -04:00
parent 39cf590cf4
commit 17c88fa379
13 changed files with 715 additions and 1 deletions

View File

@ -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<String> 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);
}
}
}
}

View File

@ -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<String> 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);
}
}
}
}

View File

@ -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<String> 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);
}
}
}
}

View File

@ -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<String> 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);
}
}
}
}

View File

@ -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<String> 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);
}
}
}
}

View File

@ -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<String> 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);
}
}
}
}

View File

@ -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<String> 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);
}
}
}
}

View File

@ -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<String> 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);
}
}
}
}

View File

@ -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<String> 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);
}
}
}
}

View File

@ -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<String> 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);
}
}
}
}

View File

@ -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);
}
}

View File

@ -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<String> 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);
}
}
}
}

View File

@ -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) {