#node.js #discord.js
Вопрос:
Во-первых, я новичок в node.js и discord.js.
В настоящее время я работаю над своим собственным ботом discord для развлечения, и мне было интересно, можно ли «хранить» данные команды косой черты. Вот пример того, что я имею в виду :
const response = new Discord.MessageEmbed()
.properties()
.properties()
etc...
module.exports = () {
const data = {
data: {
type: 4, // I don't know what type to use for embed message so please correct me if I'm wrong
data: {
content: response
}
}
}
}
Возможно ли «сохранить» данные встроенного сообщения rules.js
и использовать их main.js
таким образом :
const rules = require('rules.js') //the file would be in a "commands" folder but I'm keeping this simple
client.ws.on('INTERACTION_CREATE', async (interaction) => {
const command = interaction.data.name.toLowerCase()
if (command === 'rules') {
client.api.interactions(interaction.id, interaction.token).callback.post(data) // or post(rules.data) ??? again, I'm a beginner
}
})
Ответ №1:
Вы должны попытаться создать функцию вместо модуля сохранения и экспорта, потому что опасно использовать класс экземпляра как модуль, потому что это вызывает проблемы с памятью, поэтому напишите для этого фабрику
Ответ №2:
Вот кое-что, что вы можете попробовать:
//file name: slashCmd.js
const Discord = require('discord.js')
module.exports = async function(client, cmdObj) {
client.api.applications(client.user.id).commands.post(cmdObj)
}
Вы можете настроить функцию так, как вам хочется, но вы можете сделать это в своем index.js
const slashCmd = require('./slashCmd.js');
const client = new Discord.Client()
client.on('ready', () => {
slashCmd(client, {
name: 'cmdName',
description: 'cmdDesc'
})
})
Комментарии:
1. Я попробую это сделать. Спасибо!