Discord PY - 我需要命令来定义机器人将发送 NSFW 的频道 ID

Discord PY - i need command for define channel ID where bot will send NSFW

你好,我需要像 $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*')

好的,我会尽力回答这个问题

假设你把这个机器人放在多个服务器上,你可以将图像或消息发送到 NSFW 频道只有你告诉它。我现在可以想到几种方法,可能还有更多,但现在有点忙。

  1. 作者发送消息的地方

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

    if ctx.message.channel.is_nsfw():

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

  2. 自定义频道

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

    for channel in bot.get_all_channels()

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

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

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

    顺便说一下,频道的名称也可以随便起。

另外想说的是,你说不想让别人编辑代码,我不知道你是什么意思?您是否打算直接与某人共享文件,将其放在服务器上?只是有点不明白你为什么担心它 lmao。

嗯,希望我在某种程度上有所帮助,这是我对 Whosebug 的第一个回答(嘿伙计们 :D)。