Merge branch 'fix/party-overlay-hide-nf' into 'main'

fix: party overlay not hiding when player opens the pokedex scanner

Closes #2071

See merge request cable-mc/cobblemon!2467
This commit is contained in:
Polymeta
2026-10-15 15:37:49 +00:00
11 changed files with 85 additions and 1 deletions
+2
View File
@@ -38,6 +38,8 @@
- Fixed choice feature tab completion in `spawnpokemon/pokegive/pokeedit` commands
- Fixed MoLang that's targeting players intermittedly failing when they have died, needing them to relog
- Fixed all pots of mod on NeoForge
- Fixed party overlay not hiding when player opens the pokedex scanner
- Added compat for AppleSkin
### Developer
- Bumped NeoForge to `21.1.195` to get access to MixinExtras `0.5` and the expressions annotation
@@ -85,6 +85,7 @@ class PartyOverlay : Gui(Minecraft.getInstance()) {
if (HidePartyBinding.shouldHide) {
return false
}
return true
}
}
@@ -558,4 +559,4 @@ class PartyOverlay : Gui(Minecraft.getInstance()) {
}
}
}
}
}
+3
View File
@@ -85,6 +85,9 @@ dependencies {
minecraftServerLibraries(libs.icu4j)
// AppleSkin stores api under `api` classifier in their coordinates
// Because of that, we cannot just add it to integrations bundle
modCompileOnly(variantOf(libs.appleskin.api.fabric) { classifier("api") })
}
publishing {
@@ -0,0 +1,28 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.fabric.client.integration.appleskin
import com.cobblemon.mod.common.client.CobblemonClient
import squeek.appleskin.api.AppleSkinApi
import squeek.appleskin.api.event.HUDOverlayEvent
class AppleSkinClientEventHandler: AppleSkinApi {
override fun registerEvents() {
HUDOverlayEvent.Exhaustion.EVENT.register(::checkIsScanning)
HUDOverlayEvent.Saturation.EVENT.register(::checkIsScanning)
HUDOverlayEvent.HealthRestored.EVENT.register(::checkIsScanning)
HUDOverlayEvent.HungerRestored.EVENT.register(::checkIsScanning)
}
private fun checkIsScanning(e: HUDOverlayEvent) {
if (CobblemonClient.pokedexUsageContext.scanningGuiOpen) {
e.isCanceled = true
}
}
}
@@ -33,6 +33,9 @@
],
"modmenu": [
"com.cobblemon.mod.fabric.client.integration.modmenu.CobblemonModMenu"
],
"appleskin": [
"com.cobblemon.mod.fabric.client.integration.appleskin.AppleSkinClientEventHandler"
]
},
"mixins": [
@@ -37,6 +37,9 @@ repositories {
//JEI
maven("https://maven.blamejared.com/")
maven("https://maven.parchmentmc.org")
// AppleSkin
maven("https://maven.ryanliptak.com/")
}
license {
+3
View File
@@ -16,6 +16,7 @@ moddev = "1.0.11"
# Common
molang = "1.1.20"
jei-api = "19.22.1.316"
appleskin-api = "mc1.21-3.0.5"
# Graal
graal = "22.3.0"
@@ -85,6 +86,7 @@ jei-fabric = { group = "mezz.jei", name = "jei-1.21.1-fabric", version.ref = "je
fabric-debugutils = { group = "maven.modrinth", name = "debugutils", version.ref = "debugutils-fabric"}
mod-menu = { group = "com.terraformersmc", name = "modmenu", version.ref = "mod-menu" }
c2me-fabric = { group = "maven.modrinth", name = "c2me-fabric", version.ref = "c2me-fabric" }
appleskin-api-fabric = { group = "squeek.appleskin", name = "appleskin-fabric", version.ref = "appleskin-api" }
# NeoForge
neoforge-api = { group = "net.neoforged", name = "neoforge", version.ref = "neoforge" }
@@ -92,6 +94,7 @@ neo-kotlin-forge = { group = "thedarkcolour", name = "kotlinforforge-neoforge",
neoforge-debugutils = { group = "maven.modrinth", name = "debugutils", version.ref = "debugutils-forge"}
jei-neoforge = { group = "mezz.jei", name = "jei-1.21.1-neoforge", version.ref = "jei-api"}
c2me-neoforge = { group = "maven.modrinth", name = "c2me-neoforge", version.ref = "c2me-neoforge" }
appleskin-api-neoforge = { group = "squeek.appleskin", name = "appleskin-neoforge", version.ref = "appleskin-api" }
# Data Storage
mongo-driver-core = { group = "org.mongodb", name = "mongodb-driver-core", version.ref = "mongo" }
+3
View File
@@ -68,6 +68,9 @@ dependencies {
bundle(it)
}
// AppleSkin stores api under `api` classifier in their coordinates
// Because of that, we cannot just add it to integrations bundle
modCompileOnly(variantOf(libs.appleskin.api.neoforge) { classifier("api") })
}
tasks {
@@ -26,6 +26,7 @@ import com.cobblemon.mod.common.item.PokedexItem
import com.cobblemon.mod.common.particle.CobblemonParticles
import com.cobblemon.mod.common.particle.SnowstormParticleType
import com.cobblemon.mod.common.util.isUsingPokedex
import com.cobblemon.mod.neoforge.client.integration.appleskin.AppleSkinClientEventHandler
import java.util.concurrent.CompletableFuture
import java.util.function.Supplier
import net.minecraft.client.Minecraft
@@ -92,7 +93,9 @@ object CobblemonNeoForgeClient : CobblemonClientImplementation {
event.enqueueWork {
CobblemonClient.initialize(this)
CobblemonModelPredicateRegistry.registerPredicates()
this.attemptClientModCompat()
}
NeoForgeClientPlatformEventHandler.register()
val modContainer = ModList.get().getModContainerById(Cobblemon.MODID).get()
@@ -233,4 +236,10 @@ object CobblemonNeoForgeClient : CobblemonClientImplementation {
}
}
}
private fun attemptClientModCompat() {
if (Cobblemon.implementation.isModInstalled("appleskin")) {
AppleSkinClientEventHandler.register()
}
}
}
@@ -8,11 +8,13 @@
package com.cobblemon.mod.neoforge.client
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.platform.events.ClientEntityEvent
import com.cobblemon.mod.common.platform.events.ClientPlayerEvent
import com.cobblemon.mod.common.platform.events.ClientTickEvent
import com.cobblemon.mod.common.platform.events.PlatformEvents
import com.cobblemon.mod.common.platform.events.RenderEvent
import com.cobblemon.mod.neoforge.client.integration.appleskin.AppleSkinClientEventHandler
import net.minecraft.client.Minecraft
import net.minecraft.client.multiplayer.ClientLevel
import net.neoforged.api.distmarker.Dist
@@ -0,0 +1,27 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.neoforge.client.integration.appleskin
import com.cobblemon.mod.common.client.CobblemonClient
import net.neoforged.bus.api.SubscribeEvent
import net.neoforged.neoforge.common.NeoForge
import squeek.appleskin.api.event.HUDOverlayEvent
object AppleSkinClientEventHandler {
fun register() {
NeoForge.EVENT_BUS.register(this)
}
@SubscribeEvent
fun onHudLayerEvent(e: HUDOverlayEvent) {
if (CobblemonClient.pokedexUsageContext.scanningGuiOpen) {
e.isCanceled = true
}
}
}