我想防止用户通过角色层次结构中更高的语音通道移动其他用户。
为此,我获取有关谁被移动的数据 但是我不知道如何获取发起移动的数据
这是获取有关谁被移动的数据的代码
private async Task OnUserVoiceStateUpdated(SocketUser user, SocketVoiceState oldState, SocketVoiceState newState)
{
if (oldState.VoiceChannel != newState.VoiceChannel && oldState.VoiceChannel != null)
{
var channelFrom = oldState.VoiceChannel.Name;
var channelTo = newState.VoiceChannel?.Name ?? "Unknown channel";
var moved = user.Username;
var logMessage = $"{moved} moved from {channelFrom} to {channelTo}";
Console.WriteLine(logMessage);
// Send log message to the server
var guild = oldState.VoiceChannel.Guild;
var logChannel = guild.GetTextChannel(0123456789); // replace with your own channel ID
if (logChannel != null)
{
await logChannel.SendMessageAsync(logMessage);
}
}
}