如何让不和谐机器人在命令上创建频道

Posted

技术标签:

【中文标题】如何让不和谐机器人在命令上创建频道【英文标题】:How can I make a discord bot creates a channel on a command 【发布时间】:2021-08-13 18:46:13 【问题描述】:

你好

我目前正在开发一个名为“文件存储”的不和谐服务器(名称可能会更改) 我想知道是否有一种方法:当用户键入某个命令时,例如“fs create” 机器人会创建一个类似“channelid-storing”的频道,该频道仅对使用该命令的用户可见?

频道名称格式将显示频道 ID,然后显示“-storing”

let client = new Discord.Client()

client.on("message", message => 
  if(message.content === "ping") 
    message.channel.send("pong")

  
  client.on(message, async (message) => 
    if(message === `>fs create`)
   const channel = await message.guild.channels.create("channel", 
            permissionOverwrites: [
                
                    id: message.guild.roles.everyone,
                    deny: ["VIEW_CHANNEL"],
                ,
                
                    id: message.member,
                     allow: [
                        "VIEW_CHANNEL",
                        "SEND_MESSAGES",
                        "EMBED_LINKS",
                        "ATTACH_FILES",
                        "READ_MESSAGE_HISTORY",
                    ],
                ,
                
                    id: message.guild.me, 
                    allow: [
                        "VIEW_CHANNEL",
                        "SEND_MESSAGES",
                        "EMBED_LINKS",
                        "ATTACH_FILES",
                        "READ_MESSAGE_HISTORY",
                    ],
                ,
            ],
        );
    channel.editName(`$channel.id-store`)


)
    
)

client.login(process.env.DISCORD_TOKEN);```

【问题讨论】:

【参考方案1】:

您只需在创建频道时提供用户权限

if(commandname === `> fs create`)
   const channel = await message.guild.channels.create("channelname", 
            permissionOverwrites: [
                
                    id: message.guild.roles.everyone,
                    deny: ["VIEW_CHANNEL"],
                ,
                
                    id: message.member,
                     allow: [
                        "VIEW_CHANNEL",
                        "SEND_MESSAGES",
                        "EMBED_LINKS",
                        "ATTACH_FILES",
                        "READ_MESSAGE_HISTORY",
                    ],
                ,
                
                    id: message.guild.me, 
                    allow: [
                        "VIEW_CHANNEL",
                        "SEND_MESSAGES",
                        "EMBED_LINKS",
                        "ATTACH_FILES",
                        "READ_MESSAGE_HISTORY",
                    ],
                ,
            ],
        );
    channel.editName(`$channel.id-store`)


顺便说一句,你必须添加你的东西,这样它才能正常工作,上面的例子展示了频道创建的工作原理。

【讨论】:

为迈泽伙伴投票 @Meister9667 但是我如何让频道自动命名为 channelid-storing,其中 channelid 是实际频道的 id 唯一的办法就是等待它,通过const channel = await channelcreate....然后用channel.editName($channel.id-storing)编辑名字 你能告诉我如何在你的代码中格式化它吗?对不起,我是初学者,我真的只能做简单的回复命令之类的事情,没有 tut @Meister9667 @Meister9667 它说“解析错误:不能在异步函数之外使用关键字'await'

以上是关于如何让不和谐机器人在命令上创建频道的主要内容,如果未能解决你的问题,请参考以下文章

试图让不和谐机器人对某个频道内的所有消息做出反应

如何让不和谐机器人回答我的命令

我怎样才能让不和谐的机器人说出用户说的不带前缀的东西

如何让不和谐机器人为其加入的每台服务器创建邀请?

如何让不和谐的机器人踢出 Java 中的成员?

如何创建添加黑名单用户或频道的不和谐机器人?