bots - 如何清除嵌入数据?| 不和谐.JS
问题描述
我目前正在尝试制作一个不和谐的机器人,通过使用某个命令 !job 嵌入频道来显示“订单”。参数也是嵌入中的字段。然后用户必须输入“接受”来接受所述工作。然后删除它发布的第一个嵌入,然后发布一个新的,说明“订单已关闭”,这样其他任何人都不能再“接受”订单。
问题:机器人重新启动后,第一次嵌入工作正常;但是,“订单已关闭”嵌入帖子记录了所有先前的嵌入。例如,如果第一个作业状态为“x”,则嵌入只输出应有的顺序。但是,如果第二个作业记录为“y”,则两者都将被输出并叠加。在第三个订单上,它输出所有 3 个记录等。
使用 !job 后:
输入“接受”后,接受作业:
放置并接受第二个作业后,将输出两个订单:
相关代码:
client.on("ready", () => {
console.log(`Starting up. Running version ${version}`)
});
function isCommand(command, message) {
var command = command.toLowerCase(); //If a user types a command with uppercase either lowercase
var content = message.content.toLowerCase()
return content.startsWith(prefix + command); //Checking if the message has a prefix first.
};
//isNotCommand function (needed
client.on('message', (message) => {
if (isCommand('job', message)) {
const args = message.content.slice(prefix.length).trim().split(/ +/g);
// Checking if they have perms
if (message.member.roles.cache.find(r => r.name === "Owner")) {
const boostEmbed = new discord.MessageEmbed()
.setColor('GREEN')
.setDescription("A job has just been placed. Details are below.")
.setAuthor(' Job Placed!')
.addField("Rank", args[1] + " " + args[2] + " " + args[3] + " " + args[4] + " " + args[5], true)
.addField("Queue", args[6], true)
.addField("Console", args[7], true)
.addField("Payout", args[8], true)
const closedEmbed = new discord.MessageEmbed()
.setColor('RED')
.setDescription("~~A job has just been placed. Details are below.~~")
.setAuthor(' Job Closed!')
.addField("Rank", "~~" + args[1] + " " + args[2] + " " + args[3] + " " + args[4] + " " + args[5] + "~~", true)
.addField("Queue", "~~" + args[6] + "~~", true)
.addField("Console", "~~" + args[7] + "~~", true)
.addField("Payout", "~~" + args[8] + "~~", true)
const messagingEmbed = new discord.MessageEmbed()
.setColor('GREEN')
.setDescription("You have accepted the job. Details are below.")
.setAuthor(' Job Accepted!')
.addField("Rank", args[1] + " " + args[2] + " " + args[3] + " " + args[4] + " " + args[5], true)
.addField("Payout", args[8], true)
.addField("Username", args[9], true)
.addField("Password", args[10], true)
if (args[1] === undefined) {
message.author.send("!job <Rank> <Queue | Single / Duo> <Console> <Payout> <Username> <Password>")
.then(function(message) {
setTimeout(function() {
message.delete();
}, 10000);
})
} else { // Main
message.guild.channels.cache.get(channelidrequest).send(boostEmbed)
message.guild.channels.cache.get(channelidrequest).send("React if you want to take the job!")
.then(function(message) {
message.react("✅")
})
const filter = m => m.content.includes('accept');
const collector = message.channel.createMessageCollector(filter, {
time: 172800000
});
collector.on('end', collected => {
message.guild.channels.cache.get(channelidrequest).bulkDelete(1);
const msg = message.guild.channels.cache.get(channelidrequest).fetchMessages({
limit: 1
})
msg.edit(closedEmbed);
})
console.log(collector)
collector.on('collect', message => {
if (message.content == "accept") {
message.channel.send("Hello");
}
const user = message.author
if (user.id === "722188709612748830") {
console.log("No Bots");
} else {
message.guild.channels.cache.get(channelidrequest).bulkDelete(2);
message.guild.channels.cache.get(channelidrequest).send(closedEmbed);
const joblogEmbed = new discord.MessageEmbed()
.setColor('YELLOW')
.setDescription("A job has just been logged. Details are below.")
.setAuthor(' Job Logged!')
.addField("Rank", args[1] + " " + args[2] + " " + args[3] + " " + args[4] + " " + args[5], true)
.addField("Queue", args[6], true)
.addField("Console", args[7], true)
.addField("Payout", args[8], true)
.addField("Username", args[9], true)
.addField("Password", args[10], true)
.addField("Booster", "<@" + user.id + ">", true)
message.guild.channels.cache.get(channelidlog).send(joblogEmbed)
user.send(messagingEmbed);
}
长话短说,当我只希望它显示与所下订单相关的“订单关闭”嵌入时,输出堆叠在一起。抱歉,如果有任何混淆,这是我的第一篇文章。
解决方案
同样的现象也发生在我身上。但是,当我重新启动服务器时,它被治愈了。
推荐阅读
- ruby - 如何创建所需函数的快捷方式(`cp = FileUtils.cp`)?
- python - 在python中使用正则表达式查找特定的数字模式
- wordpress - 将经典编辑器添加到 Gutenberg 块模板
- python - Pipenv:无条件安装平台特定包的依赖项?
- python - 如何解决 TiffFileError: Not a Tiff File and Byte Problem with KeyError: b'\x89P'
- javascript - TypeError('Router.use() 需要一个中间件函数但得到了一个 ' + gettype(fn)) FeathersJS
- c++ - 您如何在与打开窗口的功能不同的功能中使用绘图功能?
- python - 仅从数据框中查询新数据,将其与数据库进行比较
- amazon-web-services - 如何编写 IAM 策略以检查多个可能值的列表
- javascript - 如何知道,AJAX 请求何时在 Native Javascript 中完全加载?