这里有一些考试代码:
for server in client.servers:
for channel in server.channels:
print(channel)
输出例如:
Text Channels
general
commands
Text Channels
main-channel
admin-channel
Text Channels
first-channel
我想发出命令!br会将消息发送到每个服务器的第一个频道。但我不能,因为文本频道行也算作频道
Here's little image what I mean by Text Channels
我总是得到这样的错误:
Cannot send messages in a non-text channel
所以我想在这些频道出现时将其跳过,或者从频道列表中完全删除它们。
以下是命令的完整代码:
elif message.content.startswith('!br'):
for server in client.servers:
for channel in server.channels:
if channel.permissions_for(server.me).send_messages:
await client.send_message(channel, str(message.content[4:] )
break
感谢您的回答。
答案 0 :(得分:0)
如果您想检查频道是否为文字频道,请使用channel.type
。文档here。
您只需要检查该频道是否应为text
类型。
elif message.content.startswith('!br'):
for server in client.servers:
for channel in server.channels:
if (channel.permissions_for(server.me).send_messages) and (channel.type == "text"):
await client.send_message(channel, str(message.content[4:] )
break
channel.type == discord.ChannelType.text
将检查频道是否为文字频道,以便您发送信息。