Discord. js Команда запрета бота не отправляет сообщение. дискорд. js 11.6.2 - PullRequest
0 голосов
/ 24 марта 2020

Я - испанец sh, поэтому мой Engli sh может быть немного ржавым. У меня есть бот-диск с командой, которая забанит участника и отправит ему сообщение с заблокированным сервером, причины и т. Д. c. Но через несколько дней go я понял, что мой бот не отправил сообщение, но я не менял код со времени последней стабильной версии, где бот отправлял сообщение забаненному. Когда я удаляю строку, которая забанит пользователя (message.guild.ban(mentioned, {reason: reason});), бот отправляет сообщение без ошибок. У вас под кодом команды , и здесь у вас есть ошибка, которая отображает командную строку.

module.exports = {
name: 'condenar',
description: "Comando principal del verdugo que avisa al condenado. Se suele usar antes del v!ban",
execute(message, args){

  if (message.member.roles.find("name", "Monarca")){
    const Discord = require('discord.js');
    var embedColor = '#ff0000' 
    const moment = require("moment");
    var missingPermissionsEmbed = new Discord.RichEmbed() 
        .setColor(embedColor)
        .setAuthor(message.author.username, message.author.avatarURL)
        .setTitle('Permisos insuficientes!')
        .setDescription('Necesitas el permiso `MANAGE_MESSAGES` para usar este comando!')
        .setTimestamp();
    var missingArgsEmbed = new Discord.RichEmbed() 
        .setColor(embedColor)
        .setAuthor(message.author.username, message.author.avatarURL)
        .setTitle('Argumentos insuficientes!')
        .setDescription('Uso: v!condenar <@User> <Motivo>')
        .setTimestamp();
    if(!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send(missingPermissionsEmbed); 
    let mentioned = message.mentions.users.first();
    if (mentioned.id == 615199347398672392) return message.channel.send('No ahorcare a mi padre.');
    if(!mentioned) return message.channel.send(missingArgsEmbed); 
    let reason = args.slice(1).join(' ') 
    if(!reason) return message.channe.send(missingArgsEmbed); 
    var ahorcNumber = Math.random();
    var ahorcEmbed = new Discord.RichEmbed() 
        .setColor(embedColor)
        .setDescription(`ID del mensaje: ${message.id}`)
        .setTitle(`**Ahorcamiento ${message.guild.name}**`)
        .addField('Ahorcado por:', message.author.tag)
        .addField('Motivo:', reason)
        .addField('ID del ahorcamiento:', `**${ahorcNumber}** *necesitaras este numero para ver la info del ahorcamiento mas adelante.`)
        .attachFiles(['./img/ahorcado.gif'])
        .setFooter(`En: ${moment().format("dddd, MMMM Do YYYY, h:mm A", Date.now())}`)
        .setTimestamp();
    mentioned.send(ahorcEmbed); 
    message.channel.send(ahorcEmbed);
    message.guild.ban(mentioned, {reason: reason});
    var dir = `./files/${message.guild.id}`;
    var fs = require('fs');
    if (!fs.existsSync(dir)){
        fs.mkdirSync(dir, function(err, result) {
            if(err) console.log('error', err);
          });
        fs.mkdirSync(`${dir}/warns`, function(err, result) {
            if(err) console.log('error', err);
          });
        fs.mkdirSync(`${dir}/ahorcamientos`, function(err, result) {
            if(err) console.log('error', err);
          });
    };
        fs.mkdirSync(`${dir}/ahorcamientos/${ahorcNumber}`);
        fs.writeFile(`${dir}/ahorcamientos/${ahorcNumber}/ahorcado.txt`, `${mentioned.username}(${mentioned.id})`, 'utf8', function(err, result) {
            if(err) console.log('error', err);
          });
        fs.writeFile(`${dir}/ahorcamientos/${ahorcNumber}/Author.txt`, `${message.author.username}(${message.author.id})`, 'utf8', function(err, result) {
            if(err) console.log('error', err);
          });
        fs.writeFile(`${dir}/ahorcamientos/${ahorcNumber}/Motivo.txt`, `${reason}`, 'utf8', function(err, result) {
            if(err) console.log('error', err);
          });
          if (!fs.existsSync(`${dir}/ahorcamientos/${mentioned.id}.txt`)){
            fs.writeFile(`${dir}/ahorcamientos/${mentioned.id}.txt`, 1, 'utf8', function(err, result) {
                if(err) console.log('error', err);
              });
          }else{
              fs.readFile(`${dir}/ahorcamientos/${mentioned.id}.txt`, 'utf8', function(err, data) {
              var x = +data;
              var y = 1;
              var z = x + y;
              fs.writeFile(`${dir}/ahorcamientos/${mentioned.id}.txt`, `${z}`, 'utf8', function(err, result) {
                  if(err) console.log('error', err);
              });
              });
          };


    }else{
    message.channel.send('Tienes que tener el rol `Monarca` para poder usar este comando');


};
}};

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

Была проблема с настройками конфиденциальности моей тестовой учетной записи. Спасибо всем.

0 голосов
/ 24 марта 2020

Ответ довольно прост, пользователи могут не иметь права отправлять им сообщения в DM:)

И у вас есть ошибка здесь, отсутствует n в channel:

return message.channe.send(missingArgsEmbed);
...