Esempio n. 1
0
        public string[] GetReplaceParameters(params KeyValuePair <string, byte>[] actionNameValuePairs)
        {
            List <string> commands = new List <string>();

            commands.Add("CloseActionID");
            commands.Add(CloseActionID.ToString(CultureInfo.InvariantCulture));

            commands.Add("FirstPageActionID");
            commands.Add(FirstPageActionID.ToString(CultureInfo.InvariantCulture));

            commands.Add("PrevPageActionID");
            commands.Add(PrevPageActionID.ToString(CultureInfo.InvariantCulture));

            commands.Add("NextPageActionID");
            commands.Add(NextPageActionID.ToString(CultureInfo.InvariantCulture));

            commands.Add("LastPageActionID");
            commands.Add(LastPageActionID.ToString(CultureInfo.InvariantCulture));

            if (actionNameValuePairs != null)
            {
                foreach (KeyValuePair <string, byte> nameValuePair in actionNameValuePairs)
                {
                    commands.Add(nameValuePair.Key);
                    commands.Add(TMAction.CalculateActionID(PluginID, AreaID, nameValuePair.Value).ToString(CultureInfo.InvariantCulture));
                }
            }

            return(commands.ToArray());
        }
Esempio n. 2
0
        private XElement GetLivePlayerListPlayerElement(PlayerListEntry playerEntry, double currentY, byte rowIndex, IList <LivePlayerListRowAction?> actions)
        {
            const byte livePlayerAreaID = (byte)Area.LivePlayersArea;

            return(XElement.Parse
                   (
                       FormatMessage
                       (
                           LivePlayerSettings.EntryTemplate,
                           "Y", currentY.ToString(CultureInfo.InvariantCulture),
                           "Position", playerEntry.Position.ToString(CultureInfo.InvariantCulture),
                           "Nickname", SecurityElement.Escape(playerEntry.Nickname ?? "[" + playerEntry.Login + "]"),
                           "Login", SecurityElement.Escape(playerEntry.Login),

                           "IgnoreText", actions[1] == LivePlayerListRowAction.IgnorePlayer ? LivePlayerSettings.IgnoreText : LivePlayerSettings.UnIgnoreText,
                           "BanText", actions[3] == LivePlayerListRowAction.BanPlayer ? LivePlayerSettings.BanText : LivePlayerSettings.UnBanText,
                           "BlackListText", actions[4] == LivePlayerListRowAction.BlackListPlayer ? LivePlayerSettings.AddToBlackListText : LivePlayerSettings.RemoveFromBlackListText,
                           "GuestText", actions[5] == LivePlayerListRowAction.AddGuest ? LivePlayerSettings.AddGuestText : LivePlayerSettings.RemoveGuestText,
                           "SpectatorText", actions[6] == LivePlayerListRowAction.ForceSpectator ? LivePlayerSettings.ForceSpectatorText : LivePlayerSettings.SpectatorText,

                           "WarnAction", TMAction.CalculateActionID(ID, livePlayerAreaID, rowIndex, (byte)actions[0]).ToString(CultureInfo.InvariantCulture),
                           "IgnoreAction", TMAction.CalculateActionID(ID, livePlayerAreaID, rowIndex, (byte)actions[1]).ToString(CultureInfo.InvariantCulture),
                           "KickAction", TMAction.CalculateActionID(ID, livePlayerAreaID, rowIndex, (byte)actions[2]).ToString(CultureInfo.InvariantCulture),
                           "BanAction", TMAction.CalculateActionID(ID, livePlayerAreaID, rowIndex, (byte)actions[3]).ToString(CultureInfo.InvariantCulture),
                           "BlackListAction", TMAction.CalculateActionID(ID, livePlayerAreaID, rowIndex, (byte)actions[4]).ToString(CultureInfo.InvariantCulture),
                           "GuestAction", TMAction.CalculateActionID(ID, livePlayerAreaID, rowIndex, (byte)actions[5]).ToString(CultureInfo.InvariantCulture),
                           "SpectatorAction", actions[6] == null ? "-" : TMAction.CalculateActionID(ID, livePlayerAreaID, rowIndex, (byte)actions[6]).ToString(CultureInfo.InvariantCulture)
                       )
                   ));
        }
