Skip to content

Commit

Permalink
feat(tsl): add CONTAINS comparator
Browse files Browse the repository at this point in the history
  • Loading branch information
iGoodie committed Jun 22, 2020
1 parent 84914cc commit 0ddecc0
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 1 deletion.
Expand Up @@ -103,7 +103,7 @@ protected void onChatMessage(CredentialsConfig.Streamer streamer, TwitchChatMess
eventArguments.actorNickname = twitchChatMessage.username;
eventArguments.message = twitchChatMessage.message;
eventArguments.subscriptionMonths = twitchChatMessage.subscriptionMonths;
// TODO: Add badges too
eventArguments.chatBadges = twitchChatMessage.badges;

ConfigManager.RULESET_COLLECTION.handleEvent(eventArguments, cooldownBucket);

Expand Down
Expand Up @@ -5,7 +5,9 @@
import net.programmer.igoodie.twitchspawn.tslanguage.keyword.TSLEventKeyword;

import java.lang.reflect.Field;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class EventArguments {

Expand Down Expand Up @@ -39,11 +41,13 @@ public static EventArguments createRandom(String streamerNickname) {
public int raiderCount;

public String rewardTitle;
public Set<String> chatBadges;

public EventArguments(String eventType, String eventAccount) {
this.eventType = eventType;
this.eventAccount = eventAccount;
this.eventName = TSLEventKeyword.ofPair(eventType, eventAccount);
this.chatBadges = new HashSet<>();
}

public EventArguments(TSLEventPair eventPair) {
Expand Down
Expand Up @@ -6,6 +6,8 @@ public enum TSLComparatorSymbol {

IN_RANGE(
"IN RANGE", InRangeComparator.class),
CONTAINS(
"CONTAINS", ContainsComparator.class),
IS(
"IS", IsComparator.class),
PREFIX(
Expand Down
Expand Up @@ -48,6 +48,10 @@ public enum TSLPredicateProperty {
REWARD_TITLE(
"rewardTitle",
"title", "reward_title"
),
CHAT_BADGES(
"chatBadges",
"badges", "chat_badges"
);

public static boolean exists(String tslField) {
Expand Down
@@ -0,0 +1,22 @@
package net.programmer.igoodie.twitchspawn.tslanguage.predicate;

import java.util.Set;

public class ContainsComparator extends TSLComparator {

protected String value;

public ContainsComparator(String rightHandRaw) {
this.value = rightHandRaw.trim();
}

@Override
public boolean compare(Object leftHand) {
System.out.println(leftHand.toString() + " contains? " + value.toLowerCase());
if (leftHand instanceof Set)
return ((Set) leftHand).contains(value.toLowerCase());

return false;
}

}

0 comments on commit 0ddecc0

Please sign in to comment.