using NetCord.Gateway; using NetCord.Hosting.Gateway; using SquadBot.StateMangers; namespace SquadBot.Handlers; public class VoiceStatesHandler : IVoiceStateUpdateGatewayHandler { private ILogger _logger; private VoiceStateManager _voiceStateManager; public VoiceStatesHandler(ILogger Logger, VoiceStateManager vsManager) { _logger = Logger ?? throw new System.ArgumentNullException(nameof(Logger)); _voiceStateManager = vsManager ?? throw new System.ArgumentNullException(nameof(vsManager)); } public async ValueTask HandleAsync(VoiceState voice_event) { if (voice_event.User == null) return; await _voiceStateManager.HandleVoiceStateChange(voice_event); } }