EDITAR: ColinD resolvió mi problema, pero ahora el mensaje no se elimina y no tengo idea de por qué el mensaje no se eliminará porque me funcionó antes con bots
Código:
const discord = require('discord.js') const newEmbed = require('embedcord') const randomHex = require('random-hex') module.exports = (client, message, options) => { let links = require('./links.json') let foundLink = false let banReason = (options && options.banReason) || 'Sent a phishing link.' let logs = (options && options.logs) let member = message.mentions.members.first() for(var i in links) { if(message.content.toLowerCase().includes(links[i])) foundLink = true } if(foundLink) { if(message.author.hasPermission('ADMINISTRATOR')) return message.delete() member.ban({reason: banReason}) const embed = newEmbed( '**Member Banned**', `${randomHex.generate()}`, `Member was banend for ${options.banReason}` ) logs.send(embed) } }Su posición de return podría estar impidiendo cualquier cosa a continuación si se ejecuta, intente cambiar esto
if (foundLink) { if (message.author.hasPermission('ADMINISTRATOR')) return; const embed = newEmbed( '**Member Banned**', `${randomHex.generate()}`, `Member was banend for ${options.banReason}` ); message.delete(); member.ban({ reason: banReason }); logs.send(embed); }O esto si quieres si/si no
if (foundLink) { if (message.author.hasPermission('ADMINISTRATOR')) { return; } else { const embed = newEmbed( '**Member Banned**', `${randomHex.generate()}`, `Member was banend for ${options.banReason}` ); message.delete(); member.ban({ reason: banReason }); logs.send(embed); } }EDITAR: ColinD resolvió mi problema, pero ahora el mensaje no se elimina y no tengo idea de por qué el mensaje no se eliminará porque me funcionó antes con bots
La variable foundLink es innecesaria, puede mover su código dentro del ciclo.
Utilice message.member.hasPermission() en lugar de message.author.hasPermission() .
Código de ejemplo para v12.5.3 (Evento de mensaje):
client.on('message', (message) => { if (message.author.bot) return; // Ignore bot messages const { member, channel, guild } = message; // Get the message author, channel, and guild if (!member || !channel || !guild) return; // Ignore messages without a member, channel or guild const { links } = require('./links.json'); // Get links from json file for (let i = 0; i < links.length; i++) { // Check if the message contains a link in the links.json file if (message.content.toLowerCase().includes(links[i])) { // If the message contains a link if (member.hasPermission('ADMINISTRATOR')) return; // If the member has the administrator permission, don't ban them const banReason = 'Sent a phishing link'; // Reason for the ban message.delete(); // Delete the message guild.member(member).ban({ reason: banReason }); // Ban the member channel.send(`${member.displayName} has been banned for sending a phishing link.`) // Send a message to the channel break; } } })