我试着在一个频道上做一个建议事件,我试着给它加多层保护,试着从多个方面来测试它.然而,在我认为我已经完成了测试阶段后,我错了,我的一个测试员有一个问题,每次他们试图发送长度低于最小长度(25)的消息时,它似乎崩溃了,它迷惑了我,因为我总是可以做到的,什么都没有发生,我开始调试,并在每个message.delete()
个函数上添加了Catch,你猜怎么着,他们都错误了,但他们仍然为我删除了消息,但对于Ameer(测试者),它只是崩溃,甚至没有删除他们的消息.
我处理了很多message.delete()
个问题,但这让我感到沮丧和困惑.
顺便说一句,我发现所有的message.delete()
个函数都删除了,但仍然出错,所以它不是一个精确的函数.
以下是完整的代码:
// Main Requirements \\
const { Secrets, Channels, Guilds, Roles, Permission, Users } = require(`../../config`)
const { QuickDB } = require('quick.db');
const db = new QuickDB();
// Optional Requirements \\
const { MessageEmbed, MessageActionRow, MessageButton } = require('discord.js')
const thingstoremove = ["-", "_", ".", ",", "`", "~", "@", "#", "!", "$", "%", "^", "&", "*", "(", ")"]
const blacklistedlinks = ["discord.gg", "bit.ly", "dlscord.com", "discord.com", "discord.net", "nitro-ds.com"]
// whitelistedlinks = [""],
// embedlistedlinks = ["tenor.com"],
// Code \\
module.exports = client => {
client.on('messageCreate', async message => {
const channel = message.channel.id === Channels.MAIN_SUGGETIONS
if (!channel) return;
if (message.author.bot) return
if (message.content.includes('-bys')) return;
var blacklisted = blacklistedlinks;
var thingstoremovee = thingstoremove;
const stuff = new RegExp(`[${thingstoremovee.join('')}]`, 'g')
const args = message.content
let UserDataSBL = await db.get(`${message.author.id}.SBL`)
if (UserDataSBL == undefined) UserDataSBL = false
console.log(UserDataSBL)
if (UserDataSBL == true) return message.reply(`${message.author}, You're blacklisted from suggesting, please open a ticket to appeal the blacklist.`).then(m => {message.delete().catch(console.log(`Failed to delete, line 38.`)), setTimeout( function() { m.delete() }, 5000)})
// Link protection \\
try {
if (message.author.bot) return;
if (blacklisted.some(word => message.content.toLowerCase().includes(word))) {
message.reply(`${message.author}, You've been blacklisted for sending blacklisted links!`).then(m => {message.delete().catch(console.log(`Failed to delete, line 45.`)), setTimeout(function() { m.delete() }, 5000)})
await db.set(`${message.author.id}.SBL`, true)
return
} else if (message.content.toLowerCase().replace(stuff, '').includes("https://")) {
message.reply(`${message.author}, You've been blacklisted for sending links!`).then(m => {message.delete().catch(console.log(`Failed to delete, line 49.`)), setTimeout(function() { m.delete() }, 5000)})
await db.set(`${message.author.id}.SBL`, true)
return
}} catch(e) {
message.channel.send(`${message.author}, An error has occurred, please talk to support if this continues.`).then(m => {message.delete().catch(console.log(`Failed to delete, line 53.`)), setTimeout( function() { m.delete() }, 5000)})
return console.log(e)
}
// Code \\
if (message.content.match(/<a?:.+?:\d+>/)) return message.reply(`${message.author}, Don't use emojis, they're not allowed while suggesting.`).then(m => {message.delete().catch(console.log(`Failed to delete, line 59.`)), setTimeout( function() { m.delete() }, 5000)}) ;
if (message.content.replace(/\s/g, '').length < 25) return message.reply(`${message.author}, Please write minimum 25 letters or more.`).then(m => {message.delete().catch(console.log(`Failed to delete, line 61.`)), setTimeout( function() { m.delete() }, 5000)})
if (message.content.replace(/\s/g, '').length >= 25) {
if (message.content.replace(/\s/g, '').length >= 750) return message.reply(`${message.author}, Please write maximum 750 letters or less.`).then(m => {message.delete().catch(console.log(`Failed to delete, line 64.`)), setTimeout( function() { m.delete() }, 5000)})
const embed = new MessageEmbed()
.setAuthor({ name: message.author.tag, iconURL: message.author.displayAvatarURL()})
.setColor("#ffffff")
.setThumbnail(message.author.avatarURL())
.setFields(
{name: `Suggestion`, value: `\`\`\`${args}\`\`\``},
)
.setFooter({ text: `Suggestion by: ${message.author.tag}.\n\Time/Date:`})
.setTimestamp()
message.channel.send({ embeds: [embed] }).then(msg => {
msg.react('949231861853487154')
msg.react('949232034977558538')
})
// Done \\
try {
const done = new MessageEmbed()
.setTitle(`Suggestion submitted!`)
.setColor("#ffffff")
.setFields(
{name: `Your Suggestion`, value: `\`\`\`${args}\`\`\``},
)
.setFooter({ text: `Thank you for suggesting in Voidyy's Planet!\n\nTime/Date:`})
.setTimestamp()
await message.author.send({ embeds: [done] }).catch(console.log(`Fail at line 92`))
} catch (err) {
console.log(err.name)
}
setTimeout(function() {
return message.delete()
}, 5000)
}
})
}
错误:
C:\Users\Hamoodi\Desktop\Discord bots\Voidyy's Bot\node_modules\discord.js\src\rest\RequestHandler.js:350
DiscordAPI错误: Unknown Message
at RequestHandler.execute (C:\Users\Hamoodi\Desktop\Discord bots\Voidyy's Bot\node_modules\discord.js\src\rest\RequestHandler.js:350:13)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async RequestHandler.push (C:\Users\Hamoodi\Desktop\Discord bots\Voidyy's Bot\node_modules\discord.js\src\rest\RequestHandler.js:51:14)
at async MessageManager.delete (C:\Users\Hamoodi\Desktop\Discord bots\Voidyy's Bot\node_modules\discord.js\src\managers\MessageManager.js:212:5)
at async Message.delete (C:\Users\Hamoodi\Desktop\Discord bots\Voidyy's Bot\node_modules\discord.js\src\structures\Message.js:795:5) {
method: 'delete',
path: '/channels/1010336387729461358/messages/1010406288406106172',
code: 10008,
httpStatus: 404,
requestData: { json: undefined, files: [] }
}
其他信息:
"dependencies":
"better-sqlite3": "^7.6.2",
"discord.js": "^13.10.2",
"fs": "^0.0.1-security",
"mongoose": "^6.5.2",
"ms": "^2.1.3",
"quick.db": "^9.0.6"
"node": "16.14.2"
任何帮助都是很棒的,伙计,我讨厌未知的消息不给你任何关于什么问题的信息,线路或任何东西.