Added chat message to redemptions. Added Subscription End to Twitch. Added more variables to certain redemptions.

This commit is contained in:
Tom
2025-01-18 21:51:50 +00:00
parent 9a17ad16b3
commit 5067ffe119
16 changed files with 152 additions and 25 deletions

View File

@@ -1,4 +1,5 @@
using Serilog;
using TwitchChatTTS.Bus;
using TwitchChatTTS.Chat.Commands;
using TwitchChatTTS.Chat.Commands.Limits;
using TwitchChatTTS.Chat.Groups;
@@ -18,6 +19,7 @@ namespace TwitchChatTTS.Twitch.Socket.Handlers
private readonly IGroupPermissionManager _permissionManager;
private readonly IUsagePolicy<long> _permissionPolicy;
private readonly IChatterGroupManager _chatterGroupManager;
private readonly ServiceBusCentral _bus;
private readonly ILogger _logger;
@@ -27,6 +29,7 @@ namespace TwitchChatTTS.Twitch.Socket.Handlers
IGroupPermissionManager permissionManager,
IUsagePolicy<long> permissionPolicy,
IChatterGroupManager chatterGroupManager,
ServiceBusCentral bus,
User user,
ILogger logger
)
@@ -36,12 +39,9 @@ namespace TwitchChatTTS.Twitch.Socket.Handlers
_commands = commands;
_permissionManager = permissionManager;
_permissionPolicy = permissionPolicy;
_chatterGroupManager = chatterGroupManager;
_bus = bus;
_logger = logger;
_permissionPolicy.Set("everyone", "tts", 100, TimeSpan.FromSeconds(15));
_permissionPolicy.Set("everyone", "tts.chat.messages.read", 3, TimeSpan.FromMilliseconds(15000));
}
@@ -58,9 +58,16 @@ namespace TwitchChatTTS.Twitch.Socket.Handlers
var groups = GetGroups(message.Badges, chatterId);
var bits = GetTotalBits(fragments);
var commandResult = await CheckForChatCommand(message.Message.Text, message, groups);
if (commandResult != ChatCommandResult.Unknown)
return;
if (message.ChannelPointsCustomRewardId == null)
{
var commandResult = await CheckForChatCommand(message.Message.Text, message, groups);
if (commandResult != ChatCommandResult.Unknown)
return;
}
else
{
_bus.Send(this, "chat_message_redemption", message);
}
string permission = GetPermissionPath(message.ChannelPointsCustomRewardId, bits);
if (!HasPermission(chatterId, groups, permission))
@@ -106,7 +113,7 @@ namespace TwitchChatTTS.Twitch.Socket.Handlers
{
var defaultGroups = new string[] { "everyone" };
var badgesGroups = badges.Select(b => b.SetId).Select(GetGroupNameByBadgeName);
var customGroups = _chatterGroupManager.GetGroupNamesFor(chatterId);
var customGroups = _chatterGroupManager.GetGroupNamesFor(chatterId).ToArray();
return defaultGroups.Union(badgesGroups).Union(customGroups);
}