private static bool Prefix(CharacterClassManager __instance, bool value) { try { ChangingIntercomMuteStatusEventArgs ev = new ChangingIntercomMuteStatusEventArgs(API.Features.Player.Get(__instance._hub), value, true); Player.OnChangingIntercomMuteStatus(ev); if (!ev.IsAllowed) { if (value == true) { MuteHandler.RevokePersistentMute("ICOM-" + __instance.UserId); } else { MuteHandler.IssuePersistentMute("ICOM-" + __instance.UserId); } return(false); } return(true); } catch (Exception e) { Exiled.API.Features.Log.Error($"{typeof(ChangingIntercomMuteStatus).FullName}.{nameof(Prefix)}:\n{e}"); return(true); } }
/// <summary> /// Called before an user's intercom mute status is changed. /// </summary> /// <param name="ev">The <see cref="ChangingIntercomMuteStatusEventArgs"/> instance.</param> public static void OnChangingIntercomMuteStatus(ChangingIntercomMuteStatusEventArgs ev) => ChangingIntercomMuteStatus.InvokeSafely(ev);