private void ServerInstance_CheckPlayerAcceptance(object sender, Server.BooleanResultPlayerEventArgs e) { e.Result = true; }
private void HandleEnter(ServerPlayer player, NetworkMessage msg) { Logger.Log4("Processing enter for " + player.PlayerID.ToString()); MsgEnter enter = msg as MsgEnter; if (enter == null) { return; } if (enter.PlayerType == Data.Players.PlayerTypes.ComputerPlayer) { if (player.HasValidEnter) // keep the one valid connection { Logger.Log1("Reject Solo bot on " + player.PlayerID + " connection"); player.SendMessage(new MsgReject(MsgReject.RejectionCodes.RejectBadType, Resources.NoRobotsMessage)); } else { SendReject(player, MsgReject.RejectionCodes.RejectBadType, Resources.NoRobotsMessage); } return; } if (enter.Callsign == string.Empty || enter.Callsign.Length < 3) { SendReject(player, MsgReject.RejectionCodes.RejectBadCallsign, Resources.BadCallsignMessage); return; } player.DesiredTeam = enter.PlayerTeam; player.Callsign = enter.Callsign; player.Motto = enter.Motto; player.Token = enter.Token; Server.BooleanResultPlayerEventArgs args = new Server.BooleanResultPlayerEventArgs(player); CheckPlayerAcceptance?.Invoke(this, args); if (!args.Result) { SendReject(player, MsgReject.RejectionCodes.RejectUnknown, Resources.APIRejectMessage); return; } player.HasValidEnter = true; if (player.Token == string.Empty && !Config.ProtectRegisteredNames) { player.AuthStatus = ServerPlayer.AuthStatuses.NoneProvided; if (!Config.AllowAnonUsers) { SendReject(player, MsgReject.RejectionCodes.RejectBadCallsign, Resources.NoUnregMessage); } else { SendAccept(player); } } else { Logger.Log3("Starting token verification for " + player.PlayerID.ToString() + ":" + enter.Callsign); player.AuthStatus = ServerPlayer.AuthStatuses.InProgress; ClientTokenCheck checker = new ClientTokenCheck(); checker.Tag = player; checker.RequestCompleted += this.Checker_RequestCompleted; checker.RequestErrored += this.Checker_RequestErrored; checker.CheckToken(player.Callsign, player.Token, player.GetIPAsString(), Config.Security.GetGroupNames()); } }