Esempio n. 3
0
        private string GetOwnVoteManiaLinkPageContent(double?voteValue)
        {
            if (!voteValue.HasValue)
            {
                voteValue = -1;
            }

            List <string> replaceValues = new List <string> {
                "ManiaLinkID", _ownVoteRatingManiaLinkPageID
            };

            for (int i = 0; i < 9; i++)
            {
                replaceValues.Add(i.ToString());
                replaceValues.Add(i <= voteValue ? Settings.ActiveVoteStyle : Settings.InactiveVoteStyle);
            }

            const byte areaID = (byte)RatingArea.MainArea;

            for (int i = 0; i < 9; i++)
            {
                replaceValues.Add("A" + i);
                replaceValues.Add(TMAction.CalculateActionID(ID, areaID, Convert.ToByte(i + 1)).ToString());
            }

            return(ReplaceMessagePlaceHolders(Settings.OwnVoteTemplate, replaceValues.ToArray()));
        }
Esempio n. 4
0
        protected override void OnManiaLinkPageAnswer(string login, int playerID, TMAction action)
        {
            switch ((Area)action.AreaID)
            {
            case Area.MainArea:
                HandleMainAreaActions(login, playerID, action);
                break;

            case Area.GuestListArea:
                HandleGuestListAreaActions(login, action);
                break;

            case Area.IgnoreListArea:
                HandleIgnoreListAreaActions(login, action);
                break;

            case Area.BanListArea:
                HandleBanListAreaActions(login, action);
                break;

            case Area.BlackListArea:
                HandleBlackListAreaActions(login, action);
                break;

            case Area.LivePlayersArea:
                HandleLivePlayersAreaActions(login, action);
                break;
            }
        }
Esempio n. 5
0
        protected override void OnManiaLinkPageAnswer(string login, int playerID, TMAction action)
        {
            Area area = (Area)action.AreaID;

            switch (area)
            {
            case Area.TopSums:
                HandleTopSumsManiaLinkResponse(login, playerID, action);
                break;
            }
        }
Esempio n. 6
0
        public PagedDialogActions(ushort pluginID, byte areaID, byte closeAction, byte firstPageAction, byte prevPageAction, byte nextPageAction, byte lastPageAction)
        {
            PluginID = pluginID;
            AreaID   = areaID;

            CloseActionID     = TMAction.CalculateActionID(pluginID, areaID, closeAction);
            FirstPageActionID = TMAction.CalculateActionID(pluginID, areaID, firstPageAction);
            PrevPageActionID  = TMAction.CalculateActionID(pluginID, areaID, prevPageAction);
            NextPageActionID  = TMAction.CalculateActionID(pluginID, areaID, nextPageAction);
            LastPageActionID  = TMAction.CalculateActionID(pluginID, areaID, lastPageAction);
        }
Esempio n. 7
0
        public void TestAreaAction()
        {
            TMAction action       = new TMAction(2, 3, 4);
            uint     actionID     = action.ToCalculatedActionID();
            TMAction parsedAction = TMAction.Parse(actionID);

            Assert.AreEqual(action.AreaActionID, parsedAction.AreaActionID);
            Assert.AreEqual(action.AreaID, parsedAction.AreaID);
            Assert.AreEqual(action.PluginID, parsedAction.PluginID);
            Assert.AreEqual(action.RowActionID, parsedAction.RowActionID);
            Assert.AreEqual(action.RowIndex, parsedAction.RowIndex);
        }
Esempio n. 8
0
        protected override void OnManiaLinkPageAnswer(string login, int playerID, TMAction action)
        {
            switch ((Area)action.AreaID)
            {
            case Area.Main:
                HandleMainAreaActions(login, playerID, action);
                break;

            case Area.HelpList:
                HandleHelpListAreaActions(login, action);
                break;
            }
        }
