aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md12
-rw-r--r--FEATURES.md9
-rw-r--r--build.gradle.kts6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/api/CollectionAPI.kt26
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/Features.java22
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Ashfang.java16
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Bazaar.java2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Chat.java27
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/CommandsFeatures.java2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/DamageIndicator.java6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Diana.java2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Dungeon.java34
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Fishing.java6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Garden.java138
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Hidden.java7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Inventory.java37
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/ItemAbilities.java4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Minions.java12
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Misc.java33
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Mobs.java4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Slayer.java2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Summonings.java8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ApiDataLoader.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ChatManager.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/HyPixelData.kt28
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/InventoryData.kt34
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/IslandType.kt1
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/SkillExperience.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/ToolTipData.kt21
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/CollectionUpdateEvent.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/GardenToolChangeEvent.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/InventoryOpenEvent.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/LorenzEvent.kt8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/events/LorenzToolTipEvent.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarApi.kt25
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarBestSellMethod.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarCancelledBuyOrderClipboard.kt4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/bazaar/BazaarOrderHelper.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/chat/ChatFilter.kt45
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/damageindicator/DamageIndicatorManager.kt21
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/fishing/BarnFishingTimer.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/CropMoneyDisplay.kt171
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/DicerRngDropCounter.kt130
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/EliteFarmingWeight.kt235
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenAPI.kt98
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenBestCropTime.kt84
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenCropMilestoneDisplay.kt148
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenCustomKeybinds.kt47
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenDeskInSBMenu.kt51
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenInventoryNumbers.kt6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenLevelDisplay.kt147
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenNextPlotPrice.kt10
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenOptimalSpeed.kt9
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenVisitorFeatures.kt48
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/GardenVisitorTimer.kt11
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/garden/SkyMartBestProfit.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/inventory/ItemDisplayOverlayFeatures.kt5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/inventory/JacobFarmingContestsInventory.kt162
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/misc/NonGodPotEffectDisplay.kt57
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/DailyQuestHelper.kt51
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/nether/reputationhelper/dailyquest/QuestLoader.kt57
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/slayer/blaze/BlazeSlayerDaggerHelper.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/gui/MixinGuiContainer.java6
-rw-r--r--src/main/java/at/hannibal2/skyhanni/mixins/transformers/gui/MixinGuiNewChat.java5
-rw-r--r--src/main/java/at/hannibal2/skyhanni/test/LorenzTest.kt7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt13
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/RenderUtils.kt3
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/TimeUtils.kt32
70 files changed, 1785 insertions, 481 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bf339d140..f72d8ebcd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,7 +9,9 @@
+ Added support for tier 1 minions and title send for the minion craft helper.
+ Added Chicken head Timer.
+ Added **rancher boots** speed display.
-+ Added **Optimal Speed** - Show the optimal speed for your current tool in the hand. (Ty MelonKingDE for the values)
++ Added **Unclaimed Rewards** - Highlight contests with unclaimed rewards in the jacob inventory.
++ Added **Duplicate Hider** - Hides duplicate farming contests in the inventory.
++ Added **Contest Time** - Adds the real time format to the farming contest description.
### Garden Features
+ Added **Copper Price** - Show copper to coin prices inside the Sky Mart inventory.
@@ -27,6 +29,13 @@
+ Added **Copper Price** - Show the price for copper inside the visitor gui.
+ Added **Amount and Time** - Show the exact item amount and the remaining time when farmed manually. Especially useful for ironman.
+ Added **Custom Keybinds** - Use custom keybinds while having a farming tool or Daedalus Axe in the hand in the garden.
++ Added Desk shortcut in SkyBlock Menu.
++ Added **Garden Level Display** - Show the current garden level and progress to the next level.
++ Added **Farming Weight and Leaderboard**, provided by the elite skyblock farmers.
++ Added **Dicer Counter** - Count RNG drops for Melon Dicer and Pumpkin Dicer.
++ Added **Optimal Speed** - Show the optimal speed for your current tool in the hand. (Ty MelonKingDE for the values)
++ Added **Warn When Close** - Warn with title and sound when the next crop milestone upgrade happens in 5 seconds. Useful for switching to a different pet for leveling.
++ Added **Money per Hour** - Displays the money per hour YOU get with YOUR crop/minute value when selling the items to bazaar.
### Features from other Mods
@@ -48,6 +57,7 @@
+ Fixed dungeon milestone messages getting wrongfully formatted.
+ Fixed bazaar features not working for items with an - (turbo farming books and triple strike)
+ Fixed Crab Hat of Celebration not being detected as an accessory correctly.
++ Added support for soopy's \[hand] feature
## Version 0.16 (2023-02-11)
diff --git a/FEATURES.md b/FEATURES.md
index fac1f0462..a48d3d0a0 100644
--- a/FEATURES.md
+++ b/FEATURES.md
@@ -58,6 +58,9 @@
+ Highlight depleted Bonzo's Masks in your inventory.
+ Highlight stuff that is missing in the skyblock level guide inventory.
+ **Auction Highlighter** - Highlight own items that are sold in green and that are expired in red.
++ **Unclaimed Rewards** - Highlight contests with unclaimed rewards in the jacob inventory.
++ **Duplicate Hider** - Hides duplicate farming contests in the inventory.
++ **Contest Time** - Adds the real time format to the farming contest description.
## Item Abilities
- Show the cooldown of items in the inventory.
@@ -175,6 +178,12 @@
+ **Amount and Time** - Show the exact item amount and the remaining time when farmed manually. Especially useful for ironman.
+ **Custom Keybinds** - Use custom keybinds while having a farming tool or Daedalus Axe in the hand in the garden.
+ **Optimal Speed** - Show the optimal speed for your current tool in the hand. (Ty MelonKingDE for the values)
++ Desk shortcut in SkyBlock Menu.
++ **Garden Level Display** - Show the current garden level and progress to the next level.
++ **Farming Weight and Leaderboard**, provided by the elite skyblock farmers.
++ **Dicer Counter** - Count RNG drops for Melon Dicer and Pumpkin Dicer.
++ **Warn When Close** - Warn with title and sound when the next crop milestone upgrade happens in 5 seconds. Useful for switching to a different pet for leveling.
++ **Money per Hour** - Displays the money per hour YOU get with YOUR crop/minute value when selling the items to bazaar.
## Commands
- /wiki (using hypixel-skyblock.fandom.com instead of Hypixel wiki)
diff --git a/build.gradle.kts b/build.gradle.kts
index 7b75d47e2..369791852 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -10,7 +10,7 @@ plugins {
}
group = "at.hannibal2.skyhanni"
-version = "0.17.Beta.7"
+version = "0.17.Beta.19"
// Toolchains:
java {
@@ -57,7 +57,9 @@ dependencies {
annotationProcessor("org.spongepowered:mixin:0.8.4-SNAPSHOT")
implementation(kotlin("stdlib-jdk8"))
- implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
+ shadowImpl("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") {
+ exclude(group = "org.jetbrains.kotlin")
+ }
// If you don't want to log in with your real minecraft account, remove this line
modRuntimeOnly("me.djtheredstoner:DevAuth-forge-legacy:1.1.0")
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
index d50326d5d..a61134c92 100644
--- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
+++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
@@ -73,7 +73,7 @@ import java.util.List;
public class SkyHanniMod {
public static final String MODID = "skyhanni";
- public static final String VERSION = "0.17.Beta.7";
+ public static final String VERSION = "0.17.Beta.19";
public static Features feature;
@@ -115,6 +115,7 @@ public class SkyHanniMod {
loadModule(new RenderGuiData());
loadModule(new GardenCropMilestones());
loadModule(new OwnInventoryData());
+ loadModule(new ToolTipData());
// APIs
loadModule(new BazaarApi());
@@ -216,6 +217,12 @@ public class SkyHanniMod {
loadModule(new GardenCustomKeybinds());
loadModule(new ChickenHeadTimer());
loadModule(new GardenOptimalSpeed());
+ loadModule(new GardenDeskInSBMenu());
+ loadModule(new GardenLevelDisplay());
+ loadModule(new EliteFarmingWeight());
+ loadModule(new DicerRngDropCounter());
+ loadModule(new CropMoneyDisplay());
+ loadModule(new JacobFarmingContestsInventory());
Commands.INSTANCE.init();
diff --git a/src/main/java/at/hannibal2/skyhanni/api/CollectionAPI.kt b/src/main/java/at/hannibal2/skyhanni/api/CollectionAPI.kt
index e79e60dfb..f86819895 100644
--- a/src/main/java/at/hannibal2/skyhanni/api/CollectionAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/api/CollectionAPI.kt
@@ -1,11 +1,13 @@
package at.hannibal2.skyhanni.api
+import at.hannibal2.skyhanni.events.CollectionUpdateEvent
import at.hannibal2.skyhanni.events.InventoryOpenEvent
import at.hannibal2.skyhanni.events.ProfileApiDataLoadedEvent
import at.hannibal2.skyhanni.events.ProfileJoinEvent
import at.hannibal2.skyhanni.features.bazaar.BazaarApi
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.ItemUtils.name
+import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.StringUtils.removeColor
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import java.util.regex.Pattern
@@ -14,10 +16,19 @@ class CollectionAPI {
private val counterPattern = Pattern.compile("(?:.*) §e(.*)§6\\/(?:.*)")
private val singleCounterPattern = Pattern.compile("§7Total Collected: §e(.*)")
+ private val hypixelApiHasWrongItems = listOf(
+ "WOOL",
+ "CORRUPTED_FRAGMENT",
+ "EGG",
+ "POISONOUS_POTATO",
+ )
+
@SubscribeEvent
fun onProfileDataLoad(event: ProfileApiDataLoadedEvent) {
val profileData = event.profileData
- for ((rawName, rawCounter) in profileData["collection"].asJsonObject.entrySet()) {
+ val jsonElement = profileData["collection"]?: return
+ val asJsonObject = jsonElement.asJsonObject ?: return
+ for ((rawName, rawCounter) in asJsonObject.entrySet()) {
val counter = rawCounter.asLong
var itemName = BazaarApi.getBazaarDataForInternalName(rawName)?.itemName
if (rawName == "MUSHROOM_COLLECTION") {
@@ -29,16 +40,19 @@ class CollectionAPI {
if (rawName == "GEMSTONE_COLLECTION") {
itemName = "Gemstone"
}
+
// Hypixel moment
- if (rawName == "WOOL" || rawName == "CORRUPTED_FRAGMENT") {
- continue
- }
+ if (hypixelApiHasWrongItems.contains(rawName)) continue
+
if (itemName == null) {
- println("collection name is null for '$rawName'")
+ LorenzUtils.debug("collection name is null for '$rawName'")
+ println()
continue
}
collectionValue[itemName] = counter
}
+
+ CollectionUpdateEvent().postAndCatch()
}
@SubscribeEvent
@@ -59,6 +73,7 @@ class CollectionAPI {
collectionValue[name] = counter
}
}
+ CollectionUpdateEvent().postAndCatch()
}
if (inventoryName.endsWith(" Collections")) {
@@ -83,6 +98,7 @@ class CollectionAPI {
}
}
}
+ CollectionUpdateEvent().postAndCatch()
}
}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/Features.java b/src/main/java/at/hannibal2/skyhanni/config/Features.java
index c9ab200ca..e087b790c 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/Features.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/Features.java
@@ -203,6 +203,26 @@ public class Features extends Config {
editOverlay(activeConfigCategory, 200, 16, garden.optimalSpeedPos);
return;
}
+
+ if (runnableId.equals("gardenLevel")) {
+ editOverlay(activeConfigCategory, 200, 16, garden.gardenLevelPos);
+ return;
+ }
+
+ if (runnableId.equals("eliteFarmingWeight")) {
+ editOverlay(activeConfigCategory, 200, 16, garden.eliteFarmingWeightPos);
+ return;
+ }
+
+ if (runnableId.equals("dicerCounter")) {
+ editOverlay(activeConfigCategory, 200, 16, garden.dicerCounterPos);
+ return;
+ }
+
+ if (runnableId.equals("moneyPerHour")) {
+ editOverlay(activeConfigCategory, 200, 16, garden.moneyPerHourPos);
+ return;
+ }
}
@Expose
@@ -266,7 +286,7 @@ public class Features extends Config {
public Bingo bingo = new Bingo();
@Expose
- @Category(name = "Mobs", desc = "Visual Help for Mobs")
+ @Category(name = "Mobs", desc = "Visual help for Mobs")
public Mobs mobs = new Mobs();
@Expose
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Ashfang.java b/src/main/java/at/hannibal2/skyhanni/config/features/Ashfang.java
index 9708f5dd4..5c7c719ae 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Ashfang.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Ashfang.java
@@ -10,7 +10,7 @@ import com.google.gson.annotations.Expose;
public class Ashfang {
@Expose
- @ConfigOption(name = "Freeze", desc = "Show the cooldown how long Ashfang blocks all your abilities.")
+ @ConfigOption(name = "Freeze", desc = "Show the cooldown for how long Ashfang blocks your abilities.")
@ConfigEditorBoolean
public boolean freezeCooldown = false;
@@ -20,7 +20,7 @@ public class Ashfang {
public Position freezeCooldownPos = new Position(10, 10, false, true);
@Expose
- @ConfigOption(name = "Reset Time", desc = "Show the cooldown until ashfang pulls his underlings back.")
+ @ConfigOption(name = "Reset Time", desc = "Show the cooldown until Ashfang pulls his underlings back.")
@ConfigEditorBoolean
public boolean nextResetCooldown = false;
@@ -30,7 +30,7 @@ public class Ashfang {
public Position nextResetCooldownPos = new Position(10, 10, false, true);
@Expose
- @ConfigOption(name = "Gravity Orbs", desc = "Showing the Gravity Orbs more clearly.")
+ @ConfigOption(name = "Gravity Orbs", desc = "Shows the Gravity Orbs more clearly.")
@ConfigEditorBoolean
public boolean gravityOrbs = false;
@@ -40,7 +40,7 @@ public class Ashfang {
public String gravityOrbsColor = "0:120:255:85:85";
@Expose
- @ConfigOption(name = "Blazing Souls", desc = "Showing the Blazing Souls more clearly.")
+ @ConfigOption(name = "Blazing Souls", desc = "Shows the Blazing Souls more clearly.")
@ConfigEditorBoolean
public boolean blazingSouls = false;
@@ -50,22 +50,22 @@ public class Ashfang {
public String blazingSoulsColor = "0:245:85:255:85";
@Expose
- @ConfigOption(name = "Highlight Blazes", desc = "Highlight the different blazes in their respected color.")
+ @ConfigOption(name = "Highlight Blazes", desc = "Highlight the different blazes in their respective colors.")
@ConfigEditorBoolean
public boolean highlightBlazes = false;
@Expose
- @ConfigOption(name = "Hide Particles", desc = "Hide particles around the ashfang boss.")
+ @ConfigOption(name = "Hide Particles", desc = "Hide particles around the Ashfang boss.")
@ConfigEditorBoolean
public boolean hideParticles = false;
@Expose
- @ConfigOption(name = "Hide Names", desc = "Hide the name of full health blazes around ashfang (only useful when highlight blazes is enabled)")
+ @ConfigOption(name = "Hide Names", desc = "Hide the names of full health blazes around Ashfang (only useful when highlight blazes is enabled)")
@ConfigEditorBoolean
public boolean hideNames = false;
@Expose
- @ConfigOption(name = "Hide Damage", desc = "Hide damage splashes around ashfang.")
+ @ConfigOption(name = "Hide Damage", desc = "Hide damage splashes around Ashfang.")
@ConfigEditorBoolean
public boolean hideDamageSplash = false;
}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Bazaar.java b/src/main/java/at/hannibal2/skyhanni/config/features/Bazaar.java
index 2e3ea2195..a324d2a86 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Bazaar.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Bazaar.java
@@ -29,7 +29,7 @@ public class Bazaar {
public boolean cancelledBuyOrderClipboard = true;
@Expose
- @ConfigOption(name = "Update Timer", desc = "A countdown timer for upcoming Bazzar data update.")
+ @ConfigOption(name = "Update Timer", desc = "A countdown timer for the next Bazaar data update.")
@ConfigEditorBoolean
public boolean updateTimer = false;
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java b/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java
index 4b4610d75..4eb0547d0 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java
@@ -8,7 +8,7 @@ public class Bingo {
@Expose
@ConfigOption(name = "Compact Chat Messages", desc = "Shortens chat messages about skill level ups, collection gains, " +
- "new area discoveries, and bestiarity upgrades while on bingo.")
+ "new area discoveries, and bestiary upgrades while on bingo.")
@ConfigEditorBoolean
public boolean compactChatMessages = true;
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java b/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java
index 35c764116..b9f83a887 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java
@@ -7,7 +7,7 @@ import org.lwjgl.input.Keyboard;
public class Chat {
@Expose
- @ConfigOption(name = "Peek Chat", desc = "Hold this key to keep the chat open")
+ @ConfigOption(name = "Peek Chat", desc = "Hold this key to keep the chat open.")
@ConfigEditorKeybind(defaultKey = Keyboard.KEY_Z)
public int peekChat = Keyboard.KEY_Z;
@@ -29,7 +29,7 @@ public class Chat {
public boolean empty = true;
@Expose
- @ConfigOption(name = "Warping", desc = "Block 'sending request to join ..' and 'warping ..' messages.")
+ @ConfigOption(name = "Warping", desc = "Block 'sending request to join...' and 'warping...' messages.")
@ConfigEditorBoolean
@ConfigAccordionId(id = 0