无法让Discord.js机器人程序发送加入/离开日志



我正在尝试开发Discord.js机器人。然而,我遇到了一个找不到解决方案的问题。这两段代码(按照我喜欢的方式格式化(应该在特定的discord通道中发送加入和离开消息。我对编码还很陌生,所以我不知道问题出在哪里。当用户离开时,什么都没发生,当用户加入时,机器人会崩溃,并出现我无法理解的错误。我认为这是获取用户信息的代码的一部分,比如Discord。GuildMember.user.id,但我已经尝试了在代码的其余部分使用的所有其他变体。我不确定什么不起作用。感谢您提前提供的帮助!

client.on("guildMemberAdd", message => {
const currentDate = new Date();
const timestampInMs = currentDate.getTime();
const unixTimestamp = Math.floor(currentDate.getTime() / 1000);
const userJoined = new EmbedBuilder()
.setColor(0x0099FF)
.setTitle(`${Discord.GuildMember.username} joined the server.`)
.setDescription(`Joined: <@${Discord.GuildMember.user.id}> **Account Created**:  ${Discord.GuildMember.user.createdAt}`)
.setAuthor({ name: `User Logging System`, iconURL: (Discord.GuildMember.avatarURL()) })
.addFields(
{ name: `User ID`, value: `${Discord.GuildMember.user.id}` },
{ name: `Timestamp`, value: `<t:${unixTimestamp}>`}
)
.setFooter({ text: `${currentDate}` })
{client.channels.cache.get("1010193667975282698")
.send ({ embeds: [userJoined] });
}});
client.on("guildMemberRemove", message => {
const currentDate = new Date();
const timestampInMs = currentDate.getTime();
const unixTimestamp = Math.floor(currentDate.getTime() / 1000);
const userLeft = new EmbedBuilder()
.setColor(0x0099FF)
.setTitle(`${Discord.GuildMember.username} left the server.`)
.setDescription(`Left: <@${Discord.GuildMember.user.id}> **Account Created**:  ${Discord.GuildMember.user.createdAt}`)
.setAuthor({ name: `User Logging System`, iconURL: (Discord.GuildMember.avatarURL()) )
.addFields(
{ name: `User ID`, value: `${Discord.GuildMember.user.id}` },
{ name: `Timestamp`, value: `<t:${unixTimestamp}>`}
)
.setFooter({ text: `${currentDate}` })
{client.channels.cache.get("1010666655615029259")
.send ({ embeds: [userLeft] });
}});

除了一些拼写错误外,您的代码似乎很好。试试这个

client.on("guildMemberAdd", member => {
const currentDate = new Date();
const timestampInMs = currentDate.getTime();
const unixTimestamp = Math.floor(currentDate.getTime() / 1000);
const userJoined = new EmbedBuilder()
.setColor(0x0099FF)
.setTitle(`${member.user.username} joined the server.`)
.setDescription(`Joined: <@${member.user.id}> **Account Created**: ${member.user.createdAt}`)
.setAuthor({ name: `User Logging System`, iconURL: (member.user.avatarURL()) })
.addFields(
{ name: `User ID`, value: `${member.user.id}` },
{ name: `Timestamp`, value: `<t:${unixTimestamp}>`}
)
.setFooter({ text: `${currentDate}` })
member.channels.cache.get("1010193667975282698").send({ embeds: [userJoined] });
});
client.on("guildMemberRemove", member => {
const currentDate = new Date();
const timestampInMs = currentDate.getTime();
const unixTimestamp = Math.floor(currentDate.getTime() / 1000);
const userLeft = new EmbedBuilder()
.setColor(0x0099FF)
.setTitle(`${member.user.username} left the server.`)
.setDescription(`Left: <@${member.user.id}> **Account Created**:  ${member.user.createdAt}`)
.setAuthor({ name: `User Logging System`, iconURL: (member.user.avatarURL()) )
.addFields(
{ name: `User ID`, value: `${member.user.id}` },
{ name: `Timestamp`, value: `<t:${unixTimestamp}>`}
)
.setFooter({ text: `${currentDate}` })
member.channels.cache.get("1010666655615029259").send({ embeds: [userLeft] });
});

我已经有一段时间没有这样做了,所以如果有任何错误,mb,但这是它应该看起来的样子。

最新更新