Я создаю бота на discord, я хотел бы создать новый канал с помощью команды, в которой отправляется встраивание с различными функциями. Я попробовал несколько методов, я могу отправить сообщение по умолчанию во вновь созданном канале, но я не могу заставить его вызвать команду, которая отправляет мне встраивание
это встраивание, которое я хочу отправить в канал, который я создаю с помощью команды (setup.js)
module.exports = < name: ‘setup’, description: «ruoli con emote», async execute(message, args, Discord, client)< const channel = ‘831573587579371580’; const playem = ‘⏯️’; const stopem = ‘⏹️’; const nextem = ‘⏭️’; //const shuffleem = »; const loopem = »; const volume15 = »; const volume30 = »; const mute= » let embed = new Discord.MessageEmbed() .setColor(‘#e42643’) .setTitle(‘Barman’) .setImage(‘https://images4.alphacoders.com/943/943845.jpg’) .setFooter(‘il prefisso del bot è: *’); console.log(‘message: ‘ message ) console.log(‘args: ‘ args) console.log(‘Discord: ‘ Discord) console.log(‘client: ‘ client) let messageEmbed = await message.channel.send(embed); messageEmbed.react(playem); messageEmbed.react(stopem); messageEmbed.react(nextem); //messageEmbed.react(shuffleem); messageEmbed.react(loopem); messageEmbed.react(volume15); messageEmbed.react(volume30); messageEmbed.react(mute); client.on(‘messageReactionAdd’, async (reaction, user) => < if (reaction.message.partial) await reaction.message.fetch(); if (reaction.partial) await reaction.fetch(); if (user.bot) return; if (!reaction.message.guild) return; if (reaction.message.channel.id == channel)< switch(reaction.emoji.name)< case playem: console.log(‘Pausa / resume’); client.commands.get(‘psres’).execute(client, message, args); break; case stopem: console.log(‘stop’); client.commands.get(‘stop’).execute(client, message, args); break; case nextem: console.log(‘Skip’); client.commands.get(‘skip’).execute(client, message, args); break; case loopem: console.log(‘loop’); client.commands.get(‘loop’).execute(client, message, args) break; case volume15: console.log(‘volume15’); client.commands.get(‘volume15’).execute(client, message, args) break; case volume30: console.log(‘volume30’); client.commands.get(‘volume30’).execute(client, message, args) break; case mute: console.log(‘muto’); client.commands.get(‘mute’).execute(client, message, args) break; >> >); > >
это моя функция канала создания
[NEW] Embed Builder GUIDE || Discord.JS v14
if(command === ‘setup’)< var botname= ‘DJ Musica’ // setup messaggio con reazioni message.guild.channels.create(botname,< //Create a channel type: ‘text’, //Make sure the channel is a text channel permissionOverwrites: [< //Set permission overwrites id: message.guild.id, allow: [‘VIEW_CHANNEL’], >] >).then(channel => channel.send(‘eccoci ‘ message.channel.id))
Ответ №1:
В discord.js руководство предоставляет хороший метод динамической обработки команд.
Чтобы настроить его для выполнения модуля, я последовал discord.js руководству и создал свой собственный динамический обработчик команд. С этим я мог бы легко вызвать команду и просто выполнить ее.
How to make a Discord Bot for Beginners (Discord.js v14)
const fs = require(«fs»); //used to read files const Discord = require(‘discord.js’); const client = new Discord.Client(); client.commands = new Discord.Collection(); //returns array of files in directory that read w/ end of «.js» const commandFiles = fs.readdirSync(‘./commands’).filter(file => file.endsWith(‘.js’)); for (const file of commandFiles) < const command = require(`./commands/$`); client.commands.set(command.name, command); console.log(command); > client.on(‘message’, message => < const prefix = ‘!’; if (message.author.bot) return; const args = message.content.slice(prefix.length).trim().split(/ /); const command = args.shift().toLowerCase(); if (!client.commands.has(command)) return; if (command === ‘setup’) < var botname = ‘DJ Musica’ // setup messaggio con reazioni message.guild.channels.create(botname, < //Create a channel type: ‘text’, //Make sure the channel is a text channel permissionOverwrites: [< //Set permission overwrites id: message.guild.id, allow: [‘VIEW_CHANNEL’], >] >).then(channel => < //main part I modified channel.send(‘eccoci ‘ message.channel.id); client.commands.get(command).execute(message, args, Discord, new Discord.Client()); >) > >);
Ответ №2:
Если я не ошибаюсь, код для отправки сообщения в канале, созданном ботом, таков
message.guild.channels.create(‘CHANNEL NAME HERE’, < reason: ‘Needed a cool new channel’ >) .then(channel => < channel.send(‘MESSAGE HERE’) >)
1. это аналогичный способ отправки сообщений в канале, однако моя проблема в том, что я не хочу отправлять сообщение, но я хочу запустить определенную команду, в данном случае setup.js
Вам также может понравиться
Справка Notepad : Добавление атрибута после узла
17 января, 2022
Как программы взаимодействуют друг с другом?
2 апреля, 2023
Twig не может использовать ключевое слово OR
8 мая, 2023
- О нас
- Онлайн игры
- Конвертеры
- Base64 конвертер онлайн
- Оформление кода JavaScript CSS HTML Онлайн
- URL Encoder (кодировщик) / Decoder (декодировщик) онлайн
- Конвертер регистров
- Рассчитать количество дней между датами
- Генератор ключей и паролей
- Генератор QR кодов
- Преобразование времени
- Преобразование микросекунд в секунды
- Преобразование микросекунд в миллисекунды
- Преобразование миллисекунд в микросекунды
- Преобразование миллисекунд в секунды
- Преобразование миллисекунд в минуты
- Преобразование миллисекунд в часы
- Преобразователь миллисекунд в дату
- Преобразование секунд в миллисекунды
- Преобразование секунд в минуты
- Преобразование секунд в часы
- Преобразование секунд в дни
- Преобразование минут во время
- Преобразование минут в миллисекунды
- Преобразование минут в секунды
- Преобразование минут в часы
- Преобразование часов в миллисекунды
- Преобразование часов в секунды
- Преобразование часов в минуты
- Преобразование часов в дни
- Преобразование дней в часы
- Преобразование из часы в недели
- Конвертация из недели в часы
- Через несколько часов калькулятор
- Преобразование времени AM/PM в 24-часовое
- Преобразование Военного Времени
- Время до десятичного калькулятора
- Безопасность
- Финансы
- Энциклопедия
Источник: programbox.ru
Discord.js: создание каналов в категориях
Я хочу создать бота, который проектирует сервер, поэтому его задача — создавать каналы и роли, чтобы владельцу не приходилось тратить время на настройку сервера. Это мой код:
if (message.content === ‘tchannel’) < message.guild.channels.create(‘Important’, < type: ‘category’, permissionOverwrites: [ < id: message.guild.id, allow: [‘VIEW_CHANNEL’], >] >) message.guild.channels.create(‘Rules’, < type: ‘text’, permissionOverwrites: [ < id: message.guild.id, allow: [‘VIEW_CHANNEL’], >] >) message.channel.send(«Channel Created!») >
Что мне интересно, есть ли способ подключить текстовый канал к категории, а не сделать его отдельно?
user13746070 09 июл ’20 в 16:07 2020-07-09 16:07
2020-07-09 16:07
1 ответ
Параметр не нужен cat иметь cat.parentID . Просто положи cat и все должно быть хорошо.
message.guild.channels.create(‘Important ‘, < type: ‘category’, position: 1, permissionOverwrites: [ < id: message.guild.id, allow: [‘VIEW_CHANNEL’], >] >).then(cat => < message.guild.channels.create(‘Rules’, < type: ‘text’, parent: cat, permissionOverwrites: [ < id: message.guild.id, allow: [‘VIEW_CHANNEL’], >] >)
user14023978 22 ноя ’20 в 15:50 2020-11-22 15:50
2020-11-22 15:50
Я думаю, вы имеете в виду, что когда вы выполняете команду для создания канала, он должен создать его в категории текущего канала.
Если да, то вам понадобится это:
const category = client.channels.cache.get(message.channel.parentID)
user14529032 20 ноя ’20 в 01:30 2020-11-20 01:30
2020-11-20 01:30
Просто добавьте метод.then и получите от него parentID. Либо вы можете назначить категорию переменной и назначить ее после, если вы будете использовать ее кому-либо еще.
message.guild.channels.create(‘Important’, < type: ‘category’, permissionOverwrites: [ < id: message.guild.id, allow: [‘VIEW_CHANNEL’], >] >).then(cat => < message.guild.channels.create(‘Rules’, < type: ‘text’, parent: cat.parentID, permissionOverwrites: [ < id: message.guild.id, allow: [‘VIEW_CHANNEL’], >] >) >)
Источник: stackru.com
Как создать текстовый канал
Недавно я создавал discord-бота, и хотел сделать канал, когда игроки вводят команду >report [Tag] [Reason] .
Вот два метода, которые я пробовал (один из них из предыдущего вопроса на StackOverflow, который не сработал для меня):
function makeChannel(message)
Затем я попробовал свою собственную версию, чтобы проверить, смогу ли я это сделать:
var name = message.author.username; let reportchannel = server.createChannel(name, «text»); message.createChannel(reportchannel);
Но ни то, ни другое не работает, и я умираю от желания получить помощь!
Спасибо за помощь и предложения, очень признателен!
1 2019-01-08T20:25:03+00:00 1
Federico Grandi
Редактировал вопрос 9-го января 2019 в 3:12
Решение / Ответ
8-го января 2019 в 11:02
2019-01-08T23:02:03+00:00
Дополнительно
Как показано здесь, правильный способ создания текстового канала (и поскольку вы используете переменную message, я буду считать, что вы находитесь в событии message)
let name = message.author.username; message.guild.createChannel(name, ‘text’) .then(console.log) .catch(console.error);
Также, еще одно мое предложение — использовать let вместо var , потому что эта причина
edit: Just noticed the main reason this is’t working for you is because you’re using message.createChannel() and note message.guild.createChannel() .
Источник: kzen.dev