Skip to content

Commit

Permalink
Merge branch 'beta' of https://github.com/hannibal002/SkyHanni into i…
Browse files Browse the repository at this point in the history
…tem-stack-size-playergeneral
  • Loading branch information
RayDeeUx committed Feb 9, 2024
2 parents c48f867 + fc7a9d0 commit d690f13
Show file tree
Hide file tree
Showing 25 changed files with 592 additions and 50 deletions.
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@
+ Added Sea Creature Tracker. - hannibal2
+ Allows to only show single variants, e.g. water or lava or winter.

#### Mining Features

+ Added Deep Caverns Parkour. - hannibal2
+ Shows a parkour to the bottom of Deep Caverns and to Rhys.

#### Dungeon Features

+ Hide particles and damage splashes during the terracotta phase in dungeons F6 and M6. - hannibal2
Expand Down Expand Up @@ -140,6 +145,7 @@
#### Diana Changes

+ Changed the Griffin Burrow Guess text to a centered title instead of an odd line that goes down. - hannibal2
+ Removed unnecessary error messages in Diana Burrow detection. - hannibal2

#### Chat Changes

Expand Down Expand Up @@ -181,6 +187,8 @@
+ Fixed rarity error for items thrown around when using Sprayanator. - hannibal2
+ Added cooldown to Garden Warp Commands. - Empa
+ Fixed the detection of Anita and Jacob visitors. - hannibal2
+ Fixed the pets menu detection for /ff. - martimavocado
+ Fixed Anita and Jacob workaround working outside of garden. - CalMWolfs

#### Combat Fixes

Expand Down Expand Up @@ -220,6 +228,7 @@
+ Fixed Mining Chat Filter not hiding gemstone messages. - CalMWolfs
+ Fixed names for the Crystal Hollows Mining Areas feature. - alexia
+ Fixed detection of gold and diamond essence gain chat message when powder mining. - CalMWolfs
+ Fixed powder mining start/end detection in Powder Tracker. - CalMWolfs

#### Rift Fixes

Expand All @@ -240,6 +249,8 @@
+ Fixed rune price calculation in Chest Value. - hannibal2
+ Fixed Power Stone Guide Highlight shows in other inventories when exiting via command. - hannibal2
+ Added options to hide Helmet Skins, Armor Dyes or Runes from Estimated Item Value Calculation. - hannibal2
+ Fixed Divine Gift and Flash enchants showing the wrong/no price in EstimatedItemValue. - jani
+ Fixed showing the Piece of Wizard Portal earned duplicate. - Thunderblade73

#### Bingo Fixes

Expand Down Expand Up @@ -275,6 +286,7 @@
+ Fixed NPC typos in config. - absterge
+ Fixed rare error in Harp Features. - Thunderblade73
+ Fixed some getItemStack errors. - CalMWolfs
+ Fixed Minion XP calculation not working when having different mouse settings. - Thunderblade73

### Technical Changes

Expand Down Expand Up @@ -326,6 +338,12 @@
+ Using NEUInternalName in the Reputation Helper Quest. - CalMWolfs
+ Limit RAM to 4 GB in the developement enviroment. - CalMWolfs
+ This is just the default and can be changed if needed.
+ Made /shupdaterepo better. - CalMWolfs
+ Added alignment support to Renderable. - Thunderblade73
+ Added support for dynamic Y size in Renderables. - Thunderblade73
+ Added outgoing chat log to /shchathistory. - nea
+ Added sending mining events to Soopy's API to test for new Mining Event feature. - CalMWolfs
+ Added /shcopybossbar to copy bossbar - Erymanthus

## Version 0.22

Expand Down
2 changes: 2 additions & 0 deletions FEATURES.md
Original file line number Diff line number Diff line change
Expand Up @@ -688,6 +688,8 @@ Use `/sh` or `/skyhanni` to open the SkyHanni config in game.
+ Fully customizable: change what items or stats to show.
+ Has support for the maxed Great Explorer perk.
+ Option to hide while not grinding powder.
+ Added Deep Caverns Parkour. - hannibal2
+ Shows a parkour to the bottom of Deep Caverns and to Rhys.

