Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Hitman Claim All Compact #3077

Open
wants to merge 14 commits into
base: beta
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import com.google.gson.JsonPrimitive
object ConfigUpdaterMigrator {

val logger = LorenzLogger("ConfigMigration")
const val CONFIG_VERSION = 69
const val CONFIG_VERSION = 70
fun JsonElement.at(chain: List<String>, init: Boolean): JsonElement? {
if (chain.isEmpty()) return this
if (this !is JsonObject) return null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -636,7 +636,7 @@ object Commands {
event.register("shtestrabbitpaths") {
description = "Tests pathfinding to rabbit eggs. Use a number 0-14."
category = CommandCategory.DEVELOPER_TEST
callback { HoppityEggLocator.testPathfind(it) }
callback { HoppityEggLocator.testPathFind(it) }
}
event.register("shtestitem") {
description = "test item internal name resolving"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package at.hannibal2.skyhanni.config.features.event.hoppity;

import at.hannibal2.skyhanni.config.FeatureToggle;
import com.google.gson.annotations.Expose;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorBoolean;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorDropdown;
import io.github.notenoughupdates.moulconfig.annotations.ConfigOption;

public class HoppityChatConfig {

@Expose
@ConfigOption(name = "Compact Chat", desc = "Compact chat events when finding a Hoppity Egg.")
@ConfigEditorBoolean
@FeatureToggle
public boolean compact = false;

@Expose
@ConfigOption(name = "Compacted Rarity", desc = "Show rarity of found rabbit in Compacted chat messages.")
@ConfigEditorDropdown
public CompactRarityTypes rarityInCompact = CompactRarityTypes.NEW;

public enum CompactRarityTypes {
NONE("Neither"),
NEW("New Rabbits"),
DUPE("Duplicate Rabbits"),
BOTH("New & Duplicate Rabbits"),
;

private final String name;

CompactRarityTypes(String name) {
this.name = name;
}

@Override
public String toString() {
return name;
}
}

@Expose
@ConfigOption(
name = "Compact Hitman",
desc = "Show a summary message instead of individual messages for Hitman \"Claim All\" menu." +
"\n§cRequires Compact Chat enabled to work."
)
@ConfigEditorBoolean
@FeatureToggle
public boolean compactHitman = false;

@Expose
@ConfigOption(name = "Show Duplicate Count", desc = "Show the number of previous finds of a duplicate Hoppity rabbit in chat messages.")
@ConfigEditorBoolean
public boolean showDuplicateNumber = false;

@Expose
@ConfigOption(name = "Recolor Time-Towered Chocolate", desc = "Recolor raw chocolate gain from duplicate rabbits while Time Tower is active.")
@ConfigEditorBoolean
public boolean recolorTTChocolate = false;

@Expose
@ConfigOption(name = "Time in Chat", desc = "When the Egglocator can't find an egg, show the time until the next Hoppity event or egg spawn.")
@ConfigEditorBoolean
@FeatureToggle
public boolean eggLocatorTimeInChat = true;
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
package at.hannibal2.skyhanni.config.features.event.hoppity;

import at.hannibal2.skyhanni.config.FeatureToggle;
import at.hannibal2.skyhanni.config.core.config.Position;
import com.google.gson.annotations.Expose;
import io.github.notenoughupdates.moulconfig.annotations.Accordion;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorBoolean;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorColour;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorDropdown;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorSlider;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorText;
import io.github.notenoughupdates.moulconfig.annotations.ConfigLink;
import io.github.notenoughupdates.moulconfig.annotations.ConfigOption;

public class HoppityEggsConfig {
Expand All @@ -35,154 +30,30 @@ public class HoppityEggsConfig {
public HoppityStrayTimerConfig strayTimer = new HoppityStrayTimerConfig();

@Expose
@ConfigOption(name = "Hoppity Waypoints", desc = "Toggle guess waypoints for Hoppity's Hunt.")
@ConfigEditorBoolean
@FeatureToggle
public boolean waypoints = true;

@Expose
@ConfigOption(
name = "Show Waypoints Immediately",
desc = "Show an estimated waypoint immediately after clicking.\n" +
"§cThis might cause issues with other particle sources."
)
@ConfigEditorBoolean
public boolean waypointsImmediately = false;

@Expose
@ConfigOption(name = "Color", desc = "Color of the waypoint.")
@ConfigEditorColour
public String waypointColor = "0:53:46:224:73";

@Expose
@ConfigOption(name = "Show Line", desc = "Show a line to the waypoint.")
@ConfigEditorBoolean
@FeatureToggle
public boolean showLine = false;

@Expose
@ConfigOption(name = "Show Path Finder", desc = "Show a pathfind to the next hoppity egg.")
@ConfigEditorBoolean
@FeatureToggle
public boolean showPathFinder = false;

@Expose
@ConfigOption(name = "Show All Waypoints", desc = "Show all possible egg waypoints for the current lobby. §e" +
"Only works when you don't have an Egglocator in your inventory.")
@ConfigEditorBoolean
public boolean showAllWaypoints = false;

@Expose
@ConfigOption(name = "Hide Duplicate Waypoints", desc = "Hide egg waypoints you have already found.\n" +
"§eOnly works when you don't have an Egglocator in your inventory.")
@ConfigEditorBoolean
@FeatureToggle
public boolean hideDuplicateWaypoints = false;

@Expose
@ConfigOption(name = "Mark Duplicate Locations", desc = "Marks egg location waypoints which you have already found in red.")
@ConfigEditorBoolean
@FeatureToggle
public boolean highlightDuplicateEggLocations = false;

@Expose
@ConfigOption(name = "Mark Nearby Duplicates", desc = "Always show duplicate egg locations when nearby.")
@ConfigEditorBoolean
@FeatureToggle
public boolean showNearbyDuplicateEggLocations = false;

@Expose
@ConfigOption(name = "Load from NEU PV", desc = "Load Hoppity Egg Location data from API when opening the NEU Profile Viewer.")
@ConfigEditorBoolean
@FeatureToggle
public boolean loadFromNeuPv = true;

@Expose
@ConfigOption(name = "Show Unclaimed Eggs", desc = "Display which eggs haven't been found in the last SkyBlock day.")
@ConfigEditorBoolean
@FeatureToggle
public boolean showClaimedEggs = false;

@Expose
@ConfigOption(name = "Unclaimed Eggs Order", desc = "Order in which to display unclaimed eggs.")
@ConfigEditorDropdown
public UnclaimedEggsOrder unclaimedEggsOrder = UnclaimedEggsOrder.SOONEST_FIRST;

public enum UnclaimedEggsOrder {
SOONEST_FIRST("Soonest First"),
MEAL_ORDER("Meal Order"),
;

private final String name;

UnclaimedEggsOrder(String name) {
this.name = name;
}

@Override
public String toString() {
return name;
}
}

@Expose
@ConfigOption(
name = "Show Collected Locations", desc = "Show the number of found egg locations on this island.\n" +
"§eThis is not retroactive and may not be fully synced with Hypixel's count."
)
@ConfigEditorBoolean
@FeatureToggle
public boolean showCollectedLocationCount = false;

@Expose
@ConfigOption(name = "Warn When Unclaimed", desc = "Warn when all six eggs are ready to be found.")
@ConfigEditorBoolean
@FeatureToggle
public boolean warnUnclaimedEggs = false;

@Expose
@ConfigOption(name = "Click to Warp", desc = "Make the eggs ready chat message & unclaimed timer display clickable to warp you to an island.")
@ConfigEditorBoolean
public boolean warpUnclaimedEggs = false;

@Expose
@ConfigOption(name = "Warp Destination", desc = "A custom island to warp to in the above option.")
@ConfigEditorText
public String warpDestination = "nucleus";

@Expose
@ConfigOption(name = "Show While Busy", desc = "Show while \"busy\" (in a farming contest, doing Kuudra, in the rift, etc).")
@ConfigEditorBoolean
@FeatureToggle
public boolean showWhileBusy = false;
@ConfigOption(name = "Chat Messages", desc = "")
@Accordion
public HoppityChatConfig chat = new HoppityChatConfig();

@Expose
@ConfigOption(name = "Warn While Busy", desc = "Warn while \"busy\" (in a farming contest, doing Kuudra, in the rift, etc).")
@ConfigEditorBoolean
@FeatureToggle
public boolean warnWhileBusy = false;
@ConfigOption(name = "Egg Waypoints", desc = "")
@Accordion
public HoppityWaypointsConfig waypoints = new HoppityWaypointsConfig();

@Expose
@ConfigOption(name = "Show Outside SkyBlock", desc = "Show on Hypixel even when not playing SkyBlock.")
@ConfigEditorBoolean
@FeatureToggle
public boolean showOutsideSkyblock = false;
@ConfigOption(name = "Egg Locations", desc = "")
@Accordion
public HoppityLocationConfig locations = new HoppityLocationConfig();

@Expose
@ConfigOption(name = "Shared Hoppity Waypoints", desc = "Enable being able to share and receive egg waypoints in your lobby.")
@ConfigEditorBoolean
@FeatureToggle
public boolean sharedWaypoints = true;
@ConfigOption(name = "Unclaimed Eggs", desc = "")
@Accordion
public HoppityUnclaimedEggsConfig unclaimedEggs = new HoppityUnclaimedEggsConfig();

@Expose
@ConfigOption(name = "Adjust player opacity", desc = "Adjust the opacity of players near shared & guessed egg waypoints. (in %)")
@ConfigEditorSlider(minValue = 0, maxValue = 100, minStep = 1)
public int playerOpacity = 40;

@Expose
@ConfigLink(owner = HoppityEggsConfig.class, field = "showClaimedEggs")
public Position position = new Position(200, 120, false, true);

@Expose
@ConfigOption(name = "Highlight Hoppity Shop", desc = "Highlight items that haven't been bought from the Hoppity shop yet.")
@ConfigEditorBoolean
Expand All @@ -195,52 +66,6 @@ public String toString() {
@FeatureToggle
public boolean hoppityShopReminder = true;

@Expose
@ConfigOption(name = "Time in Chat", desc = "When the Egglocator can't find an egg, show the time until the next Hoppity event or egg spawn.")
@ConfigEditorBoolean
@FeatureToggle
public boolean timeInChat = true;

@Expose
@ConfigOption(name = "Compact Chat", desc = "Compact chat events when finding a Hoppity Egg.")
@ConfigEditorBoolean
@FeatureToggle
public boolean compactChat = false;

@Expose
@ConfigOption(name = "Compacted Rarity", desc = "Show rarity of found rabbit in Compacted chat messages.")
@ConfigEditorDropdown
public CompactRarityTypes rarityInCompact = CompactRarityTypes.NEW;

public enum CompactRarityTypes {
NONE("Neither"),
NEW("New Rabbits"),
DUPE("Duplicate Rabbits"),
BOTH("New & Duplicate Rabbits"),
;

private final String name;

CompactRarityTypes(String name) {
this.name = name;
}

@Override
public String toString() {
return name;
}
}

@Expose
@ConfigOption(name = "Show Duplicate Count", desc = "Show the number of previous finds of a duplicate Hoppity rabbit in chat messages.")
@ConfigEditorBoolean
public boolean showDuplicateNumber = false;

@Expose
@ConfigOption(name = "Recolor Time-Towered Chocolate", desc = "Recolor raw chocolate gain from duplicate rabbits while Time Tower is active.")
@ConfigEditorBoolean
public boolean recolorTTChocolate = false;

@Expose
@ConfigOption(
name = "Rabbit Pet Warning",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package at.hannibal2.skyhanni.config.features.event.hoppity;

import at.hannibal2.skyhanni.config.FeatureToggle;
import com.google.gson.annotations.Expose;
import io.github.notenoughupdates.moulconfig.annotations.ConfigEditorBoolean;
import io.github.notenoughupdates.moulconfig.annotations.ConfigOption;

public class HoppityLocationConfig {
@Expose
@ConfigOption(name = "Mark Duplicate Locations", desc = "Marks egg location waypoints which you have already found in red.")
@ConfigEditorBoolean
@FeatureToggle
public boolean highlightDuplicates = false;

@Expose
@ConfigOption(name = "Mark Nearby Duplicates", desc = "Always show duplicate egg locations when nearby.")
@ConfigEditorBoolean
@FeatureToggle
public boolean showNearbyDuplicates = false;

@Expose
@ConfigOption(name = "Load from NEU PV", desc = "Load Hoppity Egg Location data from API when opening the NEU Profile Viewer.")
@ConfigEditorBoolean
@FeatureToggle
public boolean loadFromNeuPv = true;
}
Loading
Loading