Completed RS3Search module
This commit is contained in:
parent
39cf590cf4
commit
17c88fa379
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user