不和谐.js v12.5.3 有人知道为什么这不起作用吗?



编辑:ColinD解决了我的问题,但现在消息没有删除,我不知道为什么消息不会删除,因为它以前对我的机器人有效

代码:

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)
}
}

如果您的return位置无法运行,请尝试更改此

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);
}

或者这个如果你想如果/其他

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);
}
}

编辑:ColinD解决了我的问题,但现在消息没有删除,我不知道为什么消息不会删除,因为它以前对我的机器人有效

foundLink变量是不必要的,您可以在循环中移动代码。

使用message.member.hasPermission()而不是message.author.hasPermission()

v12.5.3(消息事件)的示例代码:

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;
}
}
})

最新更新