Discord создает бота канала, который требует подтверждения - PullRequest
0 голосов
/ 09 мая 2020

Я хочу, чтобы следующая команда !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);

1 Ответ

0 голосов
/ 09 мая 2020

на этот вопрос уже есть ответ. вот ссылка: Как создать текстовый канал Надеюсь, это достаточно хороший ответ на вашу проблему.

...