From 38aaa80fe543a9ba12ad900e10538e055e2326e2 Mon Sep 17 00:00:00 2001 From: Joey Hines Date: Mon, 21 May 2018 21:41:15 -0500 Subject: [PATCH] findbase lists all bases of a player --- MCInfoBot.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/MCInfoBot.py b/MCInfoBot.py index c8bfe7c..0f169a4 100644 --- a/MCInfoBot.py +++ b/MCInfoBot.py @@ -11,13 +11,18 @@ SQL_Base = declarative_base() TOKEN = '' command_prefix = '?' description = '''Geoffrey is an inside joke none of you will understand, at -least he knows where your bases are.''' +least he knows where your bases are. + +Please respect Geoffrey, the bot is very sensitive. +''' bot = commands.Bot(command_prefix=command_prefix , description=description) class Player(SQL_Base): __tablename__ = 'Players' - in_game_name = Column(String, primary_key=True) + + id = Column(Integer, primary_key=True) + in_game_name = Column(String) def __init__(self,name) : self.in_game_name = name @@ -25,7 +30,8 @@ class Player(SQL_Base): class Location(SQL_Base): __tablename__ = 'Locations' - name = Column(String, primary_key=True) + id = Column(Integer, primary_key=True) + name = Column(String) x = Column(Integer) y = Column(Integer) z = Column(Integer) @@ -64,7 +70,9 @@ async def test(): @bot.command(pass_context=True) async def addbase(ctx, * args): - '''Add your base to the database.''' + '''Add your base to the database. + ?addbase [Base Name] [X Coordinate] [Y Coordinate] [Z Coordinate] + ''' if (len(args) == 4) : try: owner = Player(str(ctx.message.author.nick)) @@ -72,6 +80,7 @@ async def addbase(ctx, * args): session.add(owner) session.add(base) + await bot.say('{}, your base named {} located at {} has been added' ' to the database.'.format(ctx.message.author.mention, base.name, base.posToStr())) except ValueError: @@ -83,12 +92,17 @@ async def addbase(ctx, * args): @bot.command(pass_context=True) async def findbase(ctx, * args): - '''Allows you to find a base in the database.''' + '''Allows you to find a base in the database. + ?findbase [Player name] + ''' if (len(args) > 0) : - base = session.query(Location).filter_by(owner=args[0]).first() - if (base is not None) : - await bot.say('{}, {}\'s base named {} is located at {}.'.format(ctx.message.author.mention, base.owner ,base.name, base.posToStr())) + baseList = session.query(Location).filter_by(owner=args[0]).all() + + if (baseList is not None) : + await bot.say('{}, {} has {} base(s):'.format(ctx.message.author.mention,args[0], len(baseList))) + for base in baseList: + await bot.say('{} is located at {}'.format(base.name, base.posToStr())) else : await bot.say('{}, {} is not in the database'.format(ctx.message.author.mention, args[0])) else :