Radio: den Beitritt in drei Schritte zerlegen statt "signalling" zu melden
"signalling" sagt nur, dass etwas fehlt, nicht was. Ein Beitritt zum Sprachkanal ist ein Dreischritt: 1. Der Bot bittet Discord ueber die bestehende Verbindung um den Beitritt. 2. Discord antwortet mit dem eigenen Sprachstatus (darin die Sitzungs-ID). 3. Discord nennt den Sprachserver. Der Adapter zwischen Verbindung und Sprachbibliothek haelt jetzt fest, welcher davon stattgefunden hat. Aus den drei Haekchen wird ein Satz, der sagt, was zu tun ist — fehlende Berechtigung, fehlender Intent, oder ein Netz, das UDP nicht rauslaesst. Fuenf Faelle, fuenf verschiedene Antworten; der Test besteht darauf, dass keine zwei gleich lauten. Dazu eine Pruefung vorweg, die genau dasselbe Bild erzeugt haette: ein voller Sprachkanal. Discord nimmt die Anfrage entgegen und antwortet dann einfach nicht mehr — das sieht aus wie ein Rechteproblem. Wer Mitglieder verschieben darf, kommt am Limit vorbei, sonst nicht. Nachgesehen und ausgeschlossen: discord.js 14.27 verdrahtet beide Sprachereignisse (VOICE_STATE_UPDATE ueber die Action, VOICE_SERVER_UPDATE ueber den Handler), und GuildVoiceStates steht in den Intents. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -51,6 +51,17 @@ export async function execute(interaction) {
|
||||
});
|
||||
return;
|
||||
}
|
||||
// Ein voller Kanal sieht aus wie ein Rechteproblem: Discord nimmt die
|
||||
// Beitrittsanfrage entgegen und antwortet einfach nicht mehr. Nur wer
|
||||
// Mitglieder verschieben darf, kommt am Limit vorbei.
|
||||
if (kanal.userLimit > 0 && kanal.members.size >= kanal.userLimit && !rechte.has('MoveMembers')) {
|
||||
await interaction.reply({
|
||||
content: `❌ <#${kanal.id}> ist voll (${kanal.members.size}/${kanal.userLimit}). `
|
||||
+ 'Entweder Platz machen oder mir das Recht **Mitglieder verschieben** geben.',
|
||||
flags: MessageFlags.Ephemeral,
|
||||
});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Ohne ffmpeg wuerde der Bot sich hinsetzen und schweigen. Lieber gleich
|
||||
|
||||
Reference in New Issue
Block a user