Add support for non-highlight channel point rewards (#1809)
This commit is contained in:
@@ -192,6 +192,17 @@ MessagePtr TwitchMessageBuilder::build()
|
||||
|
||||
this->parseRoomID();
|
||||
|
||||
// If it is a reward it has to be appended first
|
||||
if (this->args.channelPointRewardId != "")
|
||||
{
|
||||
const auto &reward = this->twitchChannel->channelPointReward(
|
||||
this->args.channelPointRewardId);
|
||||
if (reward)
|
||||
{
|
||||
this->appendChannelPointRewardMessage(reward.get(), this);
|
||||
}
|
||||
}
|
||||
|
||||
this->appendChannelName();
|
||||
|
||||
if (this->tags.contains("rm-deleted"))
|
||||
@@ -1130,4 +1141,34 @@ Outcome TwitchMessageBuilder::tryParseCheermote(const QString &string)
|
||||
return Success;
|
||||
}
|
||||
|
||||
void TwitchMessageBuilder::appendChannelPointRewardMessage(
|
||||
const ChannelPointReward &reward, MessageBuilder *builder)
|
||||
{
|
||||
QString redeemed = "Redeemed";
|
||||
if (!reward.isUserInputRequired)
|
||||
{
|
||||
builder->emplace<TextElement>(
|
||||
reward.user.login, MessageElementFlag::ChannelPointReward,
|
||||
MessageColor::Text, FontStyle::ChatMediumBold);
|
||||
redeemed = "redeemed";
|
||||
}
|
||||
builder->emplace<TextElement>(redeemed,
|
||||
MessageElementFlag::ChannelPointReward);
|
||||
builder->emplace<TextElement>(
|
||||
reward.title, MessageElementFlag::ChannelPointReward,
|
||||
MessageColor::Text, FontStyle::ChatMediumBold);
|
||||
builder->emplace<ScalingImageElement>(
|
||||
reward.image, MessageElementFlag::ChannelPointReward);
|
||||
builder->emplace<TextElement>(
|
||||
QString::number(reward.cost), MessageElementFlag::ChannelPointReward,
|
||||
MessageColor::Text, FontStyle::ChatMediumBold);
|
||||
if (reward.isUserInputRequired)
|
||||
{
|
||||
builder->emplace<LinebreakElement>(
|
||||
MessageElementFlag::ChannelPointReward);
|
||||
}
|
||||
|
||||
builder->message().flags.set(MessageFlag::RedeemedChannelPointReward);
|
||||
}
|
||||
|
||||
} // namespace chatterino
|
||||
|
||||
Reference in New Issue
Block a user