mes: make more friendly for multi-plugin swapping

This commit is contained in:
ThatGamerBlue
2021-02-25 05:15:57 +00:00
parent 0839096b6c
commit 50359db0f2
2 changed files with 20 additions and 10 deletions

View File

@@ -33,6 +33,7 @@ import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multimaps;
import com.google.inject.Provides;
import java.util.Arrays;
import java.util.Collection;
@@ -152,7 +153,7 @@ public class MenuEntrySwapperPlugin extends Plugin
@Getter
private boolean configuringShiftClick = false;
private final Multimap<String, Swap> swaps = LinkedHashMultimap.create();
private final Multimap<String, Swap> swaps = Multimaps.synchronizedSetMultimap(LinkedHashMultimap.create());
private final ArrayListMultimap<String, Integer> optionIndexes = ArrayListMultimap.create();
@Provides
@@ -377,24 +378,33 @@ public class MenuEntrySwapperPlugin extends Plugin
swap("travel", "dive", config::swapRowboatDive);
}
public void swap(String option, String swappedOption, Supplier<Boolean> enabled)
public Swap swap(String option, String swappedOption, Supplier<Boolean> enabled)
{
swap(option, alwaysTrue(), swappedOption, enabled);
return swap(option, alwaysTrue(), swappedOption, enabled);
}
public void swap(String option, String target, String swappedOption, Supplier<Boolean> enabled)
public Swap swap(String option, String target, String swappedOption, Supplier<Boolean> enabled)
{
swap(option, equalTo(target), swappedOption, enabled);
return swap(option, equalTo(target), swappedOption, enabled);
}
public void swap(String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
public Swap swap(String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
{
swaps.put(option, new Swap(alwaysTrue(), targetPredicate, swappedOption, enabled, true));
Swap swap = new Swap(alwaysTrue(), targetPredicate, swappedOption, enabled, true);
swaps.put(option, swap);
return swap;
}
public void swapContains(String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
public Swap swapContains(String option, Predicate<String> targetPredicate, String swappedOption, Supplier<Boolean> enabled)
{
swaps.put(option, new Swap(alwaysTrue(), targetPredicate, swappedOption, enabled, false));
Swap swap = new Swap(alwaysTrue(), targetPredicate, swappedOption, enabled, false);
swaps.put(option, swap);
return swap;
}
public void remove(String option, Swap swap)
{
swaps.remove(option, swap);
}
private void swapTeleport(String option, String swappedOption)

View File

@@ -29,7 +29,7 @@ import java.util.function.Supplier;
import lombok.Value;
@Value
class Swap
public class Swap
{
private Predicate<String> optionPredicate;
private Predicate<String> targetPredicate;