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(); }
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"); } }
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"); } }