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 something\nget it\nbecause .catch()\n\nThe 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... \n\n **The presented error is** \n\n ${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 appeared\n\n***__badumm__***\n***__badumm__***\n***__badumm__***\n the error is \n\n ${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 语句来检查一切是否正确使用,就像检查警告器是否正确的语句一样。我可能不应该嵌套它们。
我遇到的问题是它没有使用标签向用户发送消息。它也不会产生错误。
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。