From 8d8bd17a8816e57daa19c348bb865eab2337b84b Mon Sep 17 00:00:00 2001 From: Rime <81419447+Emirlol@users.noreply.github.com> Date: Fri, 7 Jun 2024 15:21:04 +0300 Subject: Move TooltipAdder outside of the adders package --- .../chocolatefactory/ChocolateFactorySolver.java | 2 +- .../skyblock/item/tooltip/TooltipAdder.java | 48 +++++++++++++++++++++ .../item/tooltip/adders/AccessoryTooltip.java | 1 + .../item/tooltip/adders/AvgBinTooltip.java | 1 + .../item/tooltip/adders/BazaarPriceTooltip.java | 1 + .../skyblock/item/tooltip/adders/ColorTooltip.java | 1 + .../item/tooltip/adders/DungeonQualityTooltip.java | 1 + .../skyblock/item/tooltip/adders/LBinTooltip.java | 1 + .../item/tooltip/adders/LineSmoothener.java | 1 + .../skyblock/item/tooltip/adders/MotesTooltip.java | 1 + .../item/tooltip/adders/MuseumTooltip.java | 1 + .../item/tooltip/adders/NpcPriceTooltip.java | 1 + .../item/tooltip/adders/ObtainedDateTooltip.java | 1 + .../item/tooltip/adders/SupercraftReminder.java | 1 + .../skyblock/item/tooltip/adders/TooltipAdder.java | 49 ---------------------- 15 files changed, 61 insertions(+), 50 deletions(-) create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipAdder.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TooltipAdder.java (limited to 'src/main/java/de') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java index 14228f4d..bf31bd1f 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/chocolatefactory/ChocolateFactorySolver.java @@ -2,7 +2,7 @@ package de.hysky.skyblocker.skyblock.chocolatefactory; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.item.tooltip.adders.LineSmoothener; -import de.hysky.skyblocker.skyblock.item.tooltip.adders.TooltipAdder; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.utils.ItemUtils; import de.hysky.skyblocker.utils.RegexUtils; import de.hysky.skyblocker.utils.RomanNumerals; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipAdder.java new file mode 100644 index 00000000..7c43957e --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/TooltipAdder.java @@ -0,0 +1,48 @@ +package de.hysky.skyblocker.skyblock.item.tooltip; + +import de.hysky.skyblocker.skyblock.ChestValue; +import net.minecraft.screen.slot.Slot; +import net.minecraft.text.Text; + +import java.util.List; +import java.util.regex.Pattern; + +/** + * Extend this class and add it to {@link TooltipManager#adders} to add additional text to tooltips. + */ +public abstract class TooltipAdder { + /** + * The title of the screen must match this pattern for this adder 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 it. + */ + public final Pattern titlePattern; + /** + * The priority of this adder. Lower priority means it will be applied first. + * @apiNote Consider taking this value on your class' constructor and setting it from {@link TooltipManager#adders} to make it easy to read and maintain. + */ + public final int priority; + + protected TooltipAdder(String titlePattern, int priority) { + this(Pattern.compile(titlePattern), priority); + } + + protected TooltipAdder(Pattern titlePattern, int priority) { + this.titlePattern = titlePattern; + this.priority = priority; + } + + /** + * Creates a TooltipAdder that will be applied to all screens. + */ + protected TooltipAdder(int priority) { + this.titlePattern = null; + this.priority = priority; + } + + /** + * @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. + */ + public abstract void addToTooltip(List lines, Slot focusedSlot); +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AccessoryTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AccessoryTooltip.java index 0bc50997..34d93abc 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AccessoryTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AccessoryTooltip.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; import de.hysky.skyblocker.skyblock.item.tooltip.AccessoriesHelper; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; import it.unimi.dsi.fastutil.Pair; import net.minecraft.screen.slot.Slot; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AvgBinTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AvgBinTooltip.java index ba06b54d..4754932b 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AvgBinTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/AvgBinTooltip.java @@ -3,6 +3,7 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.config.configs.GeneralConfig; import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.Slot; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BazaarPriceTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BazaarPriceTooltip.java index afd6d301..9237c141 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BazaarPriceTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/BazaarPriceTooltip.java @@ -2,6 +2,7 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; import com.google.gson.JsonObject; import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.Slot; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ColorTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ColorTooltip.java index 85be7215..56dd60b0 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ColorTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ColorTooltip.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; import de.hysky.skyblocker.utils.Constants; import de.hysky.skyblocker.utils.ItemUtils; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/DungeonQualityTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/DungeonQualityTooltip.java index 6050c7e0..05e9887c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/DungeonQualityTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/DungeonQualityTooltip.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.utils.ItemUtils; import net.minecraft.nbt.NbtCompound; import net.minecraft.screen.slot.Slot; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LBinTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LBinTooltip.java index da6b9ed0..2a28df79 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LBinTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LBinTooltip.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.Slot; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LineSmoothener.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LineSmoothener.java index 9a5b2a79..e3ce12df 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LineSmoothener.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/LineSmoothener.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import net.minecraft.screen.slot.Slot; import net.minecraft.text.Text; import net.minecraft.util.Formatting; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MotesTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MotesTooltip.java index 6e286ea6..5a8c2ddb 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MotesTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MotesTooltip.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.Slot; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MuseumTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MuseumTooltip.java index 5ce0e730..ce98f1c5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MuseumTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/MuseumTooltip.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; import de.hysky.skyblocker.skyblock.item.MuseumItemCache; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; import de.hysky.skyblocker.utils.ItemUtils; import net.minecraft.item.ItemStack; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/NpcPriceTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/NpcPriceTooltip.java index d59d26f6..ba24364b 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/NpcPriceTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/NpcPriceTooltip.java @@ -1,6 +1,7 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; import de.hysky.skyblocker.skyblock.item.tooltip.ItemTooltip; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.Slot; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java index e919122d..9cc03b4d 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.skyblock.item.tooltip.TooltipInfoType; import de.hysky.skyblocker.utils.ItemUtils; import net.minecraft.item.ItemStack; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SupercraftReminder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SupercraftReminder.java index 3affa64b..eb953b9c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SupercraftReminder.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/SupercraftReminder.java @@ -1,5 +1,6 @@ package de.hysky.skyblocker.skyblock.item.tooltip.adders; +import de.hysky.skyblocker.skyblock.item.tooltip.TooltipAdder; import de.hysky.skyblocker.utils.ItemUtils; import net.minecraft.item.Items; import net.minecraft.screen.slot.Slot; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TooltipAdder.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TooltipAdder.java deleted file mode 100644 index 065dfe5e..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/TooltipAdder.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.hysky.skyblocker.skyblock.item.tooltip.adders; - -import de.hysky.skyblocker.skyblock.ChestValue; -import de.hysky.skyblocker.skyblock.item.tooltip.TooltipManager; -import net.minecraft.screen.slot.Slot; -import net.minecraft.text.Text; - -import java.util.List; -import java.util.regex.Pattern; - -/** - * Extend this class and add it to {@link TooltipManager#adders} to add additional text to tooltips. - */ -public abstract class TooltipAdder { - /** - * The title of the screen must match this pattern for this adder 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 it. - */ - public final Pattern titlePattern; - /** - * The priority of this adder. Lower priority means it will be applied first. - * @apiNote Consider taking this value on your class' constructor and setting it from {@link TooltipManager#adders} to make it easy to read and maintain. - */ - public final int priority; - - protected TooltipAdder(String titlePattern, int priority) { - this(Pattern.compile(titlePattern), priority); - } - - protected TooltipAdder(Pattern titlePattern, int priority) { - this.titlePattern = titlePattern; - this.priority = priority; - } - - /** - * Creates a TooltipAdder that will be applied to all screens. - */ - protected TooltipAdder(int priority) { - this.titlePattern = null; - this.priority = priority; - } - - /** - * @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. - */ - public abstract void addToTooltip(List lines, Slot focusedSlot); -} -- cgit