private async void PlayButton_Click(object sender, RoutedEventArgs e)
        {
            this.PlayButton.Visibility = Visibility.Collapsed;
            this.StopButton.Visibility = Visibility.Visible;

            this.EditButton.IsEnabled   = false;
            this.DeleteButton.IsEnabled = false;
            this.EnableDisableToggleSwitch.IsEnabled = false;

            CommandBase command = this.GetCommandFromCommandButtons <CommandBase>(this);

            if (command != null)
            {
                await command.PerformAndWait(ChannelSession.GetCurrentUser(), new List <string>() { "@" + ChannelSession.GetCurrentUser().UserName });

                if (command is PermissionsCommandBase)
                {
                    PermissionsCommandBase permissionCommand = (PermissionsCommandBase)command;
                    permissionCommand.ResetCooldown(ChannelSession.GetCurrentUser());
                }
                this.SwitchToPlay();
            }

            this.RaiseEvent(new RoutedEventArgs(CommandButtonsControl.PlayClickedEvent, this));
        }
Example #2
0
        private async void PlayButton_Click(object sender, RoutedEventArgs e)
        {
            this.PlayButton.Visibility = Visibility.Collapsed;
            this.StopButton.Visibility = Visibility.Visible;

            this.EditButton.IsEnabled   = false;
            this.DeleteButton.IsEnabled = false;
            this.EnableDisableToggleSwitch.IsEnabled = false;

            CommandBase command = this.GetCommandFromCommandButtons <CommandBase>(this);

            if (command != null)
            {
                UserViewModel currentUser = await ChannelSession.GetCurrentUser();

                Dictionary <string, string> extraSpecialIdentifiers = new Dictionary <string, string>();
                if (command is EventCommand)
                {
                    EventCommand eventCommand = command as EventCommand;
                    switch (eventCommand.EventType)
                    {
                    case Mixer.Base.Clients.ConstellationEventTypeEnum.channel__id__hosted:
                        extraSpecialIdentifiers["hostviewercount"] = "123";
                        break;

                    case Mixer.Base.Clients.ConstellationEventTypeEnum.channel__id__resubscribed:
                        extraSpecialIdentifiers["usersubmonths"] = "5";
                        break;
                    }

                    switch (eventCommand.OtherEventType)
                    {
                    case OtherEventTypeEnum.GameWispSubscribed:
                    case OtherEventTypeEnum.GameWispResubscribed:
                        extraSpecialIdentifiers["subscribemonths"] = "999";
                        extraSpecialIdentifiers["subscribetier"]   = "Test Tier";
                        extraSpecialIdentifiers["subscribeamount"] = "$12.34";
                        break;

                    case OtherEventTypeEnum.StreamlabsDonation:
                    case OtherEventTypeEnum.GawkBoxDonation:
                    case OtherEventTypeEnum.TiltifyDonation:
                    case OtherEventTypeEnum.ExtraLifeDonation:
                    case OtherEventTypeEnum.TipeeeStreamDonation:
                    case OtherEventTypeEnum.TreatStreamDonation:
                    case OtherEventTypeEnum.StreamJarDonation:
                        UserDonationModel donation = new UserDonationModel()
                        {
                            Amount    = 12.34,
                            Message   = "Test donation message",
                            ImageLink = currentUser.AvatarLink
                        };

                        switch (eventCommand.OtherEventType)
                        {
                        case OtherEventTypeEnum.StreamlabsDonation: donation.Source = UserDonationSourceEnum.Streamlabs; break;

                        case OtherEventTypeEnum.GawkBoxDonation: donation.Source = UserDonationSourceEnum.GawkBox; break;

                        case OtherEventTypeEnum.TiltifyDonation: donation.Source = UserDonationSourceEnum.Tiltify; break;

                        case OtherEventTypeEnum.ExtraLifeDonation: donation.Source = UserDonationSourceEnum.ExtraLife; break;

                        case OtherEventTypeEnum.TipeeeStreamDonation: donation.Source = UserDonationSourceEnum.TipeeeStream; break;

                        case OtherEventTypeEnum.TreatStreamDonation: donation.Source = UserDonationSourceEnum.TreatStream; break;

                        case OtherEventTypeEnum.StreamJarDonation: donation.Source = UserDonationSourceEnum.StreamJar; break;
                        }

                        foreach (var kvp in donation.GetSpecialIdentifiers())
                        {
                            extraSpecialIdentifiers[kvp.Key] = kvp.Value;
                        }
                        extraSpecialIdentifiers["donationtype"] = "Pizza";
                        break;

                    case OtherEventTypeEnum.PatreonSubscribed:
                        extraSpecialIdentifiers[SpecialIdentifierStringBuilder.PatreonTierNameSpecialIdentifier]   = "Super Tier";
                        extraSpecialIdentifiers[SpecialIdentifierStringBuilder.PatreonTierAmountSpecialIdentifier] = "12.34";
                        extraSpecialIdentifiers[SpecialIdentifierStringBuilder.PatreonTierImageSpecialIdentifier]  = "https://xforgeassets002.xboxlive.com/xuid-2535473787585366-public/b7a1d715-3a9e-4bdd-a030-32f9e2e0f51e/0013_lots-o-stars_256.png";
                        break;

                    case OtherEventTypeEnum.TwitterStreamTweetRetweet:
                        break;

                    case OtherEventTypeEnum.MixerSkillUsed:
                        extraSpecialIdentifiers["skillname"]     = "Lots of stars";
                        extraSpecialIdentifiers["skilltype"]     = EnumHelper.GetEnumName(SkillTypeEnum.Sticker);
                        extraSpecialIdentifiers["skillcosttype"] = "Embers";
                        extraSpecialIdentifiers["skillcost"]     = "50";
                        extraSpecialIdentifiers["skillimage"]    = "https://xforgeassets002.xboxlive.com/xuid-2535473787585366-public/b7a1d715-3a9e-4bdd-a030-32f9e2e0f51e/0013_lots-o-stars_256.png";
                        extraSpecialIdentifiers["skillissparks"] = false.ToString();
                        extraSpecialIdentifiers["skillisembers"] = true.ToString();
                        extraSpecialIdentifiers["skillmessage"]  = "Hello World!";
                        break;

                    case OtherEventTypeEnum.MixerMilestoneReached:
                        extraSpecialIdentifiers["milestoneamount"]               = "100";
                        extraSpecialIdentifiers["milestoneremainingamount"]      = "100";
                        extraSpecialIdentifiers["milestonereward"]               = "$10.00";
                        extraSpecialIdentifiers["milestonenextamount"]           = "100";
                        extraSpecialIdentifiers["milestonenextremainingamount"]  = "100";
                        extraSpecialIdentifiers["milestonenextreward"]           = "$10.00";
                        extraSpecialIdentifiers["milestonefinalamount"]          = "100";
                        extraSpecialIdentifiers["milestonefinalremainingamount"] = "100";
                        extraSpecialIdentifiers["milestonefinalreward"]          = "$10.00";
                        extraSpecialIdentifiers["milestoneearnedamount"]         = "100";
                        extraSpecialIdentifiers["milestoneearnedreward"]         = "$10.00";
                        break;

                    case OtherEventTypeEnum.MixerSparksUsed:
                        extraSpecialIdentifiers["sparkamount"] = "10";
                        break;

                    case OtherEventTypeEnum.MixerEmbersUsed:
                        extraSpecialIdentifiers["emberamount"] = "10";
                        break;
                    }
                }
                else if (command is InteractiveCommand)
                {
                    InteractiveCommand iCommand = (InteractiveCommand)command;

                    extraSpecialIdentifiers["mixplaycontrolid"]   = iCommand.Name;
                    extraSpecialIdentifiers["mixplaycontrolcost"] = "123";
                }
                else if (command is CustomCommand)
                {
                    if (command.Name.Equals(InventoryWindow.ItemsBoughtCommandName) || command.Name.Equals(InventoryWindow.ItemsSoldCommandName))
                    {
                        extraSpecialIdentifiers["itemtotal"]    = "5";
                        extraSpecialIdentifiers["itemname"]     = "Chocolate Bars";
                        extraSpecialIdentifiers["itemcost"]     = "500";
                        extraSpecialIdentifiers["currencyname"] = "CURRENCY_NAME";
                    }
                }

                await command.PerformAndWait(currentUser, new List <string>() { "@" + currentUser.UserName }, extraSpecialIdentifiers);

                if (command is PermissionsCommandBase)
                {
                    PermissionsCommandBase permissionCommand = (PermissionsCommandBase)command;
                    permissionCommand.ResetCooldown(await ChannelSession.GetCurrentUser());
                }
                this.SwitchToPlay();
            }

            this.RaiseEvent(new RoutedEventArgs(CommandButtonsControl.PlayClickedEvent, this));
        }
        public static async Task TestCommand(CommandBase command)
        {
            if (command != null)
            {
                UserViewModel currentUser = ChannelSession.GetCurrentUser();

                Dictionary <string, string> extraSpecialIdentifiers = new Dictionary <string, string>();
                if (command is EventCommand)
                {
                    EventCommand eventCommand = command as EventCommand;
                    switch (eventCommand.EventCommandType)
                    {
                    case EventTypeEnum.TwitchChannelHosted:
                    case EventTypeEnum.TwitchChannelRaided:
                        extraSpecialIdentifiers["hostviewercount"] = "123";
                        extraSpecialIdentifiers["raidviewercount"] = "123";
                        break;

                    case EventTypeEnum.TwitchChannelSubscribed:
                        extraSpecialIdentifiers["message"]         = "Test Message";
                        extraSpecialIdentifiers["usersubplanname"] = "Plan Name";
                        extraSpecialIdentifiers["usersubplan"]     = "Tier 1";
                        break;

                    case EventTypeEnum.TwitchChannelResubscribed:
                        extraSpecialIdentifiers["message"]         = "Test Message";
                        extraSpecialIdentifiers["usersubplanname"] = "Plan Name";
                        extraSpecialIdentifiers["usersubplan"]     = "Tier 1";
                        extraSpecialIdentifiers["usersubmonths"]   = "5";
                        extraSpecialIdentifiers["usersubstreak"]   = "3";
                        break;

                    case EventTypeEnum.TwitchChannelSubscriptionGifted:
                        extraSpecialIdentifiers["usersubplanname"]     = "Plan Name";
                        extraSpecialIdentifiers["usersubplan"]         = "Tier 1";
                        extraSpecialIdentifiers["usersubmonthsgifted"] = "3";
                        extraSpecialIdentifiers["isanonymous"]         = "false";
                        break;

                    case EventTypeEnum.TwitchChannelMassSubscriptionsGifted:
                        extraSpecialIdentifiers["subsgiftedamount"]         = "5";
                        extraSpecialIdentifiers["subsgiftedlifetimeamount"] = "100";
                        extraSpecialIdentifiers["usersubplan"] = "Tier 1";
                        extraSpecialIdentifiers["isanonymous"] = "false";
                        break;

                    case EventTypeEnum.TwitchChannelBitsCheered:
                        extraSpecialIdentifiers["bitsamount"] = "10";
                        extraSpecialIdentifiers["Message"]    = "Test Message";
                        break;

                    case EventTypeEnum.TwitchChannelPointsRedeemed:
                        extraSpecialIdentifiers["rewardname"] = "Test Reward";
                        extraSpecialIdentifiers["rewardcost"] = "100";
                        extraSpecialIdentifiers["message"]    = "Test Message";
                        break;

                    case EventTypeEnum.ChatUserTimeout:
                        extraSpecialIdentifiers["timeoutlength"] = "5m";
                        break;

                    case EventTypeEnum.StreamlabsDonation:
                    case EventTypeEnum.TiltifyDonation:
                    case EventTypeEnum.ExtraLifeDonation:
                    case EventTypeEnum.TipeeeStreamDonation:
                    case EventTypeEnum.TreatStreamDonation:
                    case EventTypeEnum.StreamJarDonation:
                    case EventTypeEnum.JustGivingDonation:
                    case EventTypeEnum.StreamElementsDonation:
                        UserDonationModel donation = new UserDonationModel()
                        {
                            Amount    = 12.34,
                            Message   = "Test donation message",
                            ImageLink = currentUser.AvatarLink
                        };

                        switch (eventCommand.EventCommandType)
                        {
                        case EventTypeEnum.StreamlabsDonation: donation.Source = UserDonationSourceEnum.Streamlabs; break;

                        case EventTypeEnum.TiltifyDonation: donation.Source = UserDonationSourceEnum.Tiltify; break;

                        case EventTypeEnum.ExtraLifeDonation: donation.Source = UserDonationSourceEnum.ExtraLife; break;

                        case EventTypeEnum.TipeeeStreamDonation: donation.Source = UserDonationSourceEnum.TipeeeStream; break;

                        case EventTypeEnum.TreatStreamDonation: donation.Source = UserDonationSourceEnum.TreatStream; break;

                        case EventTypeEnum.StreamJarDonation: donation.Source = UserDonationSourceEnum.StreamJar; break;

                        case EventTypeEnum.JustGivingDonation: donation.Source = UserDonationSourceEnum.JustGiving; break;

                        case EventTypeEnum.StreamElementsDonation: donation.Source = UserDonationSourceEnum.StreamElements; break;
                        }

                        foreach (var kvp in donation.GetSpecialIdentifiers())
                        {
                            extraSpecialIdentifiers[kvp.Key] = kvp.Value;
                        }
                        extraSpecialIdentifiers["donationtype"] = "Pizza";
                        break;

                    case EventTypeEnum.PatreonSubscribed:
                        extraSpecialIdentifiers[SpecialIdentifierStringBuilder.PatreonTierNameSpecialIdentifier]   = "Super Tier";
                        extraSpecialIdentifiers[SpecialIdentifierStringBuilder.PatreonTierAmountSpecialIdentifier] = "12.34";
                        extraSpecialIdentifiers[SpecialIdentifierStringBuilder.PatreonTierImageSpecialIdentifier]  = "https://xforgeassets002.xboxlive.com/xuid-2535473787585366-public/b7a1d715-3a9e-4bdd-a030-32f9e2e0f51e/0013_lots-o-stars_256.png";
                        break;

                    case EventTypeEnum.StreamlootsCardRedeemed:
                        extraSpecialIdentifiers["streamlootscardname"]  = "Test Card";
                        extraSpecialIdentifiers["streamlootscardimage"] = "https://res.cloudinary.com/streamloots/image/upload/f_auto,c_scale,w_250,q_90/static/e19c7bf6-ca3e-49a8-807e-b2e9a1a47524/en_dl_character.png";
                        extraSpecialIdentifiers["streamlootscardvideo"] = "https://cdn.streamloots.com/uploads/5c645b78666f31002f2979d1/3a6bf1dc-7d61-4f93-be0a-f5dc1d0d33b6.webm";
                        extraSpecialIdentifiers["streamlootscardsound"] = "https://static.streamloots.com/b355d1ef-d931-4c16-a48f-8bed0076401b/alerts/default.mp3";
                        extraSpecialIdentifiers["streamlootsmessage"]   = "Test Message";
                        break;

                    case EventTypeEnum.StreamlootsPackPurchased:
                    case EventTypeEnum.StreamlootsPackGifted:
                        extraSpecialIdentifiers["streamlootspurchasequantity"] = "1";
                        break;
                    }
                }
                else if (command is CustomCommand)
                {
                    if (command.Name.Equals(InventoryWindowViewModel.ItemsBoughtCommandName) || command.Name.Equals(InventoryWindowViewModel.ItemsSoldCommandName))
                    {
                        extraSpecialIdentifiers["itemtotal"]    = "5";
                        extraSpecialIdentifiers["itemname"]     = "Chocolate Bars";
                        extraSpecialIdentifiers["itemcost"]     = "500";
                        extraSpecialIdentifiers["currencyname"] = "CURRENCY_NAME";
                    }
                    else if (command.Name.Contains("Moderation Strike"))
                    {
                        extraSpecialIdentifiers[ModerationService.ModerationReasonSpecialIdentifier] = "Bad Stuff";
                    }
                    else if (command.Name.Equals(RedemptionStorePurchaseModel.ManualRedemptionNeededCommandName) || command.Name.Equals(RedemptionStorePurchaseModel.DefaultRedemptionCommandName))
                    {
                        extraSpecialIdentifiers[RedemptionStoreProductModel.ProductNameSpecialIdentifier] = "Test Product";
                    }
                    else
                    {
                        extraSpecialIdentifiers["queueposition"] = "1";
                    }
                }

                await command.PerformAndWait(currentUser, StreamingPlatformTypeEnum.None, new List <string>() { "@" + currentUser.Username }, extraSpecialIdentifiers);

                if (command is PermissionsCommandBase)
                {
                    PermissionsCommandBase permissionCommand = (PermissionsCommandBase)command;
                    permissionCommand.ResetCooldown(ChannelSession.GetCurrentUser());
                }
            }
        }