Esempio n. 9
0
 private XElement GetBanListPlayerElement(PlayerListEntry playerEntry, double currentY, byte rowIndex)
 {
     return(XElement.Parse
            (
                FormatMessage
                (
                    BanListSettings.EntryTemplate,
                    "Y", currentY.ToString(CultureInfo.InvariantCulture),
                    "Position", playerEntry.Position.ToString(CultureInfo.InvariantCulture),
                    "Nickname", SecurityElement.Escape(playerEntry.Nickname ?? "[" + playerEntry.Login + "]"),
                    "Login", SecurityElement.Escape(playerEntry.Login),
                    "RemoveActionID", TMAction.CalculateActionID(ID, (byte)Area.BanListArea, rowIndex, (byte)BanListRowAction.RemovePlayer).ToString(CultureInfo.InvariantCulture)
                )
            ));
 }
Esempio n. 10
0
        protected override void OnManiaLinkPageAnswer(string login, int playerID, TMAction action)
        {
            if (!action.IsAreaAction || action.AreaID != (byte)RatingArea.MainArea)
            {
                return;
            }

            byte ownVoteValue = Convert.ToByte(action.AreaActionID - 1);

            Pair <double?, int> voteInfo = HostPlugin.RatingAdapter.Vote(login, HostPlugin.CurrentChallengeID, ownVoteValue);
            double?averageVote           = voteInfo.Value1;

            if (averageVote.HasValue)
            {
                OnPlayerVoted(login, ownVoteValue, averageVote.Value, voteInfo.Value2);
            }
        }
Esempio n. 11
0
        private void HandleHelpListAreaActions(string login, TMAction areaAction)
        {
            if (areaAction.IsAreaAction)
            {
                PagedDialogActions.DefaultDialogAction action = (PagedDialogActions.DefaultDialogAction)areaAction.AreaActionID;

                switch (action)
                {
                case PagedDialogActions.DefaultDialogAction.CloseDialog:
                    GetPluginSettings(login).AreaSettings.Reset((byte)Area.HelpList);
                    SendEmptyManiaLinkPageToLogin(login, HELP_LIST_PANEL_ID);
                    break;

                case PagedDialogActions.DefaultDialogAction.FirstPage:
                    SendHelpListPageToLogin(login, 0);
                    break;

                case PagedDialogActions.DefaultDialogAction.PrevPage:
                    ushort prevPageIndex = Convert.ToUInt16(Math.Max(0, GetAreaSettings(login, (byte)Area.HelpList).CurrentDialogPageIndex - 1));
                    SendHelpListPageToLogin(login, prevPageIndex);
                    break;

                case PagedDialogActions.DefaultDialogAction.NextPage:

                    ushort nextPageIndex = Convert.ToUInt16(GetAreaSettings(login, (byte)Area.HelpList).CurrentDialogPageIndex + 1);
                    SendHelpListPageToLogin(login, nextPageIndex);
                    break;

                case PagedDialogActions.DefaultDialogAction.LastPage:
                    SendHelpListPageToLogin(login, null);
                    break;
                }
            }
            else
            {
                //GuestListRowAction action = (GuestListRowAction)areaAction.RowActionID;

                //switch (action)
                //{
                //    case GuestListRowAction.RemovePlayer:
                //        RemoveGuestListPlayer(login, areaAction.RowIndex);
                //        break;
                //}
            }
        }
Esempio n. 12
0
        private void Callbacks_PlayerManialinkPageAnswer(object sender, Communication.EventArguments.Callbacks.PlayerManialinkPageAnswerEventArgs e)
        {
            if (e.Answer < 0)
            {
                return;
            }

            TMAction action = TMAction.Parse(Convert.ToUInt32(e.Answer));

            if (action == null)
            {
                return;
            }

            if (action.PluginID == ID)
            {
                OnManiaLinkPageAnswer(e.Login, e.PlayerID, action);
            }
        }
