Exemplo n.º 1
0
        public override void HandlePost(HttpListenerContext ctx, WebUser user, string postData)
        {
            PlayerApiParams p = null;

            if ((p = TryJsonParse <PlayerApiParams>(ctx, postData)) == null)
            {
                return;
            }

            switch (p.Action)
            {
            case "players_update":
                WebAdmin.SendHtml(ctx, ToJson(Core.Players.GetPlayers_s()));
                break;

            case "players_swap":
                WebAdmin.SendHtml(ctx, ToJson(new QuickAdminResponse()));
                Core.Scheduler.PushTask(() => Core.Players.Swap(new Player(p.PlayerId)));
                break;

            case "players_kick":
                WebAdmin.SendHtml(ctx, ToJson(new QuickAdminResponse()));
                Core.Scheduler.PushTask(() => Core.Players.Kick(new Player(p.PlayerId)));
                break;

            case "players_ban":
                WebAdmin.SendHtml(ctx, ToJson(new QuickAdminResponse()));
                Player player;
                if ((player = Core.Players.GetPlayerBySlot(p.PlayerId)) != null)
                {
                    //TODO: figure something out for adminId
                    Core.Database.InsertBan(new PlayerBan(player.Name, player.KeyHash, player.RemoteAddress.ToString(), "WebAdmin", "WebAdmin", p.BanType, player.DatabaseId, 1));
                    Core.Scheduler.PushTask(() => Core.Players.Kick(player));
                }

                break;
            }
        }
Exemplo n.º 2
0
        public override void HandlePost(HttpListenerContext ctx, WebUser user, string postData)
        {
            PlayerApiParams p = null;

            if ((p = TryJsonParse <PlayerApiParams>(ctx, postData)) == null)
            {
                return;
            }

            switch (p.Action)
            {
            case "players_update":
                WebAdmin.SendHtml(ctx, ToJson(Core.Players.GetPlayers_s()));
                break;

            case "players_swap":
                WebServer.LogAudit(user, "swapped slot #{0}", p.PlayerId.ToString());
                WebAdmin.SendHtml(ctx, ToJson(new QuickAdminResponse()));
                Core.Scheduler.PushTask(() => Core.Players.Swap(new Player(p.PlayerId)));
                break;

            case "players_kick":
                WebServer.LogAudit(user, "kicked slot #{0}", p.PlayerId.ToString());
                WebAdmin.SendHtml(ctx, ToJson(new QuickAdminResponse()));
                Core.Scheduler.PushTask(() => Core.Players.Kick(new Player(p.PlayerId)));
                break;

            case "players_ban":
                WebServer.LogAudit(user, "banned slot #{0}", p.PlayerId.ToString());
                WebAdmin.SendHtml(ctx, ToJson(new QuickAdminResponse()));
                Player player;
                if ((player = Core.Players.GetPlayerBySlot(p.PlayerId)) != null)
                {
                    PlayerBan ban;
                    //TODO: figure something out for adminId
                    string adminName = "WebAdmin";
                    string reason    = "WebAdmin";
                    int    adminDBId = 1;

                    if (p.BanDuration < 0)
                    {
                        ban = new PlayerBan(player.Name, player.KeyHash, player.RemoteAddress.ToString(), adminName, reason, p.BanType, player.DatabaseId, adminDBId);
                    }
                    else
                    {
                        TimeSpan duration = new TimeSpan(0, 0, p.BanDuration);
                        ban = new PlayerBan(player.Name, player.KeyHash, player.RemoteAddressStr, adminName, reason, duration, p.BanType, player.DatabaseId, adminDBId);
                    }

                    Core.Database.InsertBan(ban);



                    Core.Scheduler.PushTask(() => Core.Players.Kick(player));
                }



                break;
            }
        }