Example #4
0
        private async void PlayButton_Click(object sender, RoutedEventArgs e)
        {
            this.PlayButton.Visibility = Visibility.Collapsed;
            this.StopButton.Visibility = Visibility.Visible;

            this.EditButton.IsEnabled   = false;
            this.DeleteButton.IsEnabled = false;
            this.EnableDisableToggleSwitch.IsEnabled = false;

            CommandBase command = this.GetCommandFromCommandButtons <CommandBase>(this);

            if (command != null)
            {
                UserViewModel currentUser = await ChannelSession.GetCurrentUser();

                Dictionary <string, string> extraSpecialIdentifiers = new Dictionary <string, string>();
                if (command is EventCommand)
                {
                    EventCommand eventCommand = command as EventCommand;
                    switch (eventCommand.EventType)
                    {
                    case Mixer.Base.Clients.ConstellationEventTypeEnum.channel__id__hosted:
                        extraSpecialIdentifiers["hostviewercount"] = "123";
                        break;

                    case Mixer.Base.Clients.ConstellationEventTypeEnum.channel__id__resubscribed:
                        extraSpecialIdentifiers["usersubmonths"] = "5";
                        break;

                    case Mixer.Base.Clients.ConstellationEventTypeEnum.progression__id__levelup:
                        extraSpecialIdentifiers["userfanprogressionnext"]  = "200";
                        extraSpecialIdentifiers["userfanprogressionrank"]  = "10";
                        extraSpecialIdentifiers["userfanprogressioncolor"] = "#c642ea";
                        extraSpecialIdentifiers["userfanprogressionimage"] = "https://static.mixer.com/img/design/ui/fan-progression/v1_badges/purple/large.gif";
                        extraSpecialIdentifiers["userfanprogression"]      = "100";
                        break;
                    }

                    switch (eventCommand.OtherEventType)
                    {
                    case OtherEventTypeEnum.GameWispSubscribed:
                    case OtherEventTypeEnum.GameWispResubscribed:
                        extraSpecialIdentifiers["subscribemonths"] = "999";
                        extraSpecialIdentifiers["subscribetier"]   = "Test Tier";
                        extraSpecialIdentifiers["subscribeamount"] = "$12.34";
                        break;

                    case OtherEventTypeEnum.StreamlabsDonation:
                    case OtherEventTypeEnum.GawkBoxDonation:
                    case OtherEventTypeEnum.TiltifyDonation:
                    case OtherEventTypeEnum.ExtraLifeDonation:
                    case OtherEventTypeEnum.TipeeeStreamDonation:
                    case OtherEventTypeEnum.TreatStreamDonation:
                    case OtherEventTypeEnum.StreamJarDonation:
                        UserDonationModel donation = new UserDonationModel()
                        {
                            Amount    = 12.34,
                            Message   = "Test donation message",
                            ImageLink = currentUser.AvatarLink
                        };

                        switch (eventCommand.OtherEventType)
                        {
                        case OtherEventTypeEnum.StreamlabsDonation: donation.Source = UserDonationSourceEnum.Streamlabs; break;

                        case OtherEventTypeEnum.GawkBoxDonation: donation.Source = UserDonationSourceEnum.GawkBox; break;

                        case OtherEventTypeEnum.TiltifyDonation: donation.Source = UserDonationSourceEnum.Tiltify; break;

                        case OtherEventTypeEnum.ExtraLifeDonation: donation.Source = UserDonationSourceEnum.ExtraLife; break;

                        case OtherEventTypeEnum.TipeeeStreamDonation: donation.Source = UserDonationSourceEnum.TipeeeStream; break;

                        case OtherEventTypeEnum.TreatStreamDonation: donation.Source = UserDonationSourceEnum.TreatStream; break;

                        case OtherEventTypeEnum.StreamJarDonation: donation.Source = UserDonationSourceEnum.StreamJar; break;
                        }

                        foreach (var kvp in donation.GetSpecialIdentifiers())
                        {
                            extraSpecialIdentifiers[kvp.Key] = kvp.Value;
                        }
                        extraSpecialIdentifiers["donationtype"] = "Pizza";
                        break;

                    case OtherEventTypeEnum.PatreonSubscribed:
                        extraSpecialIdentifiers[SpecialIdentifierStringBuilder.PatreonTierNameSpecialIdentifier]   = "Super Tier";
                        extraSpecialIdentifiers[SpecialIdentifierStringBuilder.PatreonTierAmountSpecialIdentifier] = "12.34";
                        extraSpecialIdentifiers[SpecialIdentifierStringBuilder.PatreonTierImageSpecialIdentifier]  = "https://xforgeassets002.xboxlive.com/xuid-2535473787585366-public/b7a1d715-3a9e-4bdd-a030-32f9e2e0f51e/0013_lots-o-stars_256.png";
                        break;

                    case OtherEventTypeEnum.StreamlootsCardRedeemed:
                        extraSpecialIdentifiers["streamlootscardname"]  = "Test Card";
                        extraSpecialIdentifiers["streamlootscardimage"] = "https://res.cloudinary.com/streamloots/image/upload/f_auto,c_scale,w_250,q_90/static/e19c7bf6-ca3e-49a8-807e-b2e9a1a47524/en_dl_character.png";
                        extraSpecialIdentifiers["streamlootscardvideo"] = "https://cdn.streamloots.com/uploads/5c645b78666f31002f2979d1/3a6bf1dc-7d61-4f93-be0a-f5dc1d0d33b6.webm";
                        extraSpecialIdentifiers["streamlootscardsound"] = "https://static.streamloots.com/b355d1ef-d931-4c16-a48f-8bed0076401b/alerts/default.mp3";
                        extraSpecialIdentifiers["streamlootsmessage"]   = "Test Message";
                        break;

                    case OtherEventTypeEnum.StreamlootsPackPurchased:
                    case OtherEventTypeEnum.StreamlootsPackGifted:
                        extraSpecialIdentifiers["streamlootspurchasequantity"] = "1";
                        break;

                    case OtherEventTypeEnum.TwitterStreamTweetRetweet:
                        break;

                    case OtherEventTypeEnum.MixerSkillUsed:
                        extraSpecialIdentifiers["skillname"]     = "Lots of stars";
                        extraSpecialIdentifiers["skilltype"]     = EnumHelper.GetEnumName(SkillTypeEnum.Sticker);
                        extraSpecialIdentifiers["skillcosttype"] = "Embers";
                        extraSpecialIdentifiers["skillcost"]     = "50";
                        extraSpecialIdentifiers["skillimage"]    = "https://xforgeassets002.xboxlive.com/xuid-2535473787585366-public/b7a1d715-3a9e-4bdd-a030-32f9e2e0f51e/0013_lots-o-stars_256.png";
                        extraSpecialIdentifiers["skillissparks"] = false.ToString();
                        extraSpecialIdentifiers["skillisembers"] = true.ToString();
                        extraSpecialIdentifiers["skillmessage"]  = "Hello World!";
                        break;

                    case OtherEventTypeEnum.MixerMilestoneReached:
                        extraSpecialIdentifiers["milestoneamount"]               = "100";
                        extraSpecialIdentifiers["milestoneremainingamount"]      = "100";
                        extraSpecialIdentifiers["milestonereward"]               = "$10.00";
                        extraSpecialIdentifiers["milestonenextamount"]           = "100";
                        extraSpecialIdentifiers["milestonenextremainingamount"]  = "100";
                        extraSpecialIdentifiers["milestonenextreward"]           = "$10.00";
                        extraSpecialIdentifiers["milestonefinalamount"]          = "100";
                        extraSpecialIdentifiers["milestonefinalremainingamount"] = "100";
                        extraSpecialIdentifiers["milestonefinalreward"]          = "$10.00";
                        extraSpecialIdentifiers["milestoneearnedamount"]         = "100";
                        extraSpecialIdentifiers["milestoneearnedreward"]         = "$10.00";
                        break;

                    case OtherEventTypeEnum.MixerSparksUsed:
                        extraSpecialIdentifiers["sparkamount"] = "10";
                        break;

                    case OtherEventTypeEnum.MixerEmbersUsed:
                        extraSpecialIdentifiers["emberamount"] = "10";
                        break;
                    }
                }
                else if (command is InteractiveCommand)
                {
                    InteractiveCommand iCommand = (InteractiveCommand)command;

                    extraSpecialIdentifiers["mixplaycontrolid"]   = iCommand.Name;
                    extraSpecialIdentifiers["mixplaycontrolcost"] = "123";
                    extraSpecialIdentifiers["mixplaycontroltext"] = "Button Name";
                }
                else if (command is CustomCommand)
                {
                    if (command.Name.Equals(InventoryWindow.ItemsBoughtCommandName) || command.Name.Equals(InventoryWindow.ItemsSoldCommandName))
                    {
                        extraSpecialIdentifiers["itemtotal"]    = "5";
                        extraSpecialIdentifiers["itemname"]     = "Chocolate Bars";
                        extraSpecialIdentifiers["itemcost"]     = "500";
                        extraSpecialIdentifiers["currencyname"] = "CURRENCY_NAME";
                    }
                    else if (command.Name.Contains("Moderation Strike"))
                    {
                        extraSpecialIdentifiers[ModerationHelper.ModerationReasonSpecialIdentifier] = "Bad Stuff";
                    }
                    else
                    {
                        extraSpecialIdentifiers["songtitle"]           = "Test Song";
                        extraSpecialIdentifiers["songalbumart"]        = SpotifySongRequestProviderService.SpotifyDefaultAlbumArt;
                        extraSpecialIdentifiers["songusername"]        = currentUser.UserName;
                        extraSpecialIdentifiers["spotifysongtitle"]    = "Test Song";
                        extraSpecialIdentifiers["spotifysongalbumart"] = SpotifySongRequestProviderService.SpotifyDefaultAlbumArt;
                        extraSpecialIdentifiers["queueposition"]       = "1";
                    }
                }

                await command.PerformAndWait(currentUser, new List <string>() { "@" + currentUser.UserName }, extraSpecialIdentifiers);

                if (command is PermissionsCommandBase)
                {
                    PermissionsCommandBase permissionCommand = (PermissionsCommandBase)command;
                    permissionCommand.ResetCooldown(await ChannelSession.GetCurrentUser());
                }
                this.SwitchToPlay();
            }

            this.RaiseEvent(new RoutedEventArgs(CommandButtonsControl.PlayClickedEvent, this));
        }