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