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.developer.*;
|
||||||
import dev.salmonllama.fsbot.commands.general.*;
|
import dev.salmonllama.fsbot.commands.general.*;
|
||||||
import dev.salmonllama.fsbot.commands.osrssearch.*;
|
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.OutfitInfoCommand;
|
||||||
import dev.salmonllama.fsbot.commands.staff.*;
|
import dev.salmonllama.fsbot.commands.staff.*;
|
||||||
import org.javacord.api.DiscordApi;
|
import org.javacord.api.DiscordApi;
|
||||||
@ -70,7 +71,7 @@ public class Guthix implements MessageCreateListener {
|
|||||||
addCommand(new OsrsSearchCommand());
|
addCommand(new OsrsSearchCommand());
|
||||||
addCommand(new OsrsHeadCommand());
|
addCommand(new OsrsHeadCommand());
|
||||||
addCommand(new OsrsBodyCommand());
|
addCommand(new OsrsBodyCommand());
|
||||||
addCommand(new OsrsHeadCommand());
|
addCommand(new OsrsHandCommand());
|
||||||
addCommand(new OsrsLegsCommand());
|
addCommand(new OsrsLegsCommand());
|
||||||
addCommand(new OsrsFeetCommand());
|
addCommand(new OsrsFeetCommand());
|
||||||
addCommand(new OsrsCapeCommand());
|
addCommand(new OsrsCapeCommand());
|
||||||
@ -79,6 +80,17 @@ public class Guthix implements MessageCreateListener {
|
|||||||
addCommand(new OsrsWeaponCommand());
|
addCommand(new OsrsWeaponCommand());
|
||||||
|
|
||||||
// Rs3 Search Commands
|
// 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) {
|
public void addCommand(Command cmd) {
|
||||||
|
Loading…
Reference in New Issue
Block a user