Пример #1
0
        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);
                }
            }
        }
Пример #2
0
 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);
         }
     });
 }
Пример #3
0
        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);
        }