Check for ignored phrases/users in channel point redemptions (#3102)
This commit is contained in:
@@ -114,44 +114,12 @@ TwitchMessageBuilder::TwitchMessageBuilder(
|
||||
|
||||
bool TwitchMessageBuilder::isIgnored() const
|
||||
{
|
||||
if (SharedMessageBuilder::isIgnored())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
auto app = getApp();
|
||||
|
||||
if (getSettings()->enableTwitchBlockedUsers &&
|
||||
this->tags.contains("user-id"))
|
||||
{
|
||||
auto sourceUserID = this->tags.value("user-id").toString();
|
||||
|
||||
auto blocks =
|
||||
app->accounts->twitch.getCurrent()->accessBlockedUserIds();
|
||||
|
||||
if (auto it = blocks->find(sourceUserID); it != blocks->end())
|
||||
{
|
||||
switch (static_cast<ShowIgnoredUsersMessages>(
|
||||
getSettings()->showBlockedUsersMessages.getValue()))
|
||||
{
|
||||
case ShowIgnoredUsersMessages::IfModerator:
|
||||
if (this->channel->isMod() ||
|
||||
this->channel->isBroadcaster())
|
||||
return false;
|
||||
break;
|
||||
case ShowIgnoredUsersMessages::IfBroadcaster:
|
||||
if (this->channel->isBroadcaster())
|
||||
return false;
|
||||
break;
|
||||
case ShowIgnoredUsersMessages::Never:
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return isIgnoredMessage({
|
||||
/*.message = */ this->originalMessage_,
|
||||
/*.twitchUserID = */ this->tags.value("user-id").toString(),
|
||||
/*.isMod = */ this->channel->isMod(),
|
||||
/*.isBroadcaster = */ this->channel->isBroadcaster(),
|
||||
});
|
||||
}
|
||||
|
||||
void TwitchMessageBuilder::triggerHighlights()
|
||||
@@ -190,7 +158,9 @@ MessagePtr TwitchMessageBuilder::build()
|
||||
this->args.channelPointRewardId);
|
||||
if (reward)
|
||||
{
|
||||
this->appendChannelPointRewardMessage(reward.get(), this);
|
||||
this->appendChannelPointRewardMessage(
|
||||
reward.get(), this, this->channel->isMod(),
|
||||
this->channel->isBroadcaster());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1261,8 +1231,19 @@ Outcome TwitchMessageBuilder::tryParseCheermote(const QString &string)
|
||||
}
|
||||
|
||||
void TwitchMessageBuilder::appendChannelPointRewardMessage(
|
||||
const ChannelPointReward &reward, MessageBuilder *builder)
|
||||
const ChannelPointReward &reward, MessageBuilder *builder, bool isMod,
|
||||
bool isBroadcaster)
|
||||
{
|
||||
if (isIgnoredMessage({
|
||||
/*.message = */ "",
|
||||
/*.twitchUserID = */ reward.user.id,
|
||||
/*.isMod = */ isMod,
|
||||
/*.isBroadcaster = */ isBroadcaster,
|
||||
}))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
builder->emplace<TimestampElement>();
|
||||
QString redeemed = "Redeemed";
|
||||
QStringList textList;
|
||||
|
||||
Reference in New Issue
Block a user