"snipe" 显示最后删除的消息的命令
"snipe" command that shows last deleted message
所以,我正在尝试在 discord.js 中创建一个 "snipe" 命令,它基本上显示频道上最后删除的消息。
我的命令是这样的:删除一条消息后,我的机器人会触发此事件。
client.on("messageDelete", (message) => {
if (message.author.bot) return;
var snipes = require("./snipe.json");
snipes[`${message.channel.id}`] = [`${message}`, `${message.author.tag}`];
var fs = require('fs');
var fileName = './snipe.json';
fs.writeFile(fileName, JSON.stringify(snipes, null, 2), function(error) {
if (error) {
return console.log('oops')
}
});
});
然后它像这样存储消息:
"Channel id": [
"Message",
"Author tag"
]
// of course not like this
问题是,我在尝试使其特定于消息所属的频道 ID 时遇到了问题。我的代码目前看起来像这样:
var snipes = require("./snipe.json"); // file containing snipes
let chn = `${message.channel.id}`;
var snipechannel = snipes.chn; // to call an specific deleted message I guess
if (snipechannel[0] === "No snipes") {
message.channel.send("What? There are no deleted messages atm");
} else {
const embed = {
"color": 5608903,
"footer": {
"text": `Sniped by: ${message.author.tag}`
},
"fields": [{
"name": `${snipechannel[1]} said...`,
"value": `${snipechannel[0]}`
}]
};
await message.channel.send({
embed
});
snipechannel[0] = "No snipes";
var fileName = './snipe.json';
var file = require(fileName);
fs.writeFile(fileName, JSON.stringify(file, null, 2), function(error) {
if (error) {
return console.log('oops');
}
});
}
这里的问题是我无法根据 JSON 文件中的频道 ID 获取任何特定消息。
如果有什么我没有解释清楚的地方在评论中告诉我
问题出在您如何访问 属性。
使用 snipes.chn
搜索名为 chn
.
的实际 属性
如果要访问名为 属性 的变量 chn
的值,则需要使用 snipes[chn]
代替:
var snipes = require("./snipe.json");
let chn = `${message.channel.id}`;
var snipechannel = snipes[chn]; // change here
所以,我正在尝试在 discord.js 中创建一个 "snipe" 命令,它基本上显示频道上最后删除的消息。
我的命令是这样的:删除一条消息后,我的机器人会触发此事件。
client.on("messageDelete", (message) => {
if (message.author.bot) return;
var snipes = require("./snipe.json");
snipes[`${message.channel.id}`] = [`${message}`, `${message.author.tag}`];
var fs = require('fs');
var fileName = './snipe.json';
fs.writeFile(fileName, JSON.stringify(snipes, null, 2), function(error) {
if (error) {
return console.log('oops')
}
});
});
然后它像这样存储消息:
"Channel id": [
"Message",
"Author tag"
]
// of course not like this
问题是,我在尝试使其特定于消息所属的频道 ID 时遇到了问题。我的代码目前看起来像这样:
var snipes = require("./snipe.json"); // file containing snipes
let chn = `${message.channel.id}`;
var snipechannel = snipes.chn; // to call an specific deleted message I guess
if (snipechannel[0] === "No snipes") {
message.channel.send("What? There are no deleted messages atm");
} else {
const embed = {
"color": 5608903,
"footer": {
"text": `Sniped by: ${message.author.tag}`
},
"fields": [{
"name": `${snipechannel[1]} said...`,
"value": `${snipechannel[0]}`
}]
};
await message.channel.send({
embed
});
snipechannel[0] = "No snipes";
var fileName = './snipe.json';
var file = require(fileName);
fs.writeFile(fileName, JSON.stringify(file, null, 2), function(error) {
if (error) {
return console.log('oops');
}
});
}
这里的问题是我无法根据 JSON 文件中的频道 ID 获取任何特定消息。
如果有什么我没有解释清楚的地方在评论中告诉我
问题出在您如何访问 属性。
使用 snipes.chn
搜索名为 chn
.
如果要访问名为 属性 的变量 chn
的值,则需要使用 snipes[chn]
代替:
var snipes = require("./snipe.json");
let chn = `${message.channel.id}`;
var snipechannel = snipes[chn]; // change here