diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-06-09 13:11:44 +0800 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-06-10 12:21:45 +0800 |
commit | 075353427a81f2455e10367c6eb76031048826f2 (patch) | |
tree | 20f72bdbaad7f53ba8f899aa5346c5ed06a29dd4 /src/main/java/de/hysky/skyblocker/utils/render | |
parent | d20c5ae5b9a263e7eb790527c7dfe12b96714b0e (diff) | |
download | Skyblocker-075353427a81f2455e10367c6eb76031048826f2.tar.gz Skyblocker-075353427a81f2455e10367c6eb76031048826f2.tar.bz2 Skyblocker-075353427a81f2455e10367c6eb76031048826f2.zip |
Add AbstractContainerMatcher
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils/render')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractContainerMatcher.java | 28 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolver.java | 10 |
2 files changed, 32 insertions, 6 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractContainerMatcher.java b/src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractContainerMatcher.java new file mode 100644 index 00000000..38864ec4 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/utils/render/gui/AbstractContainerMatcher.java @@ -0,0 +1,28 @@ +package de.hysky.skyblocker.utils.render.gui; + +import de.hysky.skyblocker.skyblock.ChestValue; +import org.jetbrains.annotations.Nullable; + +import java.util.regex.Pattern; + +public abstract class AbstractContainerMatcher { + /** + * The title of the screen must match this pattern for this to be applied. Null means it will be applied to all screens. + * @implNote Don't end your regex with a {@code $} as {@link ChestValue} appends text to the end of the title, + * so the regex will stop matching if the player uses chest value. + */ + @Nullable + public final Pattern titlePattern; + + public AbstractContainerMatcher() { + this((Pattern) null); + } + + public AbstractContainerMatcher(String titlePattern) { + this(Pattern.compile(titlePattern)); + } + + protected AbstractContainerMatcher(@Nullable Pattern titlePattern) { + this.titlePattern = titlePattern; + } +} diff --git a/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolver.java b/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolver.java index 0417dc3c..81c9ebec 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolver.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/gui/ContainerSolver.java @@ -11,17 +11,15 @@ import java.util.regex.Pattern; /** * Abstract class for gui solvers. Extend this class to add a new gui solver, like terminal solvers or experiment solvers. */ -public abstract class ContainerSolver { - private final Pattern containerName; - - protected ContainerSolver(String containerName) { - this.containerName = Pattern.compile(containerName); +public abstract class ContainerSolver extends AbstractContainerMatcher { + protected ContainerSolver(String titlePattern) { + super(titlePattern); } protected abstract boolean isEnabled(); public final Pattern getName() { - return containerName; + return titlePattern; } protected void start(GenericContainerScreen screen) { |