使 Discord.py Bot 仅在特定渠道中工作
Posted
技术标签:
【中文标题】使 Discord.py Bot 仅在特定渠道中工作【英文标题】:Make Discord.py Bot Only Work In Specific Channels 【发布时间】:2021-12-15 04:06:24 【问题描述】:我正在使用 discord.py 为我的朋友制作一个机器人 我想让它只在包含单词 ticket 的频道中工作,由另一个名为 Ticket Toll 的机器人制作p>
我该怎么做?
【问题讨论】:
【参考方案1】:Relevant docs on text channels
不幸的是,Discord 的 API 没有跟踪谁创建了频道(这就是为什么没有 channel.author
这样的东西)。
一种解决方案是让 Ticket Toll 在一个类别中创建频道,并且只授予您的机器人查看该类别的权限。
但是,如果频道名称中没有 "ticket",您可以通过检查 channel.name
轻松让机器人忽略消息。以下是 on_message
事件的示例:
@client.event
async def on_message(message):
if 'ticket' not in message.channel.name: return
# stuff to execute if message was sent in a channel with ticket in its name
或者作为命令:
@client.command()
async def something(ctx, arg):
if "ticket" not in ctx.message.channel.name: return
# stuff to execute if the command was sent in a channel with ticket in its name
【讨论】:
【参考方案2】:仅授予机器人访问您希望其工作的读取频道的权限。
【讨论】:
以上是关于使 Discord.py Bot 仅在特定渠道中工作的主要内容,如果未能解决你的问题,请参考以下文章
Discord Bot 响应短语(Discord.py 重写)
如何使用 discord.py 让 discord bot ping 用户 [关闭]
如何让 discord.py bot 发送到它被调用的服务器?