Skip to content

Voice Updates

To ensure smooth playback, Framelink needs to handle raw voice state and server updates from Discord.

Implementation

If you are using discord.js, you can simply pass the raw gateway data to the manager:

typescript
client.on('raw', (data) => {
    manager.handleVoiceUpdate(data);
});

Manual Handling

If you prefer more control, you can filter for the specific events:

typescript
client.on('raw', (packet) => {
    if (!['VOICE_STATE_UPDATE', 'VOICE_SERVER_UPDATE'].includes(packet.t)) return;
    manager.handleVoiceUpdate(packet);
});

Moving Channels

Framelink automatically handles players moving between voice channels. When a move is detected, the playerMove event is emitted:

typescript
manager.on('playerMove', (player, oldChannelId, newChannelId) => {
    console.log(`Player moved from ${oldChannelId} to ${newChannelId}`);
});

Released under the MIT License.