【问题标题】:How to check if channel name contains a certain word in discord.py?如何检查频道名称是否包含 discord.py 中的某个单词?
【发布时间】:2021-03-29 04:05:15
【问题描述】:

我正在制作一个不和谐的机器人,我想向普通聊天频道发送消息。我通过if(channel.name == 'general'): 找到了一种方法来做到这一点,但问题是如果一般聊天是general-chat 或∙ General 它不会发送。所以我需要它类似于if(channel.name.contains == 'general'):,但我不知道该怎么做。

谢谢。

【问题讨论】:

  • 通过ID发送!这会解决你的问题。在不和谐中将自己设置为开发人员模式并右键单击频道以获取他们的 ID。我认为最好的方式。你不应该通过名字来匹配。
  • if(lower(channel.name).startswith('general')
  • @blanknamefornow ye 如果它只是我的服务器,那将工作。但它是一个广播命令,它将在机器人所在的每个服务器中发送特定消息。抱歉没有说清楚
  • 是的,没关系,然后您可以搜索您的机器人所属的所有公会,然后将消息发送到它有权写入的任何频道。根本不需要名称。

标签: python discord discord.py


【解决方案1】:

Python 字符串具有__contains__ dunder 方法,由in 关键字表示:

>>> name = "general-chat"
>>> "general" in name
True
>>> name.__contains__("general")
True

您也可以使用string.lower() 方法来区分大小写(虽然大写/大写的频道名称只能在语音频道中,所以这一步没有意义)

>>> name = "General"
>>> "general" in name.lower()
True

您可以在命令中使用相同的原则:

if "general" in channel.name.lower():
   ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 2020-07-06
    • 1970-01-01
    • 2013-10-21
    相关资源
    最近更新 更多