internal static void OnVerified(VerifiedEventArgs ev) { Player dPlayer = ev.Player.GetPlayer() ?? new Collections.Player( ev.Player.RawUserId, ev.Player.AuthenticationType.ToString().ToLower(), ev.Player.Nickname ); PlayerData.Add(ev.Player, dPlayer); if (dPlayer.Name != ev.Player.Nickname) { dPlayer.Name = ev.Player.Nickname; dPlayer.Save(); } if (!dPlayer.IsMuted() && MuteHandler.QueryPersistentMute($"{dPlayer.Id}@{dPlayer.Authentication}")) { MuteHandler.RevokePersistentMute($"{dPlayer.Id}@{dPlayer.Authentication}"); } if (!WatchListCollection.Exists(p => p.Target == ev.Player.GetPlayer())) { return; } foreach (Exiled.API.Features.Player staffer in Exiled.API.Features.Player.List.Where(ply => ply.RemoteAdminAccess)) { staffer.Broadcast(Plugin.Singleton.Config.Translation.WatchlistStaffersBroadcastJoin.Duration, Plugin.Singleton.Config.Translation.WatchlistStaffersBroadcastJoin.Content.Replace("{player}", $"{ev.Player.Nickname} ({ev.Player.UserId})").Replace("{reason}", WatchListCollection.Find(ply => ply.Target == ev.Player.GetPlayer()).Last().Reason), global::Broadcast.BroadcastFlags.Normal, true); } if (dPlayer.IsBanned()) { ev.Player?.Disconnect(Plugin.Singleton.Config.Translation.BanTranslation.PlayerBanMessage.Replace("{reason}", BanCollection.Find(b => b.Target == dPlayer).Last().Reason)); } }
/// <summary> /// Check if exists a specified punish. /// </summary> /// <param name="player">The <see cref="Collections.Player"/> player.</param> /// <param name="type"> the <see cref="Enums.PunishType"/>.</param> /// <param name="id"> the punish id.</param> /// <param name="server"> the server port.</param> /// <returns> true if the punish exists, false if not.</returns> public static bool CheckId(Collections.Player player, PunishType?type, int id, int server) { switch (type) { case PunishType.Ban: return(BanCollection.Exists(ban => ban.Target == player && ban.BanId == id && ban.Server == server)); case PunishType.Kick: return(KickCollection.Exists(kick => kick.Target == player && kick.KickId == id && kick.Server == server)); case PunishType.Mute: return(MuteCollection.Exists(mute => mute.Target == player && mute.MuteId == id && mute.Server == server)); case PunishType.Warn: return(WarnCollection.Exists(warn => warn.Target == player && warn.WarnId == id && warn.Server == server)); case PunishType.SoftWarn: return(SoftWarnCollection.Exists(sw => sw.Target == player && sw.SoftWarnId == id && sw.Server == server)); case PunishType.SoftBan: return(SoftBanCollection.Exists(sb => sb.Target == player && sb.SoftBanId == id && sb.Server == server)); case PunishType.WatchList: return(WatchListCollection.Exists(wl => wl.Target == player && wl.WatchListId == id && wl.Server == server)); default: return(false); } }