Added town commands and fixed many bug in commands
+Added add_town, add_resident, remove_resident +Fixed some bugs introduce by the last commit +Error message now sends as one messagemaster
parent
d6f2fd47f0
commit
e63d00e967
|
@ -20,19 +20,43 @@ def formatted_position(location):
|
||||||
return '(x={}, z={})'.format(location["x_coord"], location["z_coord"])
|
return '(x={}, z={})'.format(location["x_coord"], location["z_coord"])
|
||||||
|
|
||||||
|
|
||||||
def formatted_shop(shop):
|
def formatted_shop(shop, base_url):
|
||||||
inventory = ""
|
shop_info_list = formatted_location_info(shop, base_url)
|
||||||
for item in shop["items"]:
|
|
||||||
inventory = inventory + "\n" + (formatted_item_listing(item))
|
|
||||||
|
|
||||||
return formatted_location(shop) + inventory
|
if len(shop["items"]) > 0:
|
||||||
|
shop_info_list.append("**Inventory:**")
|
||||||
|
for item in shop["items"]:
|
||||||
|
shop_info_list.append(formatted_item_listing(item))
|
||||||
|
|
||||||
|
return shop_info_list
|
||||||
|
|
||||||
|
|
||||||
|
def formatted_location_info(location, base_url):
|
||||||
|
info = []
|
||||||
|
|
||||||
|
info.append(formatted_location(location))
|
||||||
|
info.append(get_full_link(base_url, location["link"]))
|
||||||
|
|
||||||
|
return info
|
||||||
|
|
||||||
|
|
||||||
|
def formatted_town(town, base_url):
|
||||||
|
town_info_list = formatted_location_info(town, base_url)
|
||||||
|
|
||||||
|
if len(town["residents"]) > 0:
|
||||||
|
town_info_list.append("**Residents:**")
|
||||||
|
|
||||||
|
for resident in town["residents"]:
|
||||||
|
town_info_list.append(resident["name"])
|
||||||
|
|
||||||
|
return town_info_list
|
||||||
|
|
||||||
|
|
||||||
def formatted_owners(location):
|
def formatted_owners(location):
|
||||||
owner_list = ''
|
owner_list = ''
|
||||||
if "owner" in location:
|
if "owner" in location:
|
||||||
|
|
||||||
if len(location["owner"]) == 0:
|
if len(location["owner"]) == 1:
|
||||||
owner_list = 'Owner: **{}**'
|
owner_list = 'Owner: **{}**'
|
||||||
owner_list = owner_list.format(location["owner"][0]["name"])
|
owner_list = owner_list.format(location["owner"][0]["name"])
|
||||||
else:
|
else:
|
||||||
|
@ -45,3 +69,7 @@ def formatted_owners(location):
|
||||||
owner_list = owner_list.format(owners)
|
owner_list = owner_list.format(owners)
|
||||||
|
|
||||||
return owner_list
|
return owner_list
|
||||||
|
|
||||||
|
|
||||||
|
def get_full_link(base_url, link):
|
||||||
|
return base_url + link
|
||||||
|
|
|
@ -75,10 +75,14 @@ class GeoffreyBot(commands.Bot):
|
||||||
if isinstance(error, commands.errors.CommandNotFound):
|
if isinstance(error, commands.errors.CommandNotFound):
|
||||||
return
|
return
|
||||||
elif isinstance(error, commands.errors.BadArgument):
|
elif isinstance(error, commands.errors.BadArgument):
|
||||||
error_str = "That's not how you use the command you ding dong."
|
error_str = "Well bud, you got this far. Good job! But you still h*cked up the syntax. " \
|
||||||
|
"Check {}help.".format(self.prefix)
|
||||||
elif isinstance(error, commands.errors.MissingRequiredArgument):
|
elif isinstance(error, commands.errors.MissingRequiredArgument):
|
||||||
error_str = "Well bud, you got this far. Good job! But you still h*cked up the syntax. " \
|
error_str = "Well bud, you got this far. Good job! But you still h*cked up the syntax. " \
|
||||||
"Check {}help.".format(self.prefix)
|
"Check {}help.".format(self.prefix)
|
||||||
|
elif hasattr(error, "original") and isinstance(error.original, ValueError):
|
||||||
|
error_str = "Well bud, you got this far. Good job! But you still h*cked up the syntax. Check {}help." \
|
||||||
|
.format(self.prefix)
|
||||||
elif hasattr(error, "original") and isinstance(error.original, request_exception.ConnectionError):
|
elif hasattr(error, "original") and isinstance(error.original, request_exception.ConnectionError):
|
||||||
error_str = "Unable to connect to the database. Hopefully someone is working on this..."
|
error_str = "Unable to connect to the database. Hopefully someone is working on this..."
|
||||||
await self.send_error_message("Can't connect to GeoffreyAPI, is it offline?")
|
await self.send_error_message("Can't connect to GeoffreyAPI, is it offline?")
|
||||||
|
@ -90,7 +94,7 @@ class GeoffreyBot(commands.Bot):
|
||||||
elif e == "NoLocationsInDatabase":
|
elif e == "NoLocationsInDatabase":
|
||||||
error_str = "You have no locations in the database, ding dongs like you can read {}help to figure out" \
|
error_str = "You have no locations in the database, ding dongs like you can read {}help to figure out" \
|
||||||
"how to add them".format(self.prefix)
|
"how to add them".format(self.prefix)
|
||||||
elif e == "TypeError":
|
elif e == "TypeError" or e == "ValueError":
|
||||||
error_str = "Well bud, you got this far. Good job! But you still h*cked up the syntax. Check {}help." \
|
error_str = "Well bud, you got this far. Good job! But you still h*cked up the syntax. Check {}help." \
|
||||||
.format(self.prefix)
|
.format(self.prefix)
|
||||||
elif e == "DataError":
|
elif e == "DataError":
|
||||||
|
@ -104,8 +108,11 @@ class GeoffreyBot(commands.Bot):
|
||||||
ctx.invoked_with,
|
ctx.invoked_with,
|
||||||
ctx.args[1].args[2:]))
|
ctx.args[1].args[2:]))
|
||||||
|
|
||||||
|
error_message = ["```python"]
|
||||||
for tb in traceback.format_tb(error.original.__traceback__):
|
for tb in traceback.format_tb(error.original.__traceback__):
|
||||||
await self.send_error_message("```python\n{}```".format(tb))
|
error_message.append(tb)
|
||||||
|
|
||||||
|
error_message.append("```")
|
||||||
|
|
||||||
error_str = bad_error_message.format(ctx.invoked_with)
|
error_str = bad_error_message.format(ctx.invoked_with)
|
||||||
|
|
||||||
|
@ -118,6 +125,10 @@ class GeoffreyBot(commands.Bot):
|
||||||
async def send_error_message(self, msg):
|
async def send_error_message(self, msg):
|
||||||
for user_id in self.error_users:
|
for user_id in self.error_users:
|
||||||
user = await self.get_user_info(user_id)
|
user = await self.get_user_info(user_id)
|
||||||
|
|
||||||
|
if msg is list:
|
||||||
|
await self.send_list(user, msg)
|
||||||
|
else:
|
||||||
await user.send(msg)
|
await user.send(msg)
|
||||||
|
|
||||||
def run_command(self, command, **kwargs):
|
def run_command(self, command, **kwargs):
|
||||||
|
@ -171,7 +182,10 @@ class GeoffreyBot(commands.Bot):
|
||||||
|
|
||||||
help_list.append(command["help"] + "\n")
|
help_list.append(command["help"] + "\n")
|
||||||
|
|
||||||
help_msg = self.get_command(command_name).help
|
c = self.get_command(command_name)
|
||||||
|
|
||||||
|
if c is not None:
|
||||||
|
help_msg = c.help
|
||||||
help_list.append(help_msg.format(self.prefix))
|
help_list.append(help_msg.format(self.prefix))
|
||||||
|
|
||||||
help_list.append('```')
|
help_list.append('```')
|
||||||
|
|
|
@ -55,12 +55,16 @@ class GeoffreyCommands:
|
||||||
discord_uuid=ctx.message.author.id)
|
discord_uuid=ctx.message.author.id)
|
||||||
|
|
||||||
await ctx.send(
|
await ctx.send(
|
||||||
'{}, your base has been added to the database: \n\n{}'.format(ctx.message.author.mention,
|
'{}, your base has been added to the database: \n{}'.format(ctx.message.author.mention,
|
||||||
formatted_location(base)))
|
formatted_location(base)))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
error_list = [
|
error_list = [
|
||||||
{"error": "EntryNameNotUniqueError",
|
{"error": "EntryNameNotUniqueError",
|
||||||
"message": "{}, a base with that name already exists, be more unique ding dong".format(
|
"message": "{}, a location with that name already exists, be more unique ding dong".format(
|
||||||
|
ctx.message.author.mention)
|
||||||
|
},
|
||||||
|
{"error": "LocationLookUpError",
|
||||||
|
"message": "{}, you have more than one location. Please specify a name.".format(
|
||||||
ctx.message.author.mention)
|
ctx.message.author.mention)
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
@ -82,7 +86,7 @@ class GeoffreyCommands:
|
||||||
item = run_command(self.base_url, self.api_token, "POST", "add_item", item_name=item_name,
|
item = run_command(self.base_url, self.api_token, "POST", "add_item", item_name=item_name,
|
||||||
quantity=quantity,
|
quantity=quantity,
|
||||||
diamond_price=diamond_price, shop_name=shop_name, discord_uuid=ctx.message.author.id)
|
diamond_price=diamond_price, shop_name=shop_name, discord_uuid=ctx.message.author.id)
|
||||||
await ctx.send('{}, {} has been added to the inventory of {}'.format(ctx.message.author.mention,
|
await ctx.send('{}, **{}** has been added to the inventory of **{}**'.format(ctx.message.author.mention,
|
||||||
item["item_name"],
|
item["item_name"],
|
||||||
item["shop"]["name"]))
|
item["shop"]["name"]))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -99,12 +103,14 @@ class GeoffreyCommands:
|
||||||
await ctx.send(msg)
|
await ctx.send(msg)
|
||||||
|
|
||||||
@commands.command(pass_context=True)
|
@commands.command(pass_context=True)
|
||||||
async def add_owner(self, ctx, new_owner_name, location_name):
|
async def add_owner(self, ctx, new_owner_name, *args):
|
||||||
'''
|
'''
|
||||||
{}add_owner <New Owner's Name> <Location Name>
|
{}add_owner <New Owner's Name> <Location Name>
|
||||||
WARNING: The new owner had just as much power as you to edit or delete this location.
|
WARNING: The new owner had just as much power as you to edit or delete this location.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
location_name = get_name(args)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
location = run_command(self.base_url, self.api_token, "POST", "add_owner", new_owner_name=new_owner_name,
|
location = run_command(self.base_url, self.api_token, "POST", "add_owner", new_owner_name=new_owner_name,
|
||||||
location_name=location_name, discord_uuid=ctx.message.author.id)
|
location_name=location_name, discord_uuid=ctx.message.author.id)
|
||||||
|
@ -113,17 +119,52 @@ class GeoffreyCommands:
|
||||||
ctx.message.author.mention, new_owner_name, location["name"]))
|
ctx.message.author.mention, new_owner_name, location["name"]))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
error_list = [
|
error_list = [
|
||||||
{"error": "PlayerNotFound",
|
{"error": "OwnerNotFoundError",
|
||||||
"message": "{}, ain't no one in this darn database named {} you goob".format(
|
"message": "{}, ain't no one in this darn database named **{}** you goob".format(
|
||||||
ctx.message.author.mention, new_owner_name)
|
ctx.message.author.mention, new_owner_name)
|
||||||
},
|
},
|
||||||
{"error": "PlayerInDBError",
|
{"error": "IsOwnerError",
|
||||||
"message": "{}, **{}** is already an owner, stop having amosia.".format(
|
"message": "{}, **{}** is already an owner, stop having amosia.".format(
|
||||||
ctx.message.author.mention, new_owner_name)
|
ctx.message.author.mention, new_owner_name)
|
||||||
},
|
},
|
||||||
{"error": "LocationLookUpError",
|
{"error": "LocationLookUpError",
|
||||||
"message": "{}, you do not have a location by the name you ding dong goober.".format(
|
"message": "{}, you do not have a location by that name you ding dong goober.".format(
|
||||||
ctx.message.author)
|
ctx.message.author.mention)
|
||||||
|
}
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
msg = check_error(e, error_list)
|
||||||
|
|
||||||
|
await ctx.send(msg)
|
||||||
|
|
||||||
|
@commands.command(pass_context=True)
|
||||||
|
async def add_resident(self, ctx, new_resident_name, *args):
|
||||||
|
'''
|
||||||
|
{}add_resident <New Residents's Name> <Town Name>
|
||||||
|
'''
|
||||||
|
|
||||||
|
town_name = get_name(args)
|
||||||
|
try:
|
||||||
|
location = run_command(self.base_url, self.api_token, "POST", "add_resident",
|
||||||
|
new_resident_name=new_resident_name,
|
||||||
|
town_name=town_name, discord_uuid=ctx.message.author.id)
|
||||||
|
|
||||||
|
await ctx.send('{}, **{}** has been added as a resident to **{}**'.format(
|
||||||
|
ctx.message.author.mention, new_resident_name, location["name"]))
|
||||||
|
except Exception as e:
|
||||||
|
error_list = [
|
||||||
|
{"error": "ResidentNotFoundError",
|
||||||
|
"message": "{}, ain't no one in this darn database named {} you goob".format(
|
||||||
|
ctx.message.author.mention, new_resident_name)
|
||||||
|
},
|
||||||
|
{"error": "IsResidentError",
|
||||||
|
"message": "{}, **{}** is already a resident, stop having amosia.".format(
|
||||||
|
ctx.message.author.mention, new_resident_name)
|
||||||
|
},
|
||||||
|
{"error": "LocationLookUpError",
|
||||||
|
"message": "{}, you do not have a town by that name you ding dong goober.".format(
|
||||||
|
ctx.message.author.mention)
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
|
@ -142,18 +183,53 @@ class GeoffreyCommands:
|
||||||
name = get_name(args)
|
name = get_name(args)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
base = run_command(self.base_url, self.api_token, "POST", "add_shop", x_pos=x_pos, z_pos=z_pos, name=name,
|
shop = run_command(self.base_url, self.api_token, "POST", "add_shop", x_pos=x_pos, z_pos=z_pos, name=name,
|
||||||
discord_uuid=ctx.message.author.id)
|
discord_uuid=ctx.message.author.id)
|
||||||
|
|
||||||
await ctx.send(
|
await ctx.send(
|
||||||
'{}, your shop has been added to the database: \n\n{}'.format(ctx.message.author.mention,
|
'{}, your shop has been added to the database: \n{}'.format(ctx.message.author.mention,
|
||||||
formatted_location(base)))
|
formatted_location(shop)))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
error_list = [
|
error_list = [
|
||||||
{"error": "EntryNameNotUniqueError",
|
{"error": "EntryNameNotUniqueError",
|
||||||
"message": "{}, a shop with that name already exists, be more unique ding dong".format(
|
"message": "{}, a location with that name already exists, be more unique ding dong".format(
|
||||||
ctx.message.author.mention)
|
ctx.message.author.mention)
|
||||||
}
|
},
|
||||||
|
{"error": "LocationLookUpError",
|
||||||
|
"message": "{}, you have more than one location. Please specify a name.".format(
|
||||||
|
ctx.message.author.mention)
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
msg = check_error(e, error_list)
|
||||||
|
await ctx.send(msg)
|
||||||
|
|
||||||
|
@commands.command(pass_context=True)
|
||||||
|
async def add_town(self, ctx, x_pos: int, z_pos: int, *args):
|
||||||
|
'''
|
||||||
|
{}add_town <X Coordinate> <Z Coordinate> <Shop Name>
|
||||||
|
The Town Name parameter is optional if this is your first town
|
||||||
|
'''
|
||||||
|
|
||||||
|
name = get_name(args)
|
||||||
|
|
||||||
|
try:
|
||||||
|
town = run_command(self.base_url, self.api_token, "POST", "add_town", x_pos=x_pos, z_pos=z_pos, name=name,
|
||||||
|
discord_uuid=ctx.message.author.id)
|
||||||
|
|
||||||
|
await ctx.send(
|
||||||
|
'{}, your town has been added to the database: \n{}'.format(ctx.message.author.mention,
|
||||||
|
formatted_location(town)))
|
||||||
|
except Exception as e:
|
||||||
|
error_list = [
|
||||||
|
{"error": "EntryNameNotUniqueError",
|
||||||
|
"message": "{}, a location with that name already exists, be more unique ding dong".format(
|
||||||
|
ctx.message.author.mention)
|
||||||
|
},
|
||||||
|
{"error": "LocationLookUpError",
|
||||||
|
"message": "{}, you have more than one location. Please specify a name.".format(
|
||||||
|
ctx.message.author.mention)
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
msg = check_error(e, error_list)
|
msg = check_error(e, error_list)
|
||||||
|
@ -182,8 +258,10 @@ class GeoffreyCommands:
|
||||||
{"error": "InvalidTunnelError",
|
{"error": "InvalidTunnelError",
|
||||||
"message": "{}, {} is not a valid tunnel direction ya gub".format(ctx.message.author.mention,
|
"message": "{}, {} is not a valid tunnel direction ya gub".format(ctx.message.author.mention,
|
||||||
tunnel_direction)
|
tunnel_direction)
|
||||||
}
|
},
|
||||||
|
{"error": "LocationLookUpError",
|
||||||
|
"message": "{}, you do not have a location by the name you ding dong goober.".format(
|
||||||
|
ctx.message.author.mention)}
|
||||||
]
|
]
|
||||||
|
|
||||||
msg = check_error(e, error_list)
|
msg = check_error(e, error_list)
|
||||||
|
@ -206,7 +284,7 @@ class GeoffreyCommands:
|
||||||
error_list = [
|
error_list = [
|
||||||
{"error": "LocationLookUpError",
|
{"error": "LocationLookUpError",
|
||||||
"message": "{}, you do not have a location by the name you ding dong goober.".format(
|
"message": "{}, you do not have a location by the name you ding dong goober.".format(
|
||||||
ctx.message.author)}
|
ctx.message.author.mention)}
|
||||||
]
|
]
|
||||||
|
|
||||||
msg = check_error(e, error_list)
|
msg = check_error(e, error_list)
|
||||||
|
@ -230,7 +308,8 @@ class GeoffreyCommands:
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
error_list = [
|
error_list = [
|
||||||
{"error": "LocationLookUpError",
|
{"error": "LocationLookUpError",
|
||||||
"message": "{}, you do not have a location by the name you ding dong goober."},
|
"message": "{}, you do not have a shop by that name you ding dong goober.".format(
|
||||||
|
ctx.message.author.mention)},
|
||||||
{"error": "EntryNameNotUniqueError",
|
{"error": "EntryNameNotUniqueError",
|
||||||
"message": "{}, you have more than one location. Please specify a name, dingus.".format(
|
"message": "{}, you have more than one location. Please specify a name, dingus.".format(
|
||||||
ctx.message.author.mention)},
|
ctx.message.author.mention)},
|
||||||
|
@ -347,11 +426,6 @@ class GeoffreyCommands:
|
||||||
error_list = [
|
error_list = [
|
||||||
{"error": "LocationLookUpError",
|
{"error": "LocationLookUpError",
|
||||||
"message": "{}, there are no locations in that area.".format(ctx.message.author.mention)
|
"message": "{}, there are no locations in that area.".format(ctx.message.author.mention)
|
||||||
},
|
|
||||||
{
|
|
||||||
"error": "ValueError",
|
|
||||||
"message": "{}, {} is an invalid radius, the radius must be a whole number.".format(
|
|
||||||
ctx.message.author.mention, args[0])
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -410,9 +484,17 @@ class GeoffreyCommands:
|
||||||
try:
|
try:
|
||||||
location = run_command(self.base_url, self.api_token, "GET", "info", location_name=location_name)
|
location = run_command(self.base_url, self.api_token, "GET", "info", location_name=location_name)
|
||||||
|
|
||||||
message = "{}, info on {}:\n{}".format(ctx.message.author.mention, location["name"],
|
message = "{}, info on {}:\n".format(ctx.message.author.mention, location["name"])
|
||||||
formatted_location(location))
|
|
||||||
|
if location["type"] == "Shop":
|
||||||
|
info_list = formatted_shop(location, self.base_url)
|
||||||
|
elif location["type"] == "Town":
|
||||||
|
info_list = formatted_town(location, self.base_url)
|
||||||
|
else:
|
||||||
|
info_list = formatted_location_info(location, self.base_url)
|
||||||
|
|
||||||
await ctx.send(message)
|
await ctx.send(message)
|
||||||
|
await self.bot.send_list(ctx, info_list)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
error_list = [
|
error_list = [
|
||||||
|
@ -461,6 +543,38 @@ class GeoffreyCommands:
|
||||||
msg = check_error(e, error_list)
|
msg = check_error(e, error_list)
|
||||||
await ctx.send(msg)
|
await ctx.send(msg)
|
||||||
|
|
||||||
|
@commands.command(pass_context=True)
|
||||||
|
async def remove_resident(self, ctx, resident_name, *args):
|
||||||
|
'''
|
||||||
|
{}remove_resident <Resident Name> <Town Name>
|
||||||
|
The Town Name is optional if you only have one town.
|
||||||
|
'''
|
||||||
|
|
||||||
|
town_name = get_name(args)
|
||||||
|
try:
|
||||||
|
location = run_command(self.base_url, self.api_token, "POST", "remove_resident",
|
||||||
|
resident_name=resident_name,
|
||||||
|
town_name=town_name, discord_uuid=ctx.message.author.id)
|
||||||
|
|
||||||
|
await ctx.send('{}, **{}** has been remove as a resident of **{}**'.format(
|
||||||
|
ctx.message.author.mention, resident_name, location["name"]))
|
||||||
|
except Exception as e:
|
||||||
|
error_list = [
|
||||||
|
{"error": "ResidentNotFoundError",
|
||||||
|
"message": "{}, ain't no one your town named {} you goob".format(
|
||||||
|
ctx.message.author.mention, resident_name)
|
||||||
|
},
|
||||||
|
{"error": "LocationLookUpError",
|
||||||
|
"message": "{}, you do not have a town by that name you ding dong goober.".format(
|
||||||
|
ctx.message.author)
|
||||||
|
}
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
msg = check_error(e, error_list)
|
||||||
|
|
||||||
|
await ctx.send(msg)
|
||||||
|
|
||||||
@commands.command(pass_context=True)
|
@commands.command(pass_context=True)
|
||||||
async def selling(self, ctx, *args):
|
async def selling(self, ctx, *args):
|
||||||
'''
|
'''
|
||||||
|
@ -475,7 +589,41 @@ class GeoffreyCommands:
|
||||||
message = ["{} The following shop(s) sell **{}**:".format(ctx.message.author.mention, item)]
|
message = ["{} The following shop(s) sell **{}**:".format(ctx.message.author.mention, item)]
|
||||||
|
|
||||||
for shop in results:
|
for shop in results:
|
||||||
message.append(formatted_shop(shop))
|
for line in formatted_shop(shop, base_url=self.base_url):
|
||||||
|
message.append(line)
|
||||||
|
|
||||||
|
message.append('')
|
||||||
|
|
||||||
|
await self.bot.send_list(ctx, message)
|
||||||
|
except Exception as e:
|
||||||
|
error_list = [
|
||||||
|
{"error": "ItemNotFound",
|
||||||
|
"message": "{}, no shop was found selling {}".format(
|
||||||
|
ctx.message.author.mention, item)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
msg = check_error(e, error_list)
|
||||||
|
await ctx.send(msg)
|
||||||
|
|
||||||
|
@commands.command(pass_context=True)
|
||||||
|
async def selling_price(self, ctx, *args):
|
||||||
|
'''
|
||||||
|
{}selling <Item Name>
|
||||||
|
Sorts by most recently added
|
||||||
|
'''
|
||||||
|
item = get_name(args)
|
||||||
|
|
||||||
|
try:
|
||||||
|
results = run_command(self.base_url, self.api_token, "GET", "selling_price", item_name=item)
|
||||||
|
|
||||||
|
message = ["{} The following shop(s) sell **{}**:".format(ctx.message.author.mention, item)]
|
||||||
|
|
||||||
|
for shop in results:
|
||||||
|
for line in formatted_shop(shop, base_url=self.base_url):
|
||||||
|
message.append(line)
|
||||||
|
|
||||||
|
message.append('')
|
||||||
|
|
||||||
await self.bot.send_list(ctx, message)
|
await self.bot.send_list(ctx, message)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -519,6 +667,7 @@ class GeoffreyCommands:
|
||||||
msg = check_error(e, error_list)
|
msg = check_error(e, error_list)
|
||||||
await ctx.send(msg)
|
await ctx.send(msg)
|
||||||
|
|
||||||
|
|
||||||
@commands.command(pass_context=True)
|
@commands.command(pass_context=True)
|
||||||
async def tunnel(self, ctx, *args):
|
async def tunnel(self, ctx, *args):
|
||||||
'''
|
'''
|
||||||
|
|
Loading…
Reference in New Issue