Esempio n. 13
0
        private string GetAdminPlayerManiaLinkPage()
        {
            string result = ReplaceMessagePlaceHolders
                            (
                UITemplates.PlayerTemplate,
                "ManiaLinkID", PLAYER_PANEL_ID,
                MainAreaAction.RestartTrackImmediately.ToString(), TMAction.CalculateActionID(ID, (int)Area.MainArea, (int)MainAreaAction.RestartTrackImmediately).ToString(),
                MainAreaAction.KickSpectators.ToString(), TMAction.CalculateActionID(ID, (int)Area.MainArea, (int)MainAreaAction.KickSpectators).ToString(),
                MainAreaAction.SwitchToNextTrack.ToString(), TMAction.CalculateActionID(ID, (int)Area.MainArea, (int)MainAreaAction.SwitchToNextTrack).ToString(),
                MainAreaAction.ShowLivePlayerList.ToString(), TMAction.CalculateActionID(ID, (int)Area.MainArea, (int)MainAreaAction.ShowLivePlayerList).ToString(),
                MainAreaAction.ShowGuestList.ToString(), TMAction.CalculateActionID(ID, (int)Area.MainArea, (int)MainAreaAction.ShowGuestList).ToString(),
                MainAreaAction.ShowIgnoreList.ToString(), TMAction.CalculateActionID(ID, (int)Area.MainArea, (int)MainAreaAction.ShowIgnoreList).ToString(),
                MainAreaAction.ShowBanList.ToString(), TMAction.CalculateActionID(ID, (int)Area.MainArea, (int)MainAreaAction.ShowBanList).ToString(),
                MainAreaAction.ShowBlackList.ToString(), TMAction.CalculateActionID(ID, (int)Area.MainArea, (int)MainAreaAction.ShowBlackList).ToString(),
                MainAreaAction.KickMySpectators.ToString(), TMAction.CalculateActionID(ID, (int)Area.MainArea, (int)MainAreaAction.KickMySpectators).ToString()
                            );

            return(result);
        }
Esempio n. 14
0
        private void HandleMainAreaActions(string login, int playerID, TMAction areaAction)
        {
            MainAreaAction action = (MainAreaAction)areaAction.AreaActionID;

            switch (action)
            {
            case MainAreaAction.KickSpectators:
                Context.CorePlugin.KickAllSpectators(login);
                break;

            case MainAreaAction.RestartTrackImmediately:
                RestartTrackImmediately(login);
                break;

            case MainAreaAction.SwitchToNextTrack:
                SwitchToNextMap(login);
                break;

            case MainAreaAction.ShowLivePlayerList:
                SendLivePlayerListPageToLogin(login, 0);
                break;

            case MainAreaAction.ShowGuestList:
                SendGuestListPageToLogin(login, 0);
                break;

            case MainAreaAction.ShowIgnoreList:
                SendIgnoreListPageToLogin(login, 0);
                break;

            case MainAreaAction.ShowBanList:
                SendBanListPageToLogin(login, 0);
                break;

            case MainAreaAction.ShowBlackList:
                SendBlackListPageToLogin(login, 0);
                break;

            case MainAreaAction.KickMySpectators:
                Context.CorePlugin.KickSpectatorsOf(login, playerID);
                break;
            }
        }
Esempio n. 15
0
        private void HandleTopSumsManiaLinkResponse(string login, int playerID, TMAction action)
        {
            if (!action.IsAreaAction)
            {
                return;
            }

            PagedDialogActions.DefaultDialogAction dialogAction = (PagedDialogActions.DefaultDialogAction)action.AreaActionID;

            switch (dialogAction)
            {
            case PagedDialogActions.DefaultDialogAction.CloseDialog:
                GetPluginSettings(login).AreaSettings.Reset((byte)Area.TopSums);
                SendEmptyManiaLinkPageToLogin(login, _topSumsManiaLinkPageID);
                break;

            case PagedDialogActions.DefaultDialogAction.FirstPage:
                SendTopSumsPageToLogin(login, 0);
                break;

            case PagedDialogActions.DefaultDialogAction.PrevPage:
                ushort prevPageIndex = Convert.ToUInt16(Math.Max(0, GetAreaSettings(login, (byte)Area.TopSums).CurrentDialogPageIndex - 1));
                SendTopSumsPageToLogin(login, prevPageIndex);
                break;

            case PagedDialogActions.DefaultDialogAction.NextPage:
                ushort nextPageIndex = Convert.ToUInt16(GetAreaSettings(login, (byte)Area.TopSums).CurrentDialogPageIndex + 1);
                SendTopSumsPageToLogin(login, nextPageIndex);
                break;

            case PagedDialogActions.DefaultDialogAction.LastPage:
                uint   topRanksCount = HostPlugin.RankingAdapter.GetTopRankingsCount();
                ushort lastPageIndex = Convert.ToUInt16(Math.Max(0, Math.Ceiling((double)topRanksCount / TopSumsSettings.MaxEntriesPerPage) - 1));
                SendTopSumsPageToLogin(login, lastPageIndex);
                break;
            }
        }
