static void Main(string[] args) { ClientToken tok = new ClientToken(); tok.RequestCompleted += RequestCompleted; tok.RequestErrored += RequestErrored; string callsign = "sadfsdfsdf"; string password = "******"; string globalIP = "IP"; Wait = false; tok.GetToken(callsign, password); while (Wait) { Thread.Sleep(10); } if (Error) { Console.WriteLine("Error getting token " + tok.LastError); return; } Console.WriteLine("Got token " + tok.LastToken); Wait = true; ClientTokenCheck chk = new ClientTokenCheck(); chk.RequestCompleted += RequestCompleted; chk.RequestErrored += RequestErrored; List <string> groups = new List <string>(); groups.Add("DEVELOPERS"); groups.Add("Planning.Developers"); groups.Add("A.GROUP.THAT.NEVER.EXISTS"); tok.LastToken = string.Empty; chk.CheckToken(callsign, tok.LastToken, globalIP, groups); while (Wait) { Thread.Sleep(10); } if (Error) { Console.WriteLine("Error getting token " + chk.LastError); return; } Console.WriteLine("Got response OK" + chk.BZID); Console.ReadLine(); }
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()); } }