【问题标题】:Discord PY - i need command for define channel ID where bot will send NSFWDiscord PY - 我需要命令来定义机器人将发送 NSFW 的频道 ID
【发布时间】:2020-01-16 12:48:45
【问题描述】:

您好,我需要像 $ID=(CHANNEL_ID) 这样的命令来定义机器人将发送 NSFW 内容的频道 ID,我想要分享并且我不想让任何人编辑代码,可以这样做吗??

async def nsfw(ctx):
   check_role = get(ctx.message.guild.roles, name='Leader')
   if check_role in ctx.author.roles:
      channel = bot.get_channel(611574273588461580)
      randomlist = [' msg1 ', ' msg2 ']
      await channel.send(random.choice(randomlist))
      await ctx.send('*hint: bot sending nsfw commands only into nsfw channel! check #nsfw*')

【问题讨论】:

  • 机器人会成为多个服务器的成员吗?每个服务器都应该有自己的频道吗?您是否已经有任何持久存储,例如数据库或 json 文件?
  • 是的,机器人将在更多服务器上,不,我没有任何数据库或 .json 文件

标签: python command bots discord discord.py


【解决方案1】:

好的,我尽量回答这个问题

假设您将此机器人放在多台服务器上,则只有在您告诉它的情况下,您才能将图像或消息发送到 NSFW 频道。我现在能想到几种方法,可能还有更多,但现在有点忙。

  1. 作者发送消息的位置

    看到你首先在做一个 bot 命令,我们将使用 ctx 来处理这几个。你总是可以把它发送到作者发送消息的地方,但是看起来他们不会总是在 NSFW 频道中发送,你可以使用 if 语句来检查频道是否是 NSFW

    if ctx.message.channel.is_nsfw():

    这会检查用户是否将命令发送到 NSFW 频道,而不是一般聊天。

  2. 自定义频道

    你总是可以只放一个频道ID,我看到你已经这样做了。自从 您希望在多台服务器上使用此机器人,但是,最好找到 NSFW 通道,通过在一个实例中使用 discord.utils.get 或使用 for 循环,比如

    for channel in bot.get_all_channels()

    然后在找到 NSFW 频道后中断,然后将其发送到该频道 找到频道。这种方式确实有点乏味,但如果你愿意,你可以拥有 他们指定要将其发送到哪个频道。就像假设你有一个命令 设置通道调用的字符串,或者如果需要,设置通道的 ID 通道是并将其保存为 int。然后你可以使用 bot.get_channel(id) 哪个 就是你上面用的

    如果您希望他们指定名称而不是 id,那么您可以使用 discord.utils.get 函数。我不会详细介绍它,因为它是 已经在文档中已经很详细了,但是,在顶部思考 我的脑袋真快,它应该看起来像这样

    nsfw_channel = get(bot.get_all_channels(), name="whatever the name of it was")

    顺便说一句,频道的名称也可以是他们放的任何东西。

还想说我不知道​​你说你不想让其他人编辑代码是什么意思?您是否要直接与某人共享文件,将其放在服务器上?只是有点困惑你为什么担心它 lmao。

好吧,希望我能以某种方式提供帮助,这是我对 StackOverflow 的第一个回答(大家好:D)。

【讨论】:

    猜你喜欢
    • 2010-09-29
    • 2020-08-25
    • 2021-02-21
    • 2020-10-01
    • 2023-01-17
    • 2020-04-07
    • 2020-11-23
    • 2020-07-09
    • 2020-12-09
    相关资源
    最近更新 更多