Changelogs

Streamer.bot v0.2.1

Released 2023-09-01

While 0.2.0 launch didn't go as smoothly as I had planned, after a quick fix it was off and running.

To follow up on that, 0.2.1 brings in some more fixes, and a couple of extras with it.

New Features

  • Add setting to commands to ignore internally parsed messages
  • Add StreamElements connected/disconnected triggers
  • Add Streamlabs connected/disconnected triggers
  • Add 7 new triggers for Twitch connections
  • Add a clear button for the action filter
  • Add nerw VTubeStudioEvent TrackingStatusChanged, and accompanying trigger
  • Add new C# method UnsetAllUsersVar, this will unset the specified variable for all users
  • Add 4 new triggers for BetterTTV and SevenTV Adding/Removing emotes
  • Add Create button to various triggers
  • Add delete confirmation when deleting a sub-action group
  • Add 3 new C# methods for interactiong with quotes
  • Add IgnoreAliases setting to GetCommands sub-action, this will return the first command only for each command if enabled
  • Add new Trigger, Global Variable Updated

Updates

  • Remove range restriction check on posX and posY in C# method VTubeStudioMoveModel
  • Add various checks throughout setting uaser globals to prevent empty or null user ids
  • When subscribing to EventSub subscriptions, no longer subscribe to all if Broadcaster account is not Affiliate or Partner
  • Optimize C# method SetTwitchUsersVarById and SetYouTubeUsersVarsById
  • Optimize C# method GetUsersVar, it runs much faster depending on the circumstances
  • Tweaks to Elgato Wave Link integration
  • Tweaks to OBS Websocket5 library
  • In the import dialog, don't show exclude all from import, if there are no actions or commands to import
  • Add address/port checks when connecting to VTubeStudio
  • Add address/port checks when connecting to Streamlabs Desktop
  • Prevent logging of VTubeStudio auth data
  • Toast Notification Activation trigger now adds the original toast information to the arguments
  • Tweaks to Twitch VIP handling
  • Tweaks to Sub-action and Trigger item locations and sorting
  • Rename Perform Command to Run a Program
  • Add isSubscribed back for YouTube users
  • Better handling of VTubeStudio and timing out requests so they don't get stuck
  • Add checks to VTubeStudio Raw for undefined json values
  • Twitch Reward global cooldown updated from int to long, this will effect the C# method UpdateRewardCooldown
  • Update GetQuote sub-action to accept %variables%
  • Update Get/Set Command State sub-actions to display the command's name instead of the command
  • Update Twitch Timeout User sub-action to have similar fields as the Twitch Unban User sub-action
  • Perform config upgrage on Twitch Timeout User sub-action to new format, be sure to check your timeout sub-actions!
  • Range based triggers which are se to greater than, are now inclusive of that value in comparisons
  • Range based triggers which have a min and max, are now inclusive of the range in comparisons
  • Better handling of Twitch VIP and Moderator role information

Fixes

  • Fix typos
  • Fix crash in Test Trigger dialog, when clicking away from a cell with an empty value
  • Fix monthsGifted being any in Twitch Gift Sub trigger test
  • Fix issues with C# method SetTwitchUsersVarById and SetYouTubeUserVarsById
  • Fix issues with C# method GetUsersVar
  • Handle potential crash in VTubeStudio Trigger Hotkey sub-action dialog
  • Handle potential crash in Twitch Gift Bomb handling
  • Handle potential crash when editing a variable with auto-typing enabled
  • Handle potential crash in CrowdControl Trigger dialogs
  • Handle potential crash in Raid Start trigger test
  • Handle potential crash in PerformCommand sub-action dialog when leaving a cell empty
  • Handle potential crash in the Import Dialog when trying to exclude all actions/commands when there aren't any
  • Handle potential crash in the Twitch Reward Set Cooldown sub-action
  • Handle potential crash in GetCredits when BitLeaderboard API calls fail
  • Handle potential crash in Twemoji Emote Handler
  • Handle potential crash in OBS Websocket5 Version call
  • Fix long startup times during DB upgrades
  • Fix creation of a Midi Message trigger not saving the selected event correctly
  • Handle potential crashes in OBS Websocket v4 and v5 handling
  • Handle potential crash in Write To File sub-action when trying to write to a file user does not have permission to
  • Fix UI interactions freezing the UI when connecting/disconnecting to/from various services
  • Fix endless retry loop for Streamer.bot website integration when remote connection is disabled
  • Fix UI feedback when connecting to VTubeStudio
  • Handle potential crash in Twitch Chat Message trigger test
  • Handle more potential crashes for Toast Notifications when trying to run on Windows 7, this is a Windows 10 and higher only feature
  • Better handling of loading certain types on startup
  • Handle potential crash in CrowdControl TimedEffectUpdate event
  • Handle potential crash in OBS GetSceneItemProperties sub-action dialog
  • Handle potential crash in Import Dialog with invalid data
  • Potential crash in EventSub when a Rewards global cooldown is greater than int.MaxValue
  • Handle potential crash in Twitch Guest Star Guest Update event
  • Fix being able to make an empty query search for Twitch Game Categories
  • Handle potential crash in Global Variable Viewer when encountering empty-named variables
  • Handle potential crash in YouTube Gift Membership Received trigger test
  • Fix Process Started/Stopped Trigger display not showing the criteria
  • Fix issue with non-blocking queue and Execute Code sub-actions
  • Fix all Patreon Trigger tests crashing
  • Fix YouTube SuperChat and SuperSticker triggers using the microamount and not a decimal value for range comparisons

Details

Global User Variables

A note about SetTwitchUsersVarById and SetYouTubeUsersVarsById, these 2 C# methods are completely broken in 0.2.0 and should not be used, they will set all the variables for the users specified to the value passed.

New C# Methods

void UnsetAllUsersVar(string varName, bool persisted = true);
QuoteData GetQuote(int quoteId);
int GetQuoteCount();
bool DeleteQuote(int quoteId);

The QuoteData class

public class QuoteData
{
    public DateTime Timestamp { get; set; }
    public int Id { get; set; }
    public string UserId { get; set; }
    public string User { get; set; }
    public string Platform { get; set; }
    public string GameId { get; set; }
    public string GameName { get; set; }
    public string Quote { get; set; }
}