def invoke(self, ctx):
locals_ = locals().copy()
try:
load_function(self.code, dict(globals(), **ctx.bot.commands), locals_)
except SyntaxError as err:
traceback.print_exception(type(err), err, err.__traceback__)
return 'SyntaxError: %s' % err
try:
ret = await locals_['evaluation'](ctx)
if asyncio.iscoroutine(ret):
ret = await ret
elif ret in ctx.bot.commands.values():
ret = await ret() if asyncio.iscoroutinefunction(ret) else ret()
except Exception as err:
traceback.print_exception(type(err), err, err.__traceback__)
return '%s: %s' % (type(err).__name__, err)
else:
return str(ret)
评论列表
文章目录