Upgraded to discord.py v1.0

master
Joey Hines 2019-04-10 14:08:39 -05:00
parent e63d00e967
commit 78fb85cf17
4 changed files with 58 additions and 59 deletions

View File

@ -46,9 +46,8 @@ class GeoffreyBot(commands.Bot):
self.special_users = [] self.special_users = []
self.default_status = setting['STATUS'] self.default_status = setting['STATUS']
super().__init__(command_prefix=self.prefix, description=description, case_insensitive=True) super().__init__(command_prefix=self.prefix, description=description, case_insensitive=True, help_command=None)
self.remove_command("help")
self.load_extension('GeoffreyBot.geoffrey_api') self.load_extension('GeoffreyBot.geoffrey_api')
self.help_page = self.build_help_page() self.help_page = self.build_help_page()
@ -98,8 +97,8 @@ class GeoffreyBot(commands.Bot):
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":
error_str = "Slow down their slugger, that's a long word or number you are trying to cram into me, try " \ error_str = "Slow down their slugger, that's a long word or number you are trying to cram into me, " \
"again with something smaller, please" "try again with something smaller, please"
if error_str is '': if error_str is '':
await self.send_error_message( await self.send_error_message(
@ -124,7 +123,7 @@ 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 = self.get_user(user_id)
if msg is list: if msg is list:
await self.send_list(user, msg) await self.send_list(user, msg)
@ -132,11 +131,12 @@ class GeoffreyBot(commands.Bot):
await user.send(msg) await user.send(msg)
def run_command(self, command, **kwargs): def run_command(self, command, **kwargs):
URL = self.base_url + '/api/command/{}' url = self.base_url + '/api/command/{}'
return requests.get(url=URL.format(command), params=kwargs).json() return requests.get(url=url.format(command), params=kwargs).json()
async def send_list(self, ctx, send_list): @staticmethod
async def send_list(ctx, send_list):
size = 0 size = 0
msg = "" msg = ""
@ -168,7 +168,7 @@ class GeoffreyBot(commands.Bot):
name = command["command"].ljust(largest_command_size + 2) name = command["command"].ljust(largest_command_size + 2)
help_list.append(" {}{}{}".format(self.prefix, name, command["help"])) help_list.append(" {}{}{}".format(self.prefix, name, command["help"]))
help_list.append("\nDo ?help <command name> to get more info on any of thee commands above") help_list.append("\nDo ?help <command name> to get more info on any of the commands above")
help_list.append("```") help_list.append("```")
return help_list return help_list
@ -178,9 +178,7 @@ class GeoffreyBot(commands.Bot):
for command in self.command_list: for command in self.command_list:
command_name = command["command"] command_name = command["command"]
help_list = ['```'] help_list = ['```', command["help"] + "\n"]
help_list.append(command["help"] + "\n")
c = self.get_command(command_name) c = self.get_command(command_name)
@ -193,4 +191,3 @@ class GeoffreyBot(commands.Bot):
help_dict[command_name] = help_list help_dict[command_name] = help_list
return help_dict return help_dict

View File

@ -35,7 +35,7 @@ def check_error(exception, handled_errors):
raise exception raise exception
class GeoffreyCommands: class GeoffreyCommands(commands.Cog):
def __init__(self, bot): def __init__(self, bot):
self.bot = bot self.bot = bot
self.base_url = bot.base_url self.base_url = bot.base_url
@ -43,11 +43,11 @@ 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 Coordinate> <Z Coordinate> <Name> {}add_base <X Coordinate> <Z Coordinate> <Name>
The Name parameter is optional if this is your first base The Name parameter is optional if this is your first base
''' """
name = get_name(args) name = get_name(args)
try: try:
@ -74,12 +74,12 @@ 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>
If item name contains spaces, it must be wrapped in quotes. eg "Diamond Pickaxe" 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 The Shop Name parameter is optional if this is your first shop
''' """
shop_name = get_name(args) shop_name = get_name(args)
try: try:
@ -104,10 +104,10 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def add_owner(self, ctx, new_owner_name, *args): 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) location_name = get_name(args)
@ -140,9 +140,9 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def add_resident(self, ctx, new_resident_name, *args): async def add_resident(self, ctx, new_resident_name, *args):
''' """
{}add_resident <New Residents's Name> <Town Name> {}add_resident <New Residents's Name> <Town Name>
''' """
town_name = get_name(args) town_name = get_name(args)
try: try:
@ -175,10 +175,10 @@ class GeoffreyCommands:
@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 Coordinate> <Z Coordinate> <Shop Name> {}add_shop <X Coordinate> <Z Coordinate> <Shop Name>
The Shop Name parameter is optional if this is your first shop The Shop Name parameter is optional if this is your first shop
''' """
name = get_name(args) name = get_name(args)
@ -206,10 +206,10 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def add_town(self, ctx, x_pos: int, z_pos: int, *args): async def add_town(self, ctx, x_pos: int, z_pos: int, *args):
''' """
{}add_town <X Coordinate> <Z Coordinate> <Shop Name> {}add_town <X Coordinate> <Z Coordinate> <Shop Name>
The Town Name parameter is optional if this is your first town The Town Name parameter is optional if this is your first town
''' """
name = get_name(args) name = get_name(args)
@ -237,10 +237,10 @@ 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 if you only have one location The Name parameter is optional if you only have one location
''' """
name = get_name(args) name = get_name(args)
@ -269,9 +269,9 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def delete(self, ctx, *args): async def delete(self, ctx, *args):
''' """
{}delete <Location Name> {}delete <Location Name>
''' """
name = get_name(args) name = get_name(args)
try: try:
@ -292,10 +292,10 @@ 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> <Shop Name> {}delete_item <Item Name> <Shop Name>
The Shop Name parameter is optional if you only have one location. The Shop Name parameter is optional if you only have one location.
''' """
shop_name = get_name(args) shop_name = get_name(args)
try: try:
@ -323,10 +323,10 @@ class GeoffreyCommands:
@commands.command(pass_conext=True) @commands.command(pass_conext=True)
async def edit_name(self, ctx, new_name: str, old_name: str): async def edit_name(self, ctx, new_name: str, old_name: str):
''' """
{}edit_name <New Name> <Old Name> {}edit_name <New Name> <Old Name>
If the name has spaces in it, it must be wrapped in quotes. eg "Cool Shop 123" If the name has spaces in it, it must be wrapped in quotes. eg "Cool Shop 123"
''' """
try: try:
location = run_command(self.base_url, self.api_token, "POST", "edit_name", loc_name=old_name, location = run_command(self.base_url, self.api_token, "POST", "edit_name", loc_name=old_name,
@ -349,9 +349,9 @@ 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 Coordinate> <New Z Coordinate> <Location Name> {}edit_post <New X Coordinate> <New Z Coordinate> <Location Name>
''' """
loc_name = get_name(args) loc_name = get_name(args)
try: try:
@ -372,9 +372,9 @@ class GeoffreyCommands:
@commands.command(pass_conext=True) @commands.command(pass_conext=True)
async def edit_tunnel(self, ctx, new_tunnel_direction: str, new_tunnel_number: int, *args): async def edit_tunnel(self, ctx, new_tunnel_direction: str, new_tunnel_number: int, *args):
''' """
{}edit_tunnel <New Tunnel Direction> <New Tunnel Number> <Location Name> {}edit_tunnel <New Tunnel Direction> <New Tunnel Number> <Location Name>
''' """
loc_name = get_name(args) loc_name = get_name(args)
try: try:
@ -401,10 +401,10 @@ 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 Coordinate> <Z Coordinate> <Radius> {}find_around <X Coordinate> <Z Coordinate> <Radius>
The Radius parameter is optional and defaults to 200 blocks The Radius parameter is optional and defaults to 200 blocks
''' """
try: try:
if len(args) > 0: if len(args) > 0:
@ -434,9 +434,9 @@ class GeoffreyCommands:
@commands.command(pass_context=True, aliases=["find"]) @commands.command(pass_context=True, aliases=["find"])
async def find_location(self, ctx, *args): async def find_location(self, ctx, *args):
''' """
{}find_location <Location or Player Name> {}find_location <Location or Player Name>
''' """
search = get_name(args) search = get_name(args)
try: try:
@ -476,9 +476,9 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def info(self, ctx, *args): async def info(self, ctx, *args):
''' """
{}info <Location Name> {}info <Location Name>
''' """
location_name = get_name(args) location_name = get_name(args)
try: try:
@ -509,9 +509,9 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def me(self, ctx): async def me(self, ctx):
''' """
{}me {}me
''' """
locations = run_command(self.base_url, self.api_token, "GET", "me", discord_uuid=ctx.message.author.id) locations = run_command(self.base_url, self.api_token, "GET", "me", discord_uuid=ctx.message.author.id)
@ -524,9 +524,9 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def register(self, ctx): async def register(self, ctx):
''' """
{}register {}register
''' """
try: try:
run_command(self.base_url, self.api_token, "POST", "register", player_name=ctx.message.author.display_name, run_command(self.base_url, self.api_token, "POST", "register", player_name=ctx.message.author.display_name,
discord_uuid=ctx.message.author.id) discord_uuid=ctx.message.author.id)
@ -545,10 +545,10 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def remove_resident(self, ctx, resident_name, *args): async def remove_resident(self, ctx, resident_name, *args):
''' """
{}remove_resident <Resident Name> <Town Name> {}remove_resident <Resident Name> <Town Name>
The Town Name is optional if you only have one town. The Town Name is optional if you only have one town.
''' """
town_name = get_name(args) town_name = get_name(args)
try: try:
@ -577,10 +577,10 @@ 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 Sorts by most recently added
''' """
item = get_name(args) item = get_name(args)
try: try:
@ -608,10 +608,10 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def selling_price(self, ctx, *args): async def selling_price(self, ctx, *args):
''' """
{}selling <Item Name> {}selling <Item Name>
Sorts by most recently added Sorts by most recently added
''' """
item = get_name(args) item = get_name(args)
try: try:
@ -639,10 +639,10 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
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 if you only have one shop. The Shop Name is optional if you only have one shop.
''' """
shop_name = get_name(args) shop_name = get_name(args)
@ -670,9 +670,9 @@ class GeoffreyCommands:
@commands.command(pass_context=True) @commands.command(pass_context=True)
async def tunnel(self, ctx, *args): async def tunnel(self, ctx, *args):
''' """
{}tunnel <Player Name> {}tunnel <Player Name>
''' """
player_name = get_name(args) player_name = get_name(args)
try: try:

2
README 100644
View File

@ -0,0 +1,2 @@
Geoffrey Discord Bot
A Discord Bot for The Geoffrey Database

View File

@ -4,6 +4,6 @@ setup(
name='Geoffrey-Discordbot', name='Geoffrey-Discordbot',
version=__import__('GeoffreyBot').__version__, version=__import__('GeoffreyBot').__version__,
packages=['GeoffreyBot, GeoffreyBot.cogs'], packages=['GeoffreyBot, GeoffreyBot.cogs'],
install_requires=['git+https://github.com/Rapptz/discord.py@rewrite', 'requests'], install_requires=['discord.py', 'requests'],
long_description=open('README').read(), long_description=open('README').read(),
) )