private void HandleConnection() { while (true) { if (!Server.IsConnected) { this.Server = new ShootManiaServer(this.Config.ShootMania__IP, this.Config.ShootMania__XML_RPC_Port); if (Server.Connect() == 0) { Console.WriteLine("Connected to server !"); Console.WriteLine("Authentication ..."); if (Server.Authenticate(Config.ShootMania__SuperAdmin_Login, Config.ShootMania__SuperAdmin_Password)) { Console.WriteLine("Authentication success !"); Console.WriteLine("Set API version : " + Settings.ShootManiaApiVersion + " ..."); Server.SetApiVersion(Settings.ShootManiaApiVersion); Console.WriteLine("Ok ..."); Console.WriteLine("Enable callbacks ..."); Server.EnableCallback(); Console.WriteLine("Ok ..."); Console.WriteLine("Register events ..."); Server.Client.EventGbxCallback += HandleEventGbxCallback; Server.OnPlayerConnect += HandleOnPlayerConnect; Server.OnPlayerDisconnect += HandleOnPlayerDisconnect; Console.WriteLine("Ok ..."); Console.WriteLine("Calling OnConnectionSuccessful ..."); if (OnConnectionSuccessful != null) { OnConnectionSuccessful(); } Console.WriteLine("Ok ..."); Server.ChatSendServerMessage("$08F$o[SMAdminTools]$z Connected !"); Console.WriteLine("Everythings is up and running !"); } else { Console.WriteLine("Authentication failed ..."); Server.Disconnect(); } } else { Console.WriteLine("Unable to connect to server " + Config.ShootMania__IP + ":" + Config.ShootMania__XML_RPC_Port + " ..."); } } if (!Server.IsConnected) { Console.WriteLine("Retry in " + Config.ShootMania__ReconnectTimeout + "ms ..."); } Thread.Sleep(Config.ShootMania__ReconnectTimeout); } }
public ServerManager(Config Config) { this.Config = Config; this.Server = new ShootManiaServer(this.Config.ShootMania__IP, this.Config.ShootMania__XML_RPC_Port); }