如何在 Discord 中固定消息
How to Pin a Message in Discord
我正在尝试为我所在的小型服务器制作一个 discord 机器人,我希望它将某条消息固定到发送它的频道。我以前做过几个机器人,但它自从我上次使用它以来,语法似乎发生了变化,我要重用的代码不再有效。我已经设法解决了其中一些更改(例如意图),但是当我尝试检查已发送的消息时,它什么也没做。我当前的代码
const { Client, Intents } = require("discord.js");
const { token } = require("./config.json");
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
client.once("ready", () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on("message", (msg) => {
if (msg.content == "something goes here") {
msg.pin()
}
});
client.login(token);
我已经尝试像我看到一些人推荐的那样为 message
补充 messageCreate
,但它似乎仍然无济于事。即使将 msg.pin()
更改为 console.log(msg)
仍然在控制台中显示任何内容
client.on("messageCreate", (msg) => {
if (msg.content == "something goes here") {
console.log(msg)
}
});
我确实启用了特权意图切换,所以我认为这不是问题所在
[privileged toggles]
有人知道这里的问题是什么吗?我该如何解决?感谢任何帮助,谢谢!
首先,您还没有在您的客户端中启用 GUILD_MESSAGES
意图,因此您需要通过这样做来添加它:
const client = new Client({
intents: [
Intents.FLAGS.GUILDS
Intents.FLAGS.GUILD_MESSAGES
]
});
除此之外,.pin()
功能依然存在,没有任何变化。您也可以提供一个理由。 .pin()
函数也是 returns 一个承诺,因此您将不得不使用 .then()
或 await
,因此您的最终代码可能如下所示:
const { Client, Intents } = require("discord.js");
const { token } = require("./config.json");
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
client.once("ready", () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on("message", (msg) => {
if (msg.content == "something goes here") {
msg.pin().then(() => console.log)
}
});
client.login(token);
您可以在此处了解有关 .pin()
函数的更多信息 => pin | discord.js
我正在尝试为我所在的小型服务器制作一个 discord 机器人,我希望它将某条消息固定到发送它的频道。我以前做过几个机器人,但它自从我上次使用它以来,语法似乎发生了变化,我要重用的代码不再有效。我已经设法解决了其中一些更改(例如意图),但是当我尝试检查已发送的消息时,它什么也没做。我当前的代码
const { Client, Intents } = require("discord.js");
const { token } = require("./config.json");
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
client.once("ready", () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on("message", (msg) => {
if (msg.content == "something goes here") {
msg.pin()
}
});
client.login(token);
我已经尝试像我看到一些人推荐的那样为 message
补充 messageCreate
,但它似乎仍然无济于事。即使将 msg.pin()
更改为 console.log(msg)
仍然在控制台中显示任何内容
client.on("messageCreate", (msg) => {
if (msg.content == "something goes here") {
console.log(msg)
}
});
我确实启用了特权意图切换,所以我认为这不是问题所在 [privileged toggles]
有人知道这里的问题是什么吗?我该如何解决?感谢任何帮助,谢谢!
首先,您还没有在您的客户端中启用 GUILD_MESSAGES
意图,因此您需要通过这样做来添加它:
const client = new Client({
intents: [
Intents.FLAGS.GUILDS
Intents.FLAGS.GUILD_MESSAGES
]
});
除此之外,.pin()
功能依然存在,没有任何变化。您也可以提供一个理由。 .pin()
函数也是 returns 一个承诺,因此您将不得不使用 .then()
或 await
,因此您的最终代码可能如下所示:
const { Client, Intents } = require("discord.js");
const { token } = require("./config.json");
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
client.once("ready", () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on("message", (msg) => {
if (msg.content == "something goes here") {
msg.pin().then(() => console.log)
}
});
client.login(token);
您可以在此处了解有关 .pin()
函数的更多信息 => pin | discord.js