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.ImmutableSet;
|
||||||
import com.google.common.collect.LinkedHashMultimap;
|
import com.google.common.collect.LinkedHashMultimap;
|
||||||
import com.google.common.collect.Multimap;
|
import com.google.common.collect.Multimap;
|
||||||
|
import com.google.common.collect.Multimaps;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -152,7 +153,7 @@ public class MenuEntrySwapperPlugin extends Plugin
|
|||||||
@Getter
|
@Getter
|
||||||
private boolean configuringShiftClick = false;
|
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();
|
private final ArrayListMultimap<String, Integer> optionIndexes = ArrayListMultimap.create();
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -377,24 +378,33 @@ public class MenuEntrySwapperPlugin extends Plugin
|
|||||||
swap("travel", "dive", config::swapRowboatDive);
|
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)
|
private void swapTeleport(String option, String swappedOption)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import java.util.function.Supplier;
|
|||||||
import lombok.Value;
|
import lombok.Value;
|
||||||
|
|
||||||
@Value
|
@Value
|
||||||
class Swap
|
public class Swap
|
||||||
{
|
{
|
||||||
private Predicate<String> optionPredicate;
|
private Predicate<String> optionPredicate;
|
||||||
private Predicate<String> targetPredicate;
|
private Predicate<String> targetPredicate;
|
||||||
|
|||||||
Reference in New Issue
Block a user