Esempio n. 16
0
        private void HandleLivePlayersAreaActions(string login, TMAction areaAction)
        {
            if (areaAction.IsAreaAction)
            {
                PagedDialogActions.DefaultDialogAction action = (PagedDialogActions.DefaultDialogAction)areaAction.AreaActionID;

                switch (action)
                {
                case PagedDialogActions.DefaultDialogAction.CloseDialog:
                    GetPluginSettings(login).AreaSettings.Reset((byte)Area.LivePlayersArea);
                    SendEmptyManiaLinkPageToLogin(login, LIVEPLAYERLIST_PANEL_ID);
                    break;

                case PagedDialogActions.DefaultDialogAction.FirstPage:
                    SendLivePlayerListPageToLogin(login, 0);
                    break;

                case PagedDialogActions.DefaultDialogAction.PrevPage:
                    ushort prevPageIndex = Convert.ToUInt16(Math.Max(0, GetAreaSettings(login, (byte)Area.LivePlayersArea).CurrentDialogPageIndex - 1));
                    SendLivePlayerListPageToLogin(login, prevPageIndex);
                    break;

                case PagedDialogActions.DefaultDialogAction.NextPage:
                    ushort nextPageIndex = Convert.ToUInt16(GetAreaSettings(login, (byte)Area.LivePlayersArea).CurrentDialogPageIndex + 1);
                    SendLivePlayerListPageToLogin(login, nextPageIndex);
                    break;

                case PagedDialogActions.DefaultDialogAction.LastPage:
                    SendLivePlayerListPageToLogin(login, null);
                    break;
                }
            }
            else
            {
                LivePlayerListRowAction action = (LivePlayerListRowAction)areaAction.RowActionID;

                switch (action)
                {
                case LivePlayerListRowAction.WarnPlayer:
                    LivePlayerList_WarnPlayer(login, areaAction.RowIndex);
                    break;

                case LivePlayerListRowAction.KickPlayer:
                    LivePlayerList_KickPlayer(login, areaAction.RowIndex);
                    break;

                case LivePlayerListRowAction.IgnorePlayer:
                    LivePlayerList_IgnorePlayer(login, areaAction.RowIndex);
                    break;

                case LivePlayerListRowAction.UnIgnorePlayer:
                    LivePlayerList_UnIgnorePlayer(login, areaAction.RowIndex);
                    break;

                case LivePlayerListRowAction.BanPlayer:
                    LivePlayerList_AddBannedPlayer(login, areaAction.RowIndex);
                    break;

                case LivePlayerListRowAction.UnBanPlayer:
                    LivePlayerList_RemoveBannedPlayer(login, areaAction.RowIndex);
                    break;

                case LivePlayerListRowAction.BlackListPlayer:
                    LivePlayerList_AddBlackListPlayer(login, areaAction.RowIndex);
                    break;

                case LivePlayerListRowAction.UnBlackListPlayer:
                    LivePlayerList_RemoveBlackListPlayer(login, areaAction.RowIndex);
                    break;

                case LivePlayerListRowAction.AddGuest:
                    LivePlayerList_AddGuestPlayer(login, areaAction.RowIndex);
                    break;

                case LivePlayerListRowAction.RemoveGuest:
                    LivePlayerList_RemoveGuestPlayer(login, areaAction.RowIndex);
                    break;

                case LivePlayerListRowAction.ForceSpectator:
                    LivePlayerList_ForceSpectatorPlayer(login, areaAction.RowIndex);
                    break;
                }
            }
        }
Esempio n. 17
0
 protected virtual void OnManiaLinkPageAnswer(string login, int playerID, TMAction action)
 {
 }
Esempio n. 18
0
 public Instruction(TMAction action, int nextState)
 {
     Action    = action;
     NextState = nextState;
 }
Esempio n. 19
0
 private void HandleMainAreaActions(string login, int playerID, TMAction action)
 {
 }