【发布时间】:2022-01-08 17:04:52
【问题描述】:
我有这段代码console.log(newVoiceState.channel)
在client.on("voiceStateUpdate", async (oldVoiceState, newVoiceState) => { 内部返回:
<ref *2> VoiceChannel {
type: 'GUILD_VOICE',
guild: <ref *1> Guild {
id: '927224001141538816',
name: 'Test server bot',
icon: null,
features: [],
commands: GuildApplicationCommandManager {
permissions: [ApplicationCommandPermissionsManager],
guild: [Circular *1]
},
members: GuildMemberManager { guild: [Circular *1] },
channels: GuildChannelManager { guild: [Circular *1] },
bans: GuildBanManager { guild: [Circular *1] },
roles: RoleManager { guild: [Circular *1] },
presences: PresenceManager {},
voiceStates: VoiceStateManager { guild: [Circular *1] },
stageInstances: StageInstanceManager { guild: [Circular *1] },
invites: GuildInviteManager { guild: [Circular *1] },
scheduledEvents: GuildScheduledEventManager { guild: [Circular *1] },
available: true,
shardId: 0,
splash: null,
banner: null,
description: null,
verificationLevel: 'NONE',
vanityURLCode: null,
nsfwLevel: 'DEFAULT',
discoverySplash: null,
memberCount: 4,
large: false,
premiumProgressBarEnabled: false,
applicationId: null,
afkTimeout: 300,
afkChannelId: null,
systemChannelId: '927224001141538819',
premiumTier: 'NONE',
premiumSubscriptionCount: 0,
explicitContentFilter: 'DISABLED',
mfaLevel: 'NONE',
joinedTimestamp: 1641463218689,
defaultMessageNotifications: 'ALL_MESSAGES',
systemChannelFlags: SystemChannelFlags { bitfield: 0 },
maximumMembers: 250000,
maximumPresences: null,
approximateMemberCount: null,
approximatePresenceCount: null,
vanityURLUses: null,
rulesChannelId: null,
publicUpdatesChannelId: null,
preferredLocale: 'en-US',
ownerId: '291272018773671937',
emojis: GuildEmojiManager { guild: [Circular *1] },
stickers: GuildStickerManager { guild: [Circular *1] }
},
guildId: '927224001141538816',
parentId: '927224001141538818',
permissionOverwrites: PermissionOverwriteManager { channel: [Circular *2] },
id: '927224001141538820',
name: 'General',
rawPosition: 0,
rtcRegion: null,
bitrate: 64000,
userLimit: 0
}
但是当我尝试newVoiceState.channel.parentId 时,我收到以下错误:
TypeError: Cannot read properties of null (reading 'parentId')
at Client.<anonymous> (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\events\voiceStateUpdate.js:28:37)
at Client.emit (node:events:390:28)
at VoiceStateUpdate.handle (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\discord.js\src\client\actions\VoiceStateUpdate.js:38:14)
at Object.module.exports [as VOICE_STATE_UPDATE] (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\discord.js\src\client\websocket\handlers\VOICE_STATE_UPDATE.js:4:35)
at WebSocketManager.handlePacket (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\discord.js\src\client\websocket\WebSocketManager.js:351:31)
at WebSocketShard.onPacket (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\ws\lib\event-target.js:199:18)
at WebSocket.emit (node:events:390:28)
at Receiver.receiverOnMessage (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\ws\lib\websocket.js:1098:20) Promise {
<rejected> TypeError: Cannot read properties of null (reading 'parentId')
at Client.<anonymous> (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\events\voiceStateUpdate.js:28:37)
at Client.emit (node:events:390:28)
at VoiceStateUpdate.handle (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\discord.js\src\client\actions\VoiceStateUpdate.js:38:14)
at Object.module.exports [as VOICE_STATE_UPDATE] (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\discord.js\src\client\websocket\handlers\VOICE_STATE_UPDATE.js:4:35)
at WebSocketManager.handlePacket (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\discord.js\src\client\websocket\WebSocketManager.js:351:31)
at WebSocketShard.onPacket (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\ws\lib\event-target.js:199:18)
at WebSocket.emit (node:events:390:28)
at Receiver.receiverOnMessage (C:\Users\nigel\OneDrive\Software\Code\Discord-Bots\DijkdamRP\node_modules\ws\lib\websocket.js:1098:20)
}
几乎所有其他channel.x 属性都是相同的。例如channel.guildId虽然在其他console.log中看得很清楚,但突然不存在了。
这怎么可能?我该如何解决?
【问题讨论】:
-
您可以编辑您的问题并添加一些相关代码吗?
-
@ZsoltMeszaros 我真的不能添加更多代码,因为 console.log(newVoiceState.channel) 基本上是 modules.export 部分的整个文件
标签: javascript node.js discord.js