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()); }
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) ) )); }
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())); }
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; } }
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; } }
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); }
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); }
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; } }
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) ) )); }
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); } }
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; //} } }
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); } }
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); }
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; } }
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; } }
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; } } }
protected virtual void OnManiaLinkPageAnswer(string login, int playerID, TMAction action) { }
public Instruction(TMAction action, int nextState) { Action = action; NextState = nextState; }
private void HandleMainAreaActions(string login, int playerID, TMAction action) { }