コード例 #1
0
        static void Main(string[] args)
        {
            Player p1 = new ForwardPlayer("zoro");

            p1.Attack();

            Player p2 = new CenterPlayer("luffy");

            p2.Attack();
            p2.Defend();

            Player p3 = new GuardPlayer("robin");

            p3.Attack();

            Player p4 = new AdapterTranslator("姚明");

            p4.Attack();

            Console.ReadLine();
        }
コード例 #2
0
ファイル: PoroServer.cs プロジェクト: Kaotic/Poro
        public async Task <object> HandleAPI(HttpListenerRequest request)
        {
            if (request.RawUrl.StartsWith("/api/users"))
            {
                return(JsonConvert.SerializeObject(_users.GetUserList()));
            }
            else if (request.RawUrl.StartsWith("/api/register"))
            {
                if (request.QueryString == null && request.QueryString.Count != 4)
                {
                    return("400");
                }

                _users.AddUser(new User
                {
                    Username     = request.QueryString["Username"],
                    Password     = request.QueryString["Password"],
                    Region       = request.QueryString["Region"],
                    SummonerName = request.QueryString["Username"]
                });
                return(JsonConvert.SerializeObject(_users.GetUserList()));
            }
            else if (request.RawUrl.StartsWith("/api/delete"))
            {
                if (request.QueryString == null && request.QueryString.Count != 2)
                {
                    return("400");
                }

                User u = _users.GetUser(request.QueryString["Username"], request.QueryString["Region"]);
                _users.RemoveUser(u);

                return(JsonConvert.SerializeObject(_users.GetUserList()));
            }
            else if (request.RawUrl.StartsWith("/api/regions"))
            {
                return(JsonConvert.SerializeObject(Shards.GetStatus()));
            }
            else if (request.RawUrl.StartsWith("/api/login"))
            {
                if (request.QueryString == null && request.QueryString.Count != 2)
                {
                    return("400");
                }

                string Username = request.QueryString["Username"];
                string Region   = request.QueryString["Region"];

                var       ShardList = Shards.GetInstances <BaseShard>();
                BaseShard shard     = null;
                foreach (BaseShard s in ShardList)
                {
                    if (s.Name == Region)
                    {
                        shard = s;
                    }
                }

                User          user      = _users.GetUser(Username, Region);
                ForwardPlayer player    = new ForwardPlayer(user, shard, _context);
                bool          Connected = await player.Connect(user, shard);

                _forwarder.Assign(player);

                Console.WriteLine(string.Format("[LOG] Forwarding to {0} ({1})", Username, Region));

                return(JsonConvert.SerializeObject("OK"));
            }
            else
            {
                return("404");
            }
        }
コード例 #3
0
ファイル: PoroServer.cs プロジェクト: verylet/Poro
        public async Task <object> HandleAPI(HttpListenerRequest request)
        {
            if (request.RawUrl.StartsWith("/api/users"))
            {
                return(JsonConvert.SerializeObject(_users.GetUserList()));
            }
            else if (request.RawUrl.StartsWith("/api/register"))
            {
                if (request.QueryString == null && request.QueryString.Count != 4)
                {
                    return("400");
                }

                _users.AddUser(new User
                {
                    Username     = request.QueryString["Username"],
                    Password     = request.QueryString["Password"],
                    Region       = request.QueryString["Region"],
                    SummonerName = request.QueryString["Username"]
                });
                return(JsonConvert.SerializeObject(_users.GetUserList()));
            }
            else if (request.RawUrl.StartsWith("/api/delete"))
            {
                if (request.QueryString == null && request.QueryString.Count != 2)
                {
                    return("400");
                }

                User u = _users.GetUser(request.QueryString["Username"], request.QueryString["Region"]);
                _users.RemoveUser(u);

                return(JsonConvert.SerializeObject(_users.GetUserList()));
            }
            else if (request.RawUrl.StartsWith("/api/regions"))
            {
                return(JsonConvert.SerializeObject(Shards.GetStatus()));
            }
            else if (request.RawUrl.StartsWith("/api/login"))
            {
                if (request.QueryString == null && request.QueryString.Count != 2)
                {
                    return("400");
                }

                string Username = request.QueryString["Username"];
                string Region   = request.QueryString["Region"];

                var       ShardList = Shards.GetInstances <BaseShard>();
                BaseShard shard     = null;
                foreach (BaseShard s in ShardList)
                {
                    if (s.Name == Region)
                    {
                        shard = s;
                    }
                }

                User          user      = _users.GetUser(Username, Region);
                ForwardPlayer player    = new ForwardPlayer(user, shard, _context);
                bool          Connected = await player.Connect();

                foreach (RtmpClient client in _server.Clients)
                {
                    StoreAccountBalanceNotification notification = new StoreAccountBalanceNotification
                    {
                        IP = player._packet.IpBalance,
                        RP = player._packet.RpBalance
                    };

                    client.InvokeDestReceive("cn-1", "cn-1", "messagingDestination", notification);
                }

                _forwarder.Assign(player);

                Console.WriteLine(string.Format("[LOG] Forwarding to {0} ({1})", Username, Region));

                return(JsonConvert.SerializeObject("OK"));
            }
            else if (request.RawUrl.StartsWith("/api/check"))
            {
                if (_forwarder.Forwarding)
                {
                    return(JsonConvert.SerializeObject(_forwarder._client._user));
                }
                else
                {
                    return(JsonConvert.SerializeObject("Not logged in"));
                }
            }
            else
            {
                return("404");
            }
        }