Improved error handling
parent
ee3bfb0fee
commit
14508a6466
37
MCInfoBot.py
37
MCInfoBot.py
|
@ -71,23 +71,23 @@ class Location(SQL_Base):
|
||||||
self.z = int(args[3])
|
self.z = int(args[3])
|
||||||
self.owner = owner
|
self.owner = owner
|
||||||
|
|
||||||
if (len(args) >= 5):
|
if len(args) >= 5:
|
||||||
self.tunnelNumber = int(args[5])
|
self.tunnelNumber = int(args[5])
|
||||||
self.direction = strToTunnelDirection(args[4])
|
self.direction = strToTunnelDirection(args[4])
|
||||||
except (ValueError, IndexError):
|
except (ValueError, IndexError):
|
||||||
raise LocationInitError
|
raise LocationInitError
|
||||||
|
|
||||||
def posToStr(self):
|
def pos_to_str(self):
|
||||||
return '(x= {}, y= {}, z= {})'.format(self.x, self.y, self.z)
|
return '(x= {}, y= {}, z= {})'.format(self.x, self.y, self.z)
|
||||||
|
|
||||||
def netherTunnelAddrToStr(self):
|
def nether_tunnel_addr_to_str(self):
|
||||||
return '{} {}'.format(self.direction.value.title(), self.tunnelNumber)
|
return '{} {}'.format(self.direction.value.title(), self.tunnelNumber)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
if (self.direction is not None):
|
if self.direction is not None:
|
||||||
return "Name: {}, Position: {}, Tunnel: {}".format(self.name, self.posToStr(), self.netherTunnelAddrToStr())
|
return "Name: {}, Position: {}, Tunnel: {}".format(self.name, self.pos_to_str(), self.nether_tunnel_addr_to_str())
|
||||||
else:
|
else:
|
||||||
return "Name: {}, Position: {}".format(self.name, self.posToStr())
|
return "Name: {}, Position: {}".format(self.name, self.pos_to_str())
|
||||||
|
|
||||||
|
|
||||||
SQL_Base.metadata.create_all(engine)
|
SQL_Base.metadata.create_all(engine)
|
||||||
|
@ -96,15 +96,15 @@ Session = sessionmaker(bind=engine)
|
||||||
session = Session()
|
session = Session()
|
||||||
|
|
||||||
|
|
||||||
def strToTunnelDirection(str):
|
def strToTunnelDirection(arg):
|
||||||
str = str.lower()
|
arg = arg.lower()
|
||||||
if (str == TunnelDirection.North.value):
|
if (arg == TunnelDirection.North.value):
|
||||||
return TunnelDirection.North
|
return TunnelDirection.North
|
||||||
elif (str == TunnelDirection.East.value):
|
elif (arg == TunnelDirection.East.value):
|
||||||
return TunnelDirection.East
|
return TunnelDirection.East
|
||||||
elif (str == TunnelDirection.South.value):
|
elif (arg == TunnelDirection.South.value):
|
||||||
return TunnelDirection.South
|
return TunnelDirection.South
|
||||||
elif (str == TunnelDirection.West.value):
|
elif (arg == TunnelDirection.West.value):
|
||||||
return TunnelDirection.West
|
return TunnelDirection.West
|
||||||
else:
|
else:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
|
@ -122,7 +122,13 @@ async def on_ready():
|
||||||
|
|
||||||
@bot.event
|
@bot.event
|
||||||
async def on_command_error(error, ctx):
|
async def on_command_error(error, ctx):
|
||||||
error_str = 'Error in command {}, please use ?help {}'.format(ctx.invoked_with, ctx.invoked_with)
|
if isinstance(error, commands.CommandNotFound):
|
||||||
|
error_str = 'Command not found, please use ?help to see all the commands this bot can do.'
|
||||||
|
elif isinstance(error, commands.UserInputError):
|
||||||
|
error_str = 'Invalid syntax for {}, please read ?help {}.'.format(ctx.invoked_with, ctx.invoked_with)
|
||||||
|
else:
|
||||||
|
error_str = 'Error using the {} command, yell at the admins to fix it'.format(ctx.invoked_with)
|
||||||
|
|
||||||
await bot.send_message(ctx.message.channel, error_str)
|
await bot.send_message(ctx.message.channel, error_str)
|
||||||
|
|
||||||
|
|
||||||
|
@ -147,7 +153,7 @@ async def addbase(ctx, *args, ):
|
||||||
session.add(base)
|
session.add(base)
|
||||||
|
|
||||||
await bot.say('{}, your base named {} located at {} has been added'
|
await bot.say('{}, your base named {} located at {} has been added'
|
||||||
' to the database.'.format(ctx.message.author.mention, base.name, base.posToStr()))
|
' to the database.'.format(ctx.message.author.mention, base.name, base.pos_to_str()))
|
||||||
|
|
||||||
|
|
||||||
@bot.command(pass_context=True)
|
@bot.command(pass_context=True)
|
||||||
|
@ -165,9 +171,8 @@ async def findbase(ctx, *args):
|
||||||
else:
|
else:
|
||||||
await bot.say('{}, {} is not in the database'.format(ctx.message.author.mention, args[0]))
|
await bot.say('{}, {} is not in the database'.format(ctx.message.author.mention, args[0]))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Bot Startup ******************************************************************
|
# Bot Startup ******************************************************************
|
||||||
|
|
||||||
try:
|
try:
|
||||||
file = open('token.dat', 'r')
|
file = open('token.dat', 'r')
|
||||||
TOKEN = file.read()
|
TOKEN = file.read()
|
||||||
|
|
Loading…
Reference in New Issue