为什么这不dm警告用户


const toki1 = require('./something')
const Discord = require('discord.js');
const mod = new Discord.Client
let somearray = []
mod.on('ready', () => {
console.log('I am ready. Please work I beg you')
})
mod.on('message', msg => {
let linesplit = msg.content.split('n')
let unchanged = msg.content.split(' ')
if(unchanged[0] != '*bot5' && !msg.author.bot){
let thotus = msg.content.toLowerCase()
somearray.forEach(swear => {

let white = new RegExp(swear, "g")
thotus = thotus.replace(white, `||${swear}||`)  
}) 
if (somearray.some(v => msg.content.toLowerCase().includes(v))) {

msg.channel.send(`Sent by: ${msg.author.tag}, Censored by: MRModeration(bot 5)n${thotus}`)
.then(whil => {
msg.delete({timeout: 400})
})
.catch(rer => {
msg.channel.send(`we catched somethingnget itnbecause .catch()nnThe error is ${rer}`)
msg.delete({timeout: 400})


})
}

} 
if(unchanged[0] == '*bot5'){
if(msg.member.hasPermission('ADMINISTRATOR') || msg.member.roles.cache.has('724326097306779699')){

if(!unchanged[1]){
msg.reply('you need something to do with this bot')
return;
} 
switch(unchanged[1]){
case 'msgdelete':

if(!unchanged[2]){
msg.reply('you need something to send')
return;
}
if(isNaN(unchanged[2])){
msg.reply('you need a number')
return;
}
if(Number(unchanged[2]) < 1 || Number(unchanged[2]) > 100){
msg.reply('the amount needs to be between 1 and 100')
return;
}
if(!Number.isInteger(Number(unchanged[2]))){
msg.reply('it needs to be an integer(for obvious reasons)')
return;
}

msg.channel.bulkDelete(Number(unchanged[2]) + 1, true)
.then(deleted => msg.channel.send(`I(bot 5) have deleted ${deleted.size - 1} message(s).`))
.catch(err => msg.reply(`something went wrong... nn **The presented error is** nn ${err}`))


break;
case 'add':
if(msg.member.roles.cache.has('730496872992735253')){
if(!unchanged[2]){
msg.reply('what is it that you want to add???')
} else {
let change = unchanged
change.splice(0, 2)
if(msg.author.bot){
return;
}
if(change.join(' ').length == 1 || change.join(' ').includes('|')){
msg.channel.send("this is either a letter, something that includes |.")
return;
}

if(somearray.includes(change.join(' ').toLowerCase())){
msg.reply('already there')
} else {
somearray.push(change.join(' ').toLowerCase()) 
msg.channel.send(`${change.join(' ').toLowerCase()} is now in the list of swear words`)
}
}
} else {
msg.channel.send('you do not have the role for this.')
}
break;
case 'remove':
if(msg.member.roles.cache.has('730496872992735253')){
if(!unchanged[2]){
msg.reply('what is it that you want to remove???')
} else {
let changer = unchanged
changer.splice(0, 2)
if(!somearray.includes(changer.join(' '))){
msg.reply('not an item that exists')
} else {
let sarray = somearray.filter(thing => thing != changer.join(' '))
somearray = sarray
msg.channel.send(`${changer.join(' ')} is now removed from the list of swear words`)
}
}
} else {
msg.channel.send('you do not have the role for this.')
}
break;
default:
msg.reply('not a command yet')
break;

}
} else {
msg.reply('you are neither an admin nor a moderator.')
.then(good => {
good.delete({ timeout: 3000 })
msg.delete({ timeout: 6000 })
.catch(err => {
msg.channel.send(`Seemingly an error appearednn***__badumm__***n***__badumm__***n***__badumm__***n the error is nn ${err}`)
})

})

}

}
if(msg.content.startsWith('*swearwords')){
const joiner = somearray.join('n')
const embid = new Discord.MessageEmbed()
.setTitle('All swear words in the list') 
.attachFiles('./yesyesyes.png')
.setImage("attachment://yesyesyes.png")   
.addField('*All swear words*', `[n${joiner}n]`)
msg.channel.send(embid)



}
if(linesplit[0] == '*warn'){
if(msg.member.hasPermission('ADMINISTRATOR') || msg.member.roles.cache.has('724326097306779699')){
if(linesplit.length < 3){
msg.channel.send(`you need *warn, then on another line the user's tag and another line the warn`)
return;
}
if(msg.guild.members.cache.find(member => member.user.tag == linesplit[1])){
if(msg.guild.members.cache.find(member => member.user.tag == linesplit[1]).hasPermission('ADMINISTRATOR') || msg.guild.members.cache.find(member => member.user.tag == linesplit[1]).roles.cache.has('724326097306779699')){
msg.reply(`you can't warn admins or mods`)
} else {
let grad = linesplit
a.splice(0, 2)
let gradon = grad.join('n')
msg.guild.members.cache.find(member => member.user.tag == linesplit[1]).user.send(`__***Warned by: ${msg.author.tag}***__nThe warning is(because):n${gradon}`)
}
} else {
msg.reply(`not a user's tag`)
}
} else {
msg.reply('not allowed')
}
}         
})
mod.login(process.env.token)

我的想法是一个像一样工作的警告系统

*warn
the tag of the user
the reason for the warn.

(命令在最后(我还放了很多if语句来检查是否所有东西都使用正确,就像检查warner是否正确一样。不过,我可能不应该嵌套它们。

我遇到的问题是它没有用标签DMing用户。它也没有产生错误。

msg.guild.members.cache.find(member => member.user.tag == linesplit[1]).user.send(`__***Warned by: ${msg.author.tag}***__nThe warning is(because):n${gradon}`)

我如何使这条线路发送消息给这个成员DM。

常量用户将搜索提及||tag(例如hydrabolt#0001(||id(例如42040040400404(。

无论你提供什么,它都会在公会中搜索成员

if(linesplit[0] == '*warn'){
if(msg.member.hasPermission('ADMINISTRATOR') || msg.member.roles.cache.has('724326097306779699')){
if(linesplit.length < 3){
msg.channel.send(`you need *warn, then on another line the user's tag and another line the warn`)
return;
}
const user = msg.mentions.members.first() || msg.guild.members.cache.find(u => u.user.tag.toLowerCase() == linesplit[1].toLowerCase()) || msg.guild.members.cache.get(linesplit[1]) 
if(!user) return msg.reply('not allowed')    
if(user.hasPermission('ADMINISTRATOR') || user.roles.cache.has('724326097306779699')){
msg.reply(`you can't warn admins or mods`)
} else {
let grad = linesplit
grad.splice(0, 2)
let gradon = grad.join('n')
user.send(`__***Warned by: ${msg.author.tag}***__nThe warning is(because):n${gradon}`)
}
}         
}

最新更新