mes: make more friendly for multi-plugin swapping
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user