Twitch API
A stupid simple Library that allows you to subscribe to events from Twitch Chat, with additional metadata such as Badges, Emotes, whether or not a user is Moderator, Subscriber, Turbo, ect.
Here's how you do suff via code:
using TwitchAPI;
public class MyComponent : Component
{
TwitchChatConnection TwitchChat;
List<TwitchChatMessage> MessageHistory { get; set; }
protected override void OnEnabled()
{
// Connect to the Chat
TwitchChat = new TwitchChatConnection("CarsonKompon");
// Subscribe to the different events
TwitchChat.OnMessageReceieved += OnMessageReceieved;
TwitchChat.OnMessagesCleared += OnMessagesCleared;
}
protected override void OnDisabled()
{
if(TwitchChat is null) return;
// Disconnect/Dispose of the connection
TwitchChat?.Dispose();
// Un-subscribe from the events
TwitchChat.OnMessageReceieved -= OnMessageReceieved;
TwitchChat.OnMessagesCleared -= OnMessagesCleared;
}
void OnMessageReceived(TwitchChatMessage message)
{
// Add the message to the message history
MessageHistory.Add(message);
// "!test" command that only works for Moderators and subs
if(message.Message == "!test" && (message.User.IsModerator || message.User.IsSubscriber))
{
Log.Info("Testing!");
return;
}
// Otherwise, print the message to the console
Log.Info($"{message.Username}: {message.Message}");
}
void OnMessagesCleared()
{
// Clear the message history
MessageHistory.Clear();
}
}
There's also a TwitchComponent included which can be used for simple ActionGraph-based solutions.