private void Checker_RequestCompleted(object sender, EventArgs e) { ClientTokenCheck checker = sender as ClientTokenCheck; if (checker == null || checker.Tag as ServerPlayer == null) { return; } ServerPlayer player = checker.Tag as ServerPlayer; Logger.Log3("Token verification returned for " + player.PlayerID.ToString() + ":" + player.Callsign + (checker.OK ? " OK:" : " BAD:") + (checker.NameRegistered ? "REGISTERED" : "UNKNOWN")); if (checker.OK) { player.AuthStatus = ServerPlayer.AuthStatuses.Valid; player.BZID = checker.BZID; player.GroupMemberships = checker.Groups; bool ban = false; string reason = string.Empty; if (CheckIDBan != null) { ban = CheckIDBan(player, ref reason); } if (ban) { PlayerBanned?.Invoke(this, player); SendReject(player, MsgReject.RejectionCodes.RejectIDBanned, reason); } else { SendAccept(player); } } else if (checker.NameRegistered && Config.ProtectRegisteredNames) { SendReject(player, MsgReject.RejectionCodes.RejectBadCallsign, Resources.NameTakenMessagae); } else { if (!Config.AllowAnonUsers) { SendReject(player, MsgReject.RejectionCodes.RejectBadCallsign, Resources.NoUnregMessage); } else { SendAccept(player); } } }
internal void RaiseClientBanned(ulong user, bool banned) { PlayerBanned?.Invoke(user, banned); Torch.Invoke(() => { if (_gameOwnerIds.TryGetValue(user, out ulong owner)) { MyMultiplayer.Static.BanClient(owner, banned); } }); }
public static void InvokePlayerBanned(BanDetails details, BanType type) { PlayerBanned playerBanned = PlayerBannedEvent; if (playerBanned == null) { return; } PlayerBannedEvent ev = new PlayerBannedEvent() { Details = details, Type = type }; PlayerBannedEvent?.Invoke(ev); }