aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/utils/container
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-06-21 07:43:33 +0300
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-07-22 14:22:55 +0800
commit99dd2eb4e024c6b5d6355eef342af63649d9fb08 (patch)
tree597e659332f4f050460baeee314742bddcc423eb /src/main/java/de/hysky/skyblocker/utils/container
parent8f540ffc0f2e6dc90f8c9a1ac249ff9185243d3c (diff)
downloadSkyblocker-99dd2eb4e024c6b5d6355eef342af63649d9fb08.tar.gz
Skyblocker-99dd2eb4e024c6b5d6355eef342af63649d9fb08.tar.bz2
Skyblocker-99dd2eb4e024c6b5d6355eef342af63649d9fb08.zip
Rename AbstractContainerMatcher and its extending interfaces to remove the `Abstract` prefix and rename simple implementations with a `Simple` prefix
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/utils/container')
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerSolver.java36
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/container/AbstractSlotTextAdder.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/container/AbstractTooltipAdder.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/container/ContainerMatcher.java (renamed from src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerMatcher.java)2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/container/ContainerSolver.java68
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/container/ContainerSolverManager.java14
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/container/RegexContainerMatcher.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/container/SimpleContainerSolver.java38
8 files changed, 83 insertions, 83 deletions
diff --git a/src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerSolver.java b/src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerSolver.java
deleted file mode 100644
index d4c52212..00000000
--- a/src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerSolver.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package de.hysky.skyblocker.utils.container;
-
-import de.hysky.skyblocker.SkyblockerMod;
-import de.hysky.skyblocker.utils.render.gui.ColorHighlight;
-import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
-import net.minecraft.client.gui.screen.ingame.GenericContainerScreen;
-import net.minecraft.item.ItemStack;
-
-import java.util.List;
-
-public interface AbstractContainerSolver extends AbstractContainerMatcher {
- List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots);
-
- default void start(GenericContainerScreen screen) {}
-
- default void reset() {}
-
- default boolean onClickSlot(int slot, ItemStack stack, int screenId) {
- return false;
- }
-
- static void markHighlightsDirty() {
- SkyblockerMod.getInstance().containerSolverManager.markDirty();
- }
-
- static void trimEdges(Int2ObjectMap<ItemStack> slots, int rows) {
- for (int i = 0; i < rows; i++) {
- slots.remove(9 * i);
- slots.remove(9 * i + 8);
- }
- for (int i = 1; i < 8; i++) {
- slots.remove(i);
- slots.remove((rows - 1) * 9 + i);
- }
- }
-}
diff --git a/src/main/java/de/hysky/skyblocker/utils/container/AbstractSlotTextAdder.java b/src/main/java/de/hysky/skyblocker/utils/container/AbstractSlotTextAdder.java
index fce3fcf5..5e13c644 100644
--- a/src/main/java/de/hysky/skyblocker/utils/container/AbstractSlotTextAdder.java
+++ b/src/main/java/de/hysky/skyblocker/utils/container/AbstractSlotTextAdder.java
@@ -6,7 +6,7 @@ import org.jetbrains.annotations.NotNull;
import java.util.List;
-public interface AbstractSlotTextAdder extends AbstractContainerMatcher {
+public interface AbstractSlotTextAdder extends ContainerMatcher {
/**
* This method will be called for each rendered slot. Consider using a switch statement on {@code slotId} if you wish to limit the text to specific slots.
diff --git a/src/main/java/de/hysky/skyblocker/utils/container/AbstractTooltipAdder.java b/src/main/java/de/hysky/skyblocker/utils/container/AbstractTooltipAdder.java
index 3cc84f35..5da64f52 100644
--- a/src/main/java/de/hysky/skyblocker/utils/container/AbstractTooltipAdder.java
+++ b/src/main/java/de/hysky/skyblocker/utils/container/AbstractTooltipAdder.java
@@ -7,7 +7,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.List;
-public interface AbstractTooltipAdder extends AbstractContainerMatcher {
+public interface AbstractTooltipAdder extends ContainerMatcher {
/**
* @implNote The first element of the lines list holds the item's display name,
* as it's a list of all lines that will be displayed in the tooltip.
diff --git a/src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerMatcher.java b/src/main/java/de/hysky/skyblocker/utils/container/ContainerMatcher.java
index 5509b9a4..52418f22 100644
--- a/src/main/java/de/hysky/skyblocker/utils/container/AbstractContainerMatcher.java
+++ b/src/main/java/de/hysky/skyblocker/utils/container/ContainerMatcher.java
@@ -3,7 +3,7 @@ package de.hysky.skyblocker.utils.container;
import net.minecraft.client.gui.screen.ingame.HandledScreen;
import org.jetbrains.annotations.NotNull;
-public interface AbstractContainerMatcher {
+public interface ContainerMatcher {
/**
* Tests if the given screen should be handled by this matcher.
* @return {@code true} if this matcher should apply to the given screen, {@code false} otherwise
diff --git a/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolver.java b/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolver.java
index 6d3240ea..f3cb400e 100644
--- a/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolver.java
+++ b/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolver.java
@@ -1,38 +1,36 @@
package de.hysky.skyblocker.utils.container;
-import org.intellij.lang.annotations.Language;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.regex.Pattern;
-
-/**
- * Simple implementation of a container solver. Extend this class to add a new gui solver,
- * like terminal solvers or experiment solvers and add it to {@link ContainerSolverManager#solvers}.
- */
-public abstract class ContainerSolver extends RegexContainerMatcher implements AbstractContainerSolver {
- /**
- * Utility constructor that will compile the given string into a pattern.
- *
- * @see #ContainerSolver(Pattern)
- */
- protected ContainerSolver(@NotNull @Language("RegExp") String titlePattern) {
- super(titlePattern);
- }
-
- /**
- * Creates a ContainerSolver that will be applied to screens with titles that match the given pattern.
- *
- * @param titlePattern The pattern to match the screen title against.
- */
- protected ContainerSolver(@NotNull Pattern titlePattern) {
- super(titlePattern);
- }
-
- // A container solver that applies to every screen doesn't make sense,
- // so we don't provide a constructor for that and force getTitlePattern to be @NotNull
- @Override
- public @NotNull Pattern getTitlePattern() {
- assert super.getTitlePattern() != null;
- return super.getTitlePattern();
- }
+import de.hysky.skyblocker.SkyblockerMod;
+import de.hysky.skyblocker.utils.render.gui.ColorHighlight;
+import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
+import net.minecraft.client.gui.screen.ingame.GenericContainerScreen;
+import net.minecraft.item.ItemStack;
+
+import java.util.List;
+
+public interface ContainerSolver extends ContainerMatcher {
+ List<ColorHighlight> getColors(Int2ObjectMap<ItemStack> slots);
+
+ default void start(GenericContainerScreen screen) {}
+
+ default void reset() {}
+
+ default boolean onClickSlot(int slot, ItemStack stack, int screenId) {
+ return false;
+ }
+
+ static void markHighlightsDirty() {
+ SkyblockerMod.getInstance().containerSolverManager.markDirty();
+ }
+
+ static void trimEdges(Int2ObjectMap<ItemStack> slots, int rows) {
+ for (int i = 0; i < rows; i++) {
+ slots.remove(9 * i);
+ slots.remove(9 * i + 8);
+ }
+ for (int i = 1; i < 8; i++) {
+ slots.remove(i);
+ slots.remove((rows - 1) * 9 + i);
+ }
+ }
}
diff --git a/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolverManager.java b/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolverManager.java
index 77833a67..1e2bce16 100644
--- a/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolverManager.java
+++ b/src/main/java/de/hysky/skyblocker/utils/container/ContainerSolverManager.java
@@ -29,11 +29,11 @@ import org.jetbrains.annotations.NotNull;
import java.util.List;
/**
- * Manager class for {@link ContainerSolver}s like terminal solvers and experiment solvers. To add a new gui solver, extend {@link ContainerSolver} and register it in {@link #ContainerSolverManager()}.
+ * Manager class for {@link SimpleContainerSolver}s like terminal solvers and experiment solvers. To add a new gui solver, extend {@link SimpleContainerSolver} and register it in {@link #ContainerSolverManager()}.
*/
public class ContainerSolverManager {
- private final AbstractContainerSolver[] solvers;
- private AbstractContainerSolver currentSolver = null;
+ private final ContainerSolver[] solvers;
+ private ContainerSolver currentSolver = null;
private List<ColorHighlight> highlights;
/**
* Useful for keeping track of a solver's state in a Screen instance, such as if Hypixel closes & reopens a screen after every click (as they do with terminals).
@@ -41,7 +41,7 @@ public class ContainerSolverManager {
private int screenId = 0;
public ContainerSolverManager() {
- solvers = new AbstractContainerSolver[]{
+ solvers = new ContainerSolver[]{
new ColorTerminal(),
new OrderTerminal(),
new StartsWithTerminal(),
@@ -57,7 +57,7 @@ public class ContainerSolverManager {
};
}
- public AbstractContainerSolver getCurrentSolver() {
+ public ContainerSolver getCurrentSolver() {
return currentSolver;
}
@@ -81,9 +81,9 @@ public class ContainerSolverManager {
public void onSetScreen(@NotNull GenericContainerScreen screen) {
String screenName = screen.getTitle().getString();
- for (AbstractContainerSolver solver : solvers) {
+ for (ContainerSolver solver : solvers) {
if (solver.isEnabled()) {
- if (solver instanceof ContainerSolver containerSolver && containerSolver.test(screenName)) {
+ if (solver instanceof SimpleContainerSolver containerSolver && containerSolver.test(screenName)) {
++screenId;
currentSolver = containerSolver;
currentSolver.start(screen);
diff --git a/src/main/java/de/hysky/skyblocker/utils/container/RegexContainerMatcher.java b/src/main/java/de/hysky/skyblocker/utils/container/RegexContainerMatcher.java
index a8a8e3c2..4df0fe1a 100644
--- a/src/main/java/de/hysky/skyblocker/utils/container/RegexContainerMatcher.java
+++ b/src/main/java/de/hysky/skyblocker/utils/container/RegexContainerMatcher.java
@@ -10,9 +10,9 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
- * A regex implementation of {@link AbstractContainerMatcher} that matches the title of the screen.
+ * A regex implementation of {@link ContainerMatcher} that matches the title of the screen.
*/
-public abstract class RegexContainerMatcher implements AbstractContainerMatcher {
+public abstract class RegexContainerMatcher implements ContainerMatcher {
/**
* The title of the screen must match this pattern for this to be applied. Null means it will be applied to all screens.
*
diff --git a/src/main/java/de/hysky/skyblocker/utils/container/SimpleContainerSolver.java b/src/main/java/de/hysky/skyblocker/utils/container/SimpleContainerSolver.java
new file mode 100644
index 00000000..7d8b7417
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/utils/container/SimpleContainerSolver.java
@@ -0,0 +1,38 @@
+package de.hysky.skyblocker.utils.container;
+
+import org.intellij.lang.annotations.Language;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.regex.Pattern;
+
+/**
+ * Simple implementation of a container solver. Extend this class to add a new gui solver,
+ * like terminal solvers or experiment solvers and add it to {@link ContainerSolverManager#solvers}.
+ */
+public abstract class SimpleContainerSolver extends RegexContainerMatcher implements ContainerSolver {
+ /**
+ * Utility constructor that will compile the given string into a pattern.
+ *
+ * @see #SimpleContainerSolver(Pattern)
+ */
+ protected SimpleContainerSolver(@NotNull @Language("RegExp") String titlePattern) {
+ super(titlePattern);
+ }
+
+ /**
+ * Creates a ContainerSolver that will be applied to screens with titles that match the given pattern.
+ *
+ * @param titlePattern The pattern to match the screen title against.
+ */
+ protected SimpleContainerSolver(@NotNull Pattern titlePattern) {
+ super(titlePattern);
+ }
+
+ // A container solver that applies to every screen doesn't make sense,
+ // so we don't provide a constructor for that and force getTitlePattern to be @NotNull
+ @Override
+ public @NotNull Pattern getTitlePattern() {
+ assert super.getTitlePattern() != null;
+ return super.getTitlePattern();
+ }
+}