</details>
<details open><summary>
Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ plugins {
}

group = "at.hannibal2.skyhanni"
version = "0.23.Beta.16"
version = "0.23.Beta.17"

val gitHash by lazy {
val baos = ByteArrayOutputStream()
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import at.hannibal2.skyhanni.config.SackData
import at.hannibal2.skyhanni.config.commands.Commands.init
import at.hannibal2.skyhanni.data.ActionBarStatsData
import at.hannibal2.skyhanni.data.BlockData
import at.hannibal2.skyhanni.data.BossbarData
import at.hannibal2.skyhanni.data.ChatManager
import at.hannibal2.skyhanni.data.CropAccessoryData
import at.hannibal2.skyhanni.data.EntityData
Expand Down Expand Up @@ -229,6 +230,7 @@ import at.hannibal2.skyhanni.features.mining.DeepCavernsParkour
import at.hannibal2.skyhanni.features.mining.HighlightMiningCommissionMobs
import at.hannibal2.skyhanni.features.mining.KingTalismanHelper
import at.hannibal2.skyhanni.features.mining.crystalhollows.CrystalHollowsNamesInCore
import at.hannibal2.skyhanni.features.mining.eventtracker.MiningEventTracker
import at.hannibal2.skyhanni.features.mining.powdertracker.PowderTracker
import at.hannibal2.skyhanni.features.minion.MinionCollectLogic
import at.hannibal2.skyhanni.features.minion.MinionFeatures
Expand Down Expand Up @@ -381,7 +383,7 @@ import org.apache.logging.log4j.Logger
clientSideOnly = true,
useMetadata = true,
guiFactory = "at.hannibal2.skyhanni.config.ConfigGuiForgeInterop",
version = "0.23.Beta.16",
version = "0.23.Beta.17",
)
class SkyHanniMod {

Expand Down Expand Up @@ -444,6 +446,7 @@ class SkyHanniMod {
loadModule(TrackerManager)
loadModule(UtilsPatterns)
loadModule(PetAPI)
loadModule(BossbarData)

// APIs
loadModule(BazaarApi())
Expand Down Expand Up @@ -727,6 +730,7 @@ class SkyHanniMod {
loadModule(SprayDisplay())
loadModule(HighlightPlaceableNpcs())
loadModule(PresentWaypoints())
loadModule(MiningEventTracker())
loadModule(JyrreTimer())
loadModule(NewYearCakeReminder())
loadModule(SulphurSkitterBox())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ import at.hannibal2.skyhanni.test.SkyHanniConfigSearchResetCommand
import at.hannibal2.skyhanni.test.SkyHanniDebugsAndTests
import at.hannibal2.skyhanni.test.TestBingo
import at.hannibal2.skyhanni.test.WorldEdit
import at.hannibal2.skyhanni.test.command.CopyBossbarCommand
import at.hannibal2.skyhanni.test.command.CopyItemCommand
import at.hannibal2.skyhanni.test.command.CopyNearbyEntitiesCommand
import at.hannibal2.skyhanni.test.command.CopyNearbyParticlesCommand
Expand Down Expand Up @@ -355,6 +356,10 @@ object Commands {
"shcopyscoreboard",
"Copies the scoreboard data to the clipboard"
) { CopyScoreboardCommand.command(it) }
registerCommand(
"shcopybossbar",
"Copies the name of the bossbar to the clipboard, including formatting codes"
) { CopyBossbarCommand.command(it) }
registerCommand(
"shcopyitem",
"Copies information about the item in hand to the clipboard"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,16 @@
import at.hannibal2.skyhanni.config.FeatureToggle;
import com.google.gson.annotations.Expose;
import io.github.moulberry.moulconfig.annotations.Accordion;
import io.github.moulberry.moulconfig.annotations.Category;
import io.github.moulberry.moulconfig.annotations.ConfigEditorBoolean;
import io.github.moulberry.moulconfig.annotations.ConfigOption;

public class MiningConfig {

@Expose
@Category(name = "Mining Event Tracker", desc = "Settings for the Mining Event Tracker")
public MiningEventConfig miningEvent = new MiningEventConfig();

@Expose
@ConfigOption(name = "Powder Tracker", desc = "")
@Accordion
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package at.hannibal2.skyhanni.config.features.mining;

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

public class MiningEventConfig {

// @Expose
// @ConfigOption(name = "Enabled", desc = "Show information about upcoming Dwarven Mines and Crystal Hollows mining events, also enables you sending data.")
// @ConfigEditorBoolean
// @FeatureToggle
// public boolean enabled = true;
//
// @Expose
// @ConfigOption(name = "Show Outside Mining Islands", desc = "Shows the event tracker when you are not inside of the Dwarven Mines or Crystal Hollows.")
// @ConfigEditorBoolean
// public boolean outsideMining = true;
//
// @Expose
// @ConfigOption(name = "What to Show", desc = "Choose which island's events are shown in the gui.")
// @ConfigEditorDropdown
// public ShowType showType = ShowType.BOTH;
//
// @Expose
// @ConfigOption(name = "Show Warnings For Events", desc = "Shows the warnings when select mining events are about to start.")
// @ConfigEditorBoolean
// @FeatureToggle
// public boolean showWarnings = false;

//todo remove when released
@Expose
@ConfigOption(name = "Send Test data", desc = "Sends test data to make sure the api works.")
@ConfigEditorBoolean
@FeatureToggle
public boolean sendData = true;

// @Expose
// @ConfigOption(name = "Events to Warn for", desc = "Choose which mining events you get warned about.")
// @ConfigEditorDraggableList
// public List<MiningEvent> eventsToWarn = new ArrayList<>(Collections.singletonList(MiningEvent.DOUBLE_POWDER));

public enum ShowType {
BOTH("Both Mining Islands"),
CRYSTAL("Crystal Hollows Only"),
DWARVEN("Dwarven Mines Only")
;

private final String str;

ShowType(String str) {
this.str = str;
}

@Override
public String toString() {
return str;
}
}
}
33 changes: 33 additions & 0 deletions src/main/java/at/hannibal2/skyhanni/data/BossbarData.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package at.hannibal2.skyhanni.data

import at.hannibal2.skyhanni.events.BossbarUpdateEvent
import at.hannibal2.skyhanni.events.LorenzTickEvent
import at.hannibal2.skyhanni.events.LorenzWorldChangeEvent
import net.minecraft.entity.boss.BossStatus
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent

object BossbarData {
private var bossbar: String? = null
private var previousServerBossbar = ""

fun getBossbar() = bossbar ?: ""

@SubscribeEvent
fun onWorldChange(event: LorenzWorldChangeEvent) {
val oldBossbar = bossbar ?: return
previousServerBossbar = oldBossbar
bossbar = null
}

@SubscribeEvent
fun onTick(event: LorenzTickEvent) {
val bossbarLine = BossStatus.bossName ?: return
if (bossbarLine.isBlank() || bossbarLine.isEmpty()) return
if (bossbarLine == bossbar) return
if (bossbarLine == previousServerBossbar) return
if (previousServerBossbar.isNotEmpty()) previousServerBossbar = ""

bossbar = bossbarLine
BossbarUpdateEvent(bossbarLine).postAndCatch()
}
}
12 changes: 11 additions & 1 deletion src/main/java/at/hannibal2/skyhanni/data/ChatManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import net.minecraft.client.gui.GuiNewChat
import net.minecraft.event.HoverEvent
import net.minecraft.network.play.client.C01PacketChatMessage
import net.minecraft.network.play.server.S02PacketChat
import net.minecraft.util.ChatComponentText
import net.minecraft.util.EnumChatFormatting
import net.minecraft.util.IChatComponent
import net.minecraftforge.client.event.ClientChatReceivedEvent
Expand Down Expand Up @@ -46,6 +47,8 @@ object ChatManager {
RETRACTED(EnumChatFormatting.DARK_PURPLE.toString() + EnumChatFormatting.BOLD),
MODIFIED(EnumChatFormatting.YELLOW.toString() + EnumChatFormatting.BOLD),
ALLOWED(EnumChatFormatting.GREEN),
OUTGOING(EnumChatFormatting.BLUE),
OUTGOING_BLOCKED(EnumChatFormatting.BLUE.toString() + EnumChatFormatting.BOLD),
;

val renderedString = "$format$name"
Expand Down Expand Up @@ -82,7 +85,14 @@ object ChatManager {
val packet = event.packet as? C01PacketChatMessage ?: return

val message = packet.message
event.isCanceled = MessageSendToServerEvent(message).postAndCatch()
val component = ChatComponentText(message)
messageHistory[IdentityCharacteristics(component)] =
MessageFilteringResult(component, ActionKind.OUTGOING, null, null)
if (MessageSendToServerEvent(message).postAndCatch()) {
event.isCanceled = true
messageHistory[IdentityCharacteristics(component)] =
MessageFilteringResult(component, ActionKind.OUTGOING_BLOCKED, null, null)
}
}

@SubscribeEvent(receiveCanceled = true)
Expand Down
47 changes: 43 additions & 4 deletions src/main/java/at/hannibal2/skyhanni/data/HypixelData.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,40 @@ import net.minecraftforge.fml.common.network.FMLNetworkEvent
import kotlin.concurrent.thread

class HypixelData {
private val group = RepoPattern.group("data.hypixeldata")
private val tabListProfilePattern by group.pattern("tablistprofile", "§e§lProfile: §r§a(?<profile>.*)")
private val lobbyTypePattern by group.pattern("lobbytype", "(?<lobbyType>.*lobby)\\d+")
private val islandNamePattern by group.pattern("islandname", "(?:§.)*(Area|Dungeon): (?:§.)*(?<island>.*)")
private val patternGroup = RepoPattern.group("data.hypixeldata")
private val tabListProfilePattern by patternGroup.pattern(
"tablistprofile",
"§e§lProfile: §r§a(?<profile>.*)"
)
private val lobbyTypePattern by patternGroup.pattern(
"lobbytype",
"(?<lobbyType>.*lobby)\\d+"
)
private val islandNamePattern by patternGroup.pattern(
"islandname",
"(?:§.)*(Area|Dungeon): (?:§.)*(?<island>.*)"
)

private var lastLocRaw = 0L

companion object {
private val patternGroup = RepoPattern.group("data.hypixeldata")
private val serverIdScoreboardPattern by patternGroup.pattern(
"serverid.scoreboard",
"§7\\d+/\\d+/\\d+ §8(?<servertype>[mM])(?<serverid>\\S+)"
)
private val serverIdTablistPattern by patternGroup.pattern(
"serverid.tablist",
" Server: §r§8(?<serverid>\\S+)"
)

var hypixelLive = false
var hypixelAlpha = false
var inLobby = false
var inLimbo = false
var skyBlock = false
var skyBlockIsland = IslandType.UNKNOWN
var serverId: String? = null

//Ironman, Stranded and Bingo
var noTrade = false
Expand Down Expand Up @@ -70,6 +90,24 @@ class HypixelData {
val lobbyType get() = locraw["lobbytype"] ?: ""
val mode get() = locraw["mode"] ?: ""
val map get() = locraw["map"] ?: ""

fun getCurrentServerId(): String? {
if (!LorenzUtils.inSkyBlock) return null
if (serverId != null) return serverId

ScoreboardData.sidebarLinesFormatted.forEach { serverIdScoreboardPattern.matchMatcher(it) {
val serverType = if (group("servertype") == "M") "mega" else "mini"
serverId = "$serverType${group("serverid")}"
return serverId
} }

TabListData.getTabList().forEach { serverIdTablistPattern.matchMatcher(it) {
serverId = group("serverid")
return serverId
} }

return serverId
}
}

private var loggerIslandChange = LorenzLogger("debug/island_change")
Expand All @@ -82,6 +120,7 @@ class HypixelData {
inLobby = false
locraw.forEach { locraw[it.key] = "" }
joinedWorld = System.currentTimeMillis()
serverId = null
}

@SubscribeEvent
Expand Down
Loading

0 comments on commit d690f13

Please sign in to comment.