Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 public ServerManager(Config Config)
 {
     this.Config = Config;
     this.Server = new ShootManiaServer(this.Config.ShootMania__IP, this.Config.ShootMania__XML_RPC_Port);
 }