Added add_owner command and made help messages more consistent

master
Joey Hines 2019-02-02 10:12:58 -06:00
parent 0593318df5
commit cb4a173508
1 changed files with 68 additions and 26 deletions

View File

@ -44,18 +44,19 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def add_base(self, ctx, x_pos: int, z_pos: int, *args): async def add_base(self, ctx, x_pos: int, z_pos: int, *args):
''' '''
{}add_base <x_pos> <z_pos> <Name> {}add_base <X Coordinate> <Z Coordinate> <Name>
The name parameter is optional. The Name parameter is optional if this is your first base
''' '''
name = get_name(args) name = get_name(args)
try: try:
base = run_command(self.base_url, self.api_token, "POST", "add_base", x_pos=x_pos, z_pos=z_pos, name=name, base = run_command(self.base_url, self.api_token, "POST", "add_base", 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 base has been added to the database: \n\n{}'.format(ctx.message.author.mention, '{}, your base has been added to the database: \n\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",
@ -70,16 +71,20 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def add_item(self, ctx, item_name, quantity: int, diamond_price: int, *args): async def add_item(self, ctx, item_name, quantity: int, diamond_price: int, *args):
''' '''
{}add_item <item name> <quantity> <diamond price> <Shop Name> {}add_item <Item Name> <Quantity> <Diamond Price> <Shop Name>
The name parameter is optional. If item name contains spaces, it must be wrapped in quotes. eg "Diamond Pickaxe"
The Shop Name parameter is optional if this is your first shop
''' '''
shop_name = get_name(args) shop_name = get_name(args)
try: try:
item = run_command(self.base_url, self.api_token, "POST", "add_item", item_name=item_name, quantity=quantity, item = run_command(self.base_url, self.api_token, "POST", "add_item", item_name=item_name,
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["shop"]["name"])) item["item_name"],
item["shop"]["name"]))
except Exception as e: except Exception as e:
error_list = [ error_list = [
{"error": "LocationLookUpError", {"error": "LocationLookUpError",
@ -93,11 +98,45 @@ 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 add_owner(self, ctx, new_owner_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.
'''
try:
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)
await ctx.send('{}, **{}** has been added as an owner to **{}**'.format(
ctx.message.author.mention, new_owner_name, location["name"]))
except Exception as e:
error_list = [
{"error": "PlayerNotFound",
"message": "{}, ain't no one in this darn database named {} you goob".format(
ctx.message.author.mention, new_owner_name)
},
{"error": "PlayerInDBError",
"message": "{}, **{}** is already an owner, stop having amosia.".format(
ctx.message.author.mention, new_owner_name)
},
{"error": "LocationLookUpError",
"message": "{}, you do not have a location by the 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 add_shop(self, ctx, x_pos: int, z_pos: int, *args): async def add_shop(self, ctx, x_pos: int, z_pos: int, *args):
''' '''
{}add_shop <x_pos> <z_pos> <Name> {}add_shop <X Coordinate> <Z Coordinate> <Shop Name>
The name parameter is optional. The Shop Name parameter is optional if this is your first shop
''' '''
name = get_name(args) name = get_name(args)
@ -123,15 +162,15 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def add_tunnel(self, ctx, tunnel_direction, tunnel_number: int, *args): async def add_tunnel(self, ctx, tunnel_direction, tunnel_number: int, *args):
''' '''
{}add_tunnel <tunnel_direction> <tunnel_number> <Location Name> {}add_tunnel <Tunnel Direction> <Tunnel Number> <Location Name>
The name parameter is optional. The Name parameter is optional if you only have one location
''' '''
name = get_name(args) name = get_name(args)
try: try:
tunnel = run_command(self.base_url, self.api_token, "POST", "add_tunnel", tunnel_direction=tunnel_direction, tunnel = run_command(self.base_url, self.api_token, "POST", "add_tunnel", tunnel_direction=tunnel_direction,
tunnel_number=tunnel_number, location_name=name, discord_uuid=ctx.message.author.id) tunnel_number=tunnel_number, location_name=name, discord_uuid=ctx.message.author.id)
await ctx.send("{}, your tunnel has been added to the database!".format(ctx.message.author.mention)) await ctx.send("{}, your tunnel has been added to the database!".format(ctx.message.author.mention))
@ -176,14 +215,14 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def delete_item(self, ctx, item_name: str, *args): async def delete_item(self, ctx, item_name: str, *args):
''' '''
{}delete_item <Item Name> <Location Name> {}delete_item <Item Name> <Shop Name>
The name parameter is optional. The Shop Name parameter is optional if you only have one location.
''' '''
shop_name = get_name(args) shop_name = get_name(args)
try: try:
shop = run_command(self.base_url, self.api_token, "POST", "delete_item", item=item_name, shop = run_command(self.base_url, self.api_token, "POST", "delete_item", item=item_name,
shop_name=shop_name, discord_uuid=ctx.message.author.id) shop_name=shop_name, discord_uuid=ctx.message.author.id)
await ctx.send("{}, **{}** has been deleted from {}, no one bought it anyway.".format( await ctx.send("{}, **{}** has been deleted from {}, no one bought it anyway.".format(
ctx.message.author.mention, item_name, shop["name"])) ctx.message.author.mention, item_name, shop["name"]))
@ -215,7 +254,7 @@ class GeoffreyCommands:
new_name=new_name, discord_uuid=ctx.message.author.id) new_name=new_name, discord_uuid=ctx.message.author.id)
await ctx.send("{}, **{}** has been renamed to **{}**.".format(ctx.message.author.mention, old_name, await ctx.send("{}, **{}** has been renamed to **{}**.".format(ctx.message.author.mention, old_name,
location["name"])) location["name"]))
except Exception as e: except Exception as e:
error_list = [ error_list = [
{"error": "EntryNameNotUniqueError", {"error": "EntryNameNotUniqueError",
@ -232,7 +271,7 @@ class GeoffreyCommands:
@commands.command(pass_conext=True) @commands.command(pass_conext=True)
async def edit_pos(self, ctx, new_x: int, new_z: int, *args): async def edit_pos(self, ctx, new_x: int, new_z: int, *args):
''' '''
{}edit_post <New X Coord> <New Z Coord> <Location Name> {}edit_post <New X Coordinate> <New Z Coordinate> <Location Name>
''' '''
loc_name = get_name(args) loc_name = get_name(args)
@ -241,7 +280,7 @@ class GeoffreyCommands:
loc_name=loc_name, discord_uuid=ctx.message.author.id) loc_name=loc_name, discord_uuid=ctx.message.author.id)
await ctx.send("{}, **{}** has been moved to **{}**".format(ctx.message.author.mention, location["name"], await ctx.send("{}, **{}** has been moved to **{}**".format(ctx.message.author.mention, location["name"],
location["location"])) location["location"]))
except Exception as e: except Exception as e:
error_list = [ error_list = [
{"error": "LocationLookUpError", {"error": "LocationLookUpError",
@ -284,7 +323,8 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def find_around(self, ctx, x_pos, z_pos, *args): async def find_around(self, ctx, x_pos, z_pos, *args):
''' '''
{}find_around <X Position> <Z Position> <radius> {}find_around <X Coordinate> <Z Coordinate> <Radius>
The Radius parameter is optional and defaults to 200 blocks
''' '''
try: try:
@ -299,7 +339,7 @@ class GeoffreyCommands:
ctx.message.author.mention, radius, x_pos, z_pos)] ctx.message.author.mention, radius, x_pos, z_pos)]
for location in locations: for location in locations:
message.append(formatted_location(location)) message.append(formatted_location(location))
await self.bot.send_list(ctx, message) await self.bot.send_list(ctx, message)
@ -378,7 +418,7 @@ class GeoffreyCommands:
error_list = [ error_list = [
{"error": "LocationLookUpError", {"error": "LocationLookUpError",
"message": "{}, there are no locations that match **{}**.".format(ctx.message.author.mention, "message": "{}, there are no locations that match **{}**.".format(ctx.message.author.mention,
location_name) location_name)
} }
] ]
@ -424,7 +464,8 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def selling(self, ctx, *args): async def selling(self, ctx, *args):
''' '''
{}selling <item name> {}selling <Item Name>
Sorts by most recently added
''' '''
item = get_name(args) item = get_name(args)
@ -452,7 +493,7 @@ class GeoffreyCommands:
async def restock(self, ctx, item_name, *args): async def restock(self, ctx, item_name, *args):
''' '''
{}restock <Item name> <Shop Name> {}restock <Item name> <Shop Name>
The shop name is optional The Shop Name is optional if you only have one shop.
''' '''
shop_name = get_name(args) shop_name = get_name(args)
@ -461,12 +502,12 @@ class GeoffreyCommands:
item = run_command(self.base_url, self.api_token, "POST", "restock", item_name=item_name, item = run_command(self.base_url, self.api_token, "POST", "restock", item_name=item_name,
shop_name=shop_name, discord_uuid=ctx.message.author.id) shop_name=shop_name, discord_uuid=ctx.message.author.id)
await ctx.send('{}, **{}** has been restocked at **{}**'.format(ctx.message.author.mention, item_name, await ctx.send('{}, **{}** has been restocked at **{}**'.format(ctx.message.author.mention, item_name,
item[0]["shop"]["name"])) item[0]["shop"]["name"]))
except Exception as e: except Exception as e:
error_list = [ error_list = [
{"error": "ItemNotFound", {"error": "ItemNotFound",
"message": "{}, that shop does not have **{}** in its inventory".format(ctx.message.author.mention, "message": "{}, that shop does not have **{}** in its inventory".format(ctx.message.author.mention,
item_name)}, item_name)},
{"error": "LocationLookUpError", {"error": "LocationLookUpError",
"message": "{}, you do not have a shop named **{}**.".format(ctx.message.author.mention, shop_name) "message": "{}, you do not have a shop named **{}**.".format(ctx.message.author.mention, shop_name)
}, },
@ -505,5 +546,6 @@ class GeoffreyCommands:
msg = check_error(e, error_list) msg = check_error(e, error_list)
await ctx.send(msg) await ctx.send(msg)
def setup(bot): def setup(bot):
bot.add_cog(GeoffreyCommands(bot)) bot.add_cog(GeoffreyCommands(bot))