簡體   English   中英

類型錯誤:無法讀取未定義的屬性(讀取“createdTimestamp”)discord.js

[英]TypeError: Cannot read properties of undefined (reading 'createdTimestamp') discord.js

基本上我正在嘗試為 discord.js 創建一個 userinfo 命令,我遵循了一些教程並且我似乎做了一個,但是我得到這個錯誤說:

類型錯誤:無法讀取未定義的屬性(讀取“createdTimestamp”)

代碼在這里:(userinfo.js)

const moment = require('moment');

module.exports = {
    name: 'userinfo',
    description: 'fetch the info of the user!',
    async execute(message, args, Discord, prefix, client){
        const target = message.mentions.users.first() || message.author;
        const member = message.guild.members.cache.get(target.id);

        const embed = new Discord.MessageEmbed()
        .setAuthor(`${target.username}`, target.displayAvatarURL({dynamic: true}))
        .setThumbnail(target.displayAvatarURL({dynamic: true}))
        .setColor('#0afc17')
        .addField('User ID', `${target.id}`)
        .addField('Roles', `${member.roles.cache.map(r => r).join(' ').replace('@everyone', '')}` || 'None')
        // .addField('Server Member Since', `${moment(member.joinedAt).format('MMMM Do YYYY, h:mm')}\n**-** ${moment(member.joinedAt).startOf('day').fromNow()}`)
        .addField('Server Member Since', `<t:${parseInt(target.joinedTimestamp / 1000)}:R>`, true)
        .addField('Discord User Since', `<t:${parseInt(target.user.createdTimestamp / 1000)}:R>`, true)

        message.channel.send({ embeds: [embed] })
    }
}

主程序

const Discord = require('discord.js');
const client = new Discord.Client({
    intents: ['GUILDS', 'GUILD_MESSAGES']
});

const prefix = '!';

const fs = require('fs');

client.commands = new Discord.Collection();

const commandFiles = fs.readdirSync('./commands/').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
    const command = require(`./commands/${file}`);

    client.commands.set(command.name, command);
}


client.once('ready', () => {
    console.log('Bot is online!');
});

client.on('messageCreate', message => {
    if (!message.content.startsWith(prefix) || message.author.bot) return;

    const args = message.content.slice(prefix.length).split(/ +/);
    const command = args.shift().toLowerCase();

    if (!client.commands.get(command)) return;

    client.commands.get(command).execute(message, args, Discord, prefix, client);
})

// client.on('guildMemberAdd', guildMember =>{
//     let welcomeRole = guildMember.guild.roles.cache.find(role => role.name === 'xxx');
 
//     guildMember.roles.add(welcomeRole);
//     guildMember.guild.channels.cache.get('xxx').send(`Welcome <@${guildMember.user.id}> to the server!`)
// });

client.login('xxx');

這是完整的錯誤:

(node:19418) DeprecationWarning: Passing strings for MessageEmbed#setAuthor is deprecated. Pass a sole object instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
/Users/xxx/Desktop/DiscordBot/commands/userinfo.js:19
        .addField('Discord User Since', `<t:${parseInt(target.user.createdTimestamp / 1000)}:R>`, true)
                                                                   ^

TypeError: Cannot read properties of undefined (reading 'createdTimestamp')
    at Object.execute (/Users/xxx/Desktop/DiscordBot/commands/userinfo.js:19:68)
    at Client.<anonymous> (/Users/xxx/Desktop/DiscordBot/main.js:32:34)
    at Client.emit (node:events:527:28)
    at MessageCreateAction.handle (/Users/xxx/Desktop/DiscordBot/node_modules/discord.js/src/client/actions/MessageCreate.js:26:14)
    at module.exports [as MESSAGE_CREATE] (/Users/xxx/Desktop/DiscordBot/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (/Users/xxx/Desktop/DiscordBot/node_modules/discord.js/src/client/websocket/WebSocketManager.js:351:31)
    at WebSocketShard.onPacket (/Users/xxx/Desktop/DiscordBot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (/Users/xxx/Desktop/DiscordBot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
    at WebSocket.onMessage (/Users/xxx/Desktop/DiscordBot/node_modules/ws/lib/event-target.js:199:18)
    at WebSocket.emit (node:events:527:28)

Node.js v18.0.0

是我的文件的設置方式

任何幫助,將不勝感激!

.addField('Discord User Since', `<t:${parseInt(target.user.createdTimestamp / 1000)}:R>`, true)

代替

.addField('Discord User Since', `<t:${parseInt(target.createdTimestamp / 1000)}:R>`, true)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM