Beispiel #1
0
        public void OnRegisterClusterRequestSuccesful(RequestSuccesfulEventArgs args)
        {
            LoginConnector.OnClusterRequestSuccesful -= OnRegisterClusterRequestSuccesful;

            if (args.Accepted)
            {
                RegisterNewChannelRequest newChannelRequest = new RegisterNewChannelRequest(args.Id, (string)Config.GetSetting("ClusterAuthorizationPassword"), "SharpFly Channel", 0, 50, LoginConnector.PublisherSocket);
                LoginConnector.OnNewChannelRequestSuccesful += new LoginConnector.RequestSuccesfulHandler(OnRegisterNewChannelSuccesful);

                this.m_PlayerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                this.m_PlayerSocket.Bind(new IPEndPoint(IPAddress.Any, 28000));
                this.m_PlayerSocket.Listen(100);

                PlayerManager = new PlayerManager();

                Thread acceptPlayerThread = new Thread(() => PlayerManager.AcceptPlayers(this.m_PlayerSocket));
                acceptPlayerThread.Start();

                Thread processPlayerThread = new Thread(() => PlayerManager.ProcessPlayers());
                processPlayerThread.Start();

                Console.WriteLine("Cluster request succesful!");
            }
            else
            {
                Console.WriteLine("Cluster request wasn't succesful!");
            }
        }
Beispiel #2
0
        public static void RegisterNewChannel(IncomingInterserverPacket packet)
        {
            RegisterNewChannelRequest request = new RegisterNewChannelRequest(packet);

            SharpFly_Utility_Library.Database.LoginDatabase.Tables.Cluster clusterTable = SharpFly_Utility_Library.Database.LoginDatabase.Queries.Cluster.Instance.GetCluster(request.ClusterId);

            uint    clusterId = request.ClusterId;
            Cluster cluster   = LoginServer.ClusterManager.GetClusterById(clusterId);

            if (clusterTable == null || request.AuthorizationPassword != clusterTable.Password)
            {
                cluster.SendRegisterNewChannelSuccesful(0, request.TempChannelId, false);
                Console.WriteLine("Couldn't register new channel to cluster {1}", cluster.ClusterData.Name);
                return;
            }

            if (cluster != null)
            {
                Channel channel = new Channel();
                channel.Parent         = cluster.ClusterData;
                channel.Id             = ChannelId++;
                channel.Name           = request.Name;
                channel.PlayerCount    = 0;
                channel.MaxPlayerCount = request.MaxPlayerCount;
                cluster.ClusterData.Channels.Add(channel);

                cluster.SendRegisterNewChannelSuccesful(channel.Id, request.TempChannelId, true);
                Console.WriteLine("Registered channel {0} on cluster {1}", channel.Name, cluster.ClusterData.Name);
                return;
            }
            Console.WriteLine("Couldn't register new channel to cluster {1}", cluster.ClusterData.Name);
        }