python - 如何从不带参数 discord.py 的命令中获取服务器对象
问题描述
我正在尝试制作一个机器人,当我!info
在 Python 上使用 discord.py 不向它传递任何参数时,它将在控制台中显示服务器信息。我发现的所有内容都涉及传递参数。
这是我迄今为止尝试过的:
@bot.command()
@asyncio.coroutine
def info(ctx):
server = ctx.message.author.server
server_name = server.name
server_id = server.id
server_owner = server.owner.name
print("server name: {}"
"server id: {}"
"server owner: {}"
.format(server_name, server_id, server_owner))
运行时,它会在控制台中显示:
Ignoring exception in command move
Traceback (most recent call last):
File "D:\PycharmProjects\Movey\venv\lib\site-packages\discord\ext\commands\bot.py", line 846, in process_commands
yield from command.invoke(ctx)
File "D:\PycharmProjects\Movey\venv\lib\site-packages\discord\ext\commands\core.py", line 367, in invoke
yield from self.prepare(ctx)
File "D:\PycharmProjects\Movey\venv\lib\site-packages\discord\ext\commands\core.py", line 345, in prepare
yield from self._parse_arguments(ctx)
File "D:\PycharmProjects\Movey\venv\lib\site-packages\discord\ext\commands\core.py", line 304, in _parse_arguments
transformed = yield from self.transform(ctx, param)
File "D:\PycharmProjects\Movey\venv\lib\site-packages\discord\ext\commands\core.py", line 212, in transform
raise MissingRequiredArgument('{0.name} is a required argument that is missing.'.format(param))
discord.ext.commands.errors.MissingRequiredArgument: ctx is a required argument that is missing.
解决方案
你需要传递pass_context=True
给@bot.command
@bot.command(pass_context=True)
@asyncio.coroutine
def info(ctx):
server = ctx.message.author.server
server_name = server.name
server_id = server.id
server_owner = server.owner.name
print("server name: {}"
"server id: {}"
"server owner: {}"
.format(server_name, server_id, server_owner))
推荐阅读
- rust - 为什么我的 rust 函数会出现“返回引用当前函数拥有的数据的值”错误?
- jdbc - 与 Domino v12 的 JDBC 连接
- javascript - 如何比较具有相同对象属性的两个值?
- postgresql - 将表名作为参数传递给 Postgresql
- google-chrome-devtools - 如何从另一台机器访问 chromebook 上的 chrome 开发工具
- javascript - 状态改变回调函数
- android - W/DownloadManager:中止下载请求 17:无法创建目标文件 /storage/emulated/0/Ringtone/Fav_Ringtone.mp3
- python - 如何在 C++ 中读取羽毛文件时启用内存映射
- amazon-web-services - Amazon Appstream 2.0 桌面应用程序的性能测试
- sql - 远程服务器上的 SELECT @@ServerName 返回本地 @@ServerName