Discord制作需要确认的频道机器人

Posted

技术标签:

【中文标题】Discord制作需要确认的频道机器人【英文标题】:Discord make channel bot that requires confirmation 【发布时间】:2020-08-25 04:42:22 【问题描述】:

我希望下面的命令!addclass nameofclass 向管理员频道发送一条消息,询问我们是否要将该类添加为频道,监听!yes!no,如果!yes 创建该频道.我不确定应该如何正确使用guild.channels.create。我想我必须定义channels,但我不知道具体定义它是什么。

guild.channels.create(name: newclassname)
               ^    
TypeError: Cannot read property 'create' of undefined
const Discord = require('discord.js');
const Client = new Discord.Client();

const token = 'bottoken';

const guild = 'guildToken';

const PREFIX = '!';

Client.on('ready', () => 
    console.log('This Client is online!');
)

const adminchannel = Client.channels.cache.get('adminchanneltoken')

Client.on('message', message => 

    let args = message.content.substring(PREFIX.length).split(" ");

    switch (args[0]) 
        case 'addclass':
            const newclassname = args[1];
            if (message.channel.id != 'addclasschanneltoken') 

                Client.channels.cache.get('adminchanneltoken').send('someone wants to add "' + newclassname + '" as a class name')
                Client.channels.cache.get('adminchanneltoken').send('do you want to add it? (yes or no)')

                if (message.channel.id != 'adminchanneltoken') 

                    Client.on('message', message => 

                        let argsrespond = message.content.substring(PREFIX.length).split(" ");

                        switch (argsrespond[0]) 
                            case 'yes':
                                Client.guilds.cache.get('guildToken');
                                Client.channels.cache.get('guildToken');
                                guild.channels.create(
                                        name: newclassname
                                    )
                                    .then(console.log)
                                    .catch(console.error);
                                break;
                            case 'no':
                                break;
                        
                    )
                 else 
             else 
    
)

Client.login(token);

【问题讨论】:

你是如何获得那些所谓的公会和频道令牌的? 它们是在启用开发者选项后从 discord 应用中复制而来的 我将实际的令牌编号更改为这些词,因此我没有发布私人信息。真实代码使用来自 discord 应用程序的令牌编号。 它们不被称为令牌,它们被称为 ID,隐藏 ID 并不重要,因为除非有人在具有该 ID 的公会/频道中(使用机器人或只是他们自己的用户) ,他们找不到 ID 的任何用处 你使用的是什么版本的 discord.js? 【参考方案1】:

这个问题已经有了答案。链接在这里: How to create a text channel 我希望它足以解决您的问题。

【讨论】:

@noam Cohen 除非您有实际答案,而不仅仅是重定向到另一个答案,不要发布答案,只需使用 cmets。 @Syntle 我不行,我的声望不够

以上是关于Discord制作需要确认的频道机器人的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 机器人无法离开语音频道

Discord.JS 如何等待会员反应

如何使 discord.js 机器人在另一个频道中重复给它的消息?

如何让我的 discord.py 机器人在语音频道中播放 mp3?

Discord bot如何创建私人文本频道

是否有可能在特定频道中发布 python discord bot