aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/events
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-11-17 19:55:02 +0100
committerLinnea Gräf <nea@nea.moe>2025-11-17 19:55:02 +0100
commitc93a04a001b0f66b2724d46b04b6d1ed49a08d07 (patch)
tree5869ca70acc482ef0362f27785c3d3f1cbb9ffae /src/main/kotlin/events
parentaf9893b59407c69d31ebd2ed513f0396ab4d2dc9 (diff)
downloadFirmament-c93a04a001b0f66b2724d46b04b6d1ed49a08d07.tar.gz
Firmament-c93a04a001b0f66b2724d46b04b6d1ed49a08d07.tar.bz2
Firmament-c93a04a001b0f66b2724d46b04b6d1ed49a08d07.zip
refactor: port to mojmaps
Diffstat (limited to 'src/main/kotlin/events')
-rw-r--r--src/main/kotlin/events/AllowChatEvent.kt4
-rw-r--r--src/main/kotlin/events/AttackBlockEvent.kt16
-rw-r--r--src/main/kotlin/events/ChestInventoryUpdateEvent.kt2
-rw-r--r--src/main/kotlin/events/CommandEvent.kt6
-rw-r--r--src/main/kotlin/events/CustomItemModelEvent.kt36
-rw-r--r--src/main/kotlin/events/EarlyResourceReloadEvent.kt2
-rw-r--r--src/main/kotlin/events/EntityDespawnEvent.kt2
-rw-r--r--src/main/kotlin/events/EntityInteractionEvent.kt6
-rw-r--r--src/main/kotlin/events/EntityRenderTintEvent.kt14
-rw-r--r--src/main/kotlin/events/EntityUpdateEvent.kt26
-rw-r--r--src/main/kotlin/events/FinalizeResourceManagerEvent.kt20
-rw-r--r--src/main/kotlin/events/HandledScreenClickEvent.kt4
-rw-r--r--src/main/kotlin/events/HandledScreenForegroundEvent.kt8
-rw-r--r--src/main/kotlin/events/HandledScreenKeyPressedEvent.kt16
-rw-r--r--src/main/kotlin/events/HandledScreenPushREIEvent.kt4
-rw-r--r--src/main/kotlin/events/HotbarItemRenderEvent.kt16
-rw-r--r--src/main/kotlin/events/HudRenderEvent.kt12
-rw-r--r--src/main/kotlin/events/IsSlotProtectedEvent.kt28
-rw-r--r--src/main/kotlin/events/ItemTooltipEvent.kt10
-rw-r--r--src/main/kotlin/events/JoinServerEvent.kt6
-rw-r--r--src/main/kotlin/events/ModifyChatEvent.kt6
-rw-r--r--src/main/kotlin/events/OutgoingPacketEvent.kt2
-rw-r--r--src/main/kotlin/events/ParticleSpawnEvent.kt8
-rw-r--r--src/main/kotlin/events/PlayerInventoryUpdate.kt2
-rw-r--r--src/main/kotlin/events/ProcessChatEvent.kt4
-rw-r--r--src/main/kotlin/events/ScreenChangeEvent.kt2
-rw-r--r--src/main/kotlin/events/ScreenRenderPostEvent.kt6
-rw-r--r--src/main/kotlin/events/ServerConnectedEvent.kt10
-rw-r--r--src/main/kotlin/events/SlotClickEvent.kt8
-rw-r--r--src/main/kotlin/events/SlotRenderEvents.kt14
-rw-r--r--src/main/kotlin/events/SoundReceiveEvent.kt14
-rw-r--r--src/main/kotlin/events/UseBlockEvent.kt10
-rw-r--r--src/main/kotlin/events/UseItemEvent.kt12
-rw-r--r--src/main/kotlin/events/WorldRenderLastEvent.kt14
-rw-r--r--src/main/kotlin/events/registration/ChatEvents.kt22
35 files changed, 186 insertions, 186 deletions
diff --git a/src/main/kotlin/events/AllowChatEvent.kt b/src/main/kotlin/events/AllowChatEvent.kt
index a1b4828..86395c9 100644
--- a/src/main/kotlin/events/AllowChatEvent.kt
+++ b/src/main/kotlin/events/AllowChatEvent.kt
@@ -2,14 +2,14 @@
package moe.nea.firmament.events
-import net.minecraft.text.Text
+import net.minecraft.network.chat.Component
import moe.nea.firmament.util.unformattedString
/**
* Filter whether the user should see a chat message altogether. May or may not be called for every chat packet sent by
* the server. When that quality is desired, consider [ProcessChatEvent] instead.
*/
-data class AllowChatEvent(val text: Text) : FirmamentEvent.Cancellable() {
+data class AllowChatEvent(val text: Component) : FirmamentEvent.Cancellable() {
val unformattedString = text.unformattedString
companion object : FirmamentEventBus<AllowChatEvent>()
diff --git a/src/main/kotlin/events/AttackBlockEvent.kt b/src/main/kotlin/events/AttackBlockEvent.kt
index bbaa81d..81a2952 100644
--- a/src/main/kotlin/events/AttackBlockEvent.kt
+++ b/src/main/kotlin/events/AttackBlockEvent.kt
@@ -1,16 +1,16 @@
package moe.nea.firmament.events
-import net.minecraft.entity.player.PlayerEntity
-import net.minecraft.util.Hand
-import net.minecraft.util.math.BlockPos
-import net.minecraft.util.math.Direction
-import net.minecraft.world.World
+import net.minecraft.world.entity.player.Player
+import net.minecraft.world.InteractionHand
+import net.minecraft.core.BlockPos
+import net.minecraft.core.Direction
+import net.minecraft.world.level.Level
data class AttackBlockEvent(
- val player: PlayerEntity,
- val world: World,
- val hand: Hand,
+ val player: Player,
+ val world: Level,
+ val hand: InteractionHand,
val blockPos: BlockPos,
val direction: Direction
) : FirmamentEvent.Cancellable() {
diff --git a/src/main/kotlin/events/ChestInventoryUpdateEvent.kt b/src/main/kotlin/events/ChestInventoryUpdateEvent.kt
index ddf54fc..e3acd12 100644
--- a/src/main/kotlin/events/ChestInventoryUpdateEvent.kt
+++ b/src/main/kotlin/events/ChestInventoryUpdateEvent.kt
@@ -1,6 +1,6 @@
package moe.nea.firmament.events
-import net.minecraft.item.ItemStack
+import net.minecraft.world.item.ItemStack
import moe.nea.firmament.util.MC
sealed class ChestInventoryUpdateEvent : FirmamentEvent() {
diff --git a/src/main/kotlin/events/CommandEvent.kt b/src/main/kotlin/events/CommandEvent.kt
index 63ed115..bdd63ca 100644
--- a/src/main/kotlin/events/CommandEvent.kt
+++ b/src/main/kotlin/events/CommandEvent.kt
@@ -4,7 +4,7 @@ package moe.nea.firmament.events
import com.mojang.brigadier.CommandDispatcher
import com.mojang.brigadier.tree.LiteralCommandNode
-import net.minecraft.command.CommandRegistryAccess
+import net.minecraft.commands.CommandBuildContext
import moe.nea.firmament.commands.CaseInsensitiveLiteralCommandNode
import moe.nea.firmament.commands.DefaultSource
import moe.nea.firmament.commands.literal
@@ -12,7 +12,7 @@ import moe.nea.firmament.commands.thenLiteral
data class CommandEvent(
val dispatcher: CommandDispatcher<DefaultSource>,
- val ctx: CommandRegistryAccess,
+ val ctx: CommandBuildContext,
val serverCommands: CommandDispatcher<*>?,
) : FirmamentEvent() {
companion object : FirmamentEventBus<CommandEvent>()
@@ -23,7 +23,7 @@ data class CommandEvent(
*/
data class SubCommand(
val builder: CaseInsensitiveLiteralCommandNode.Builder<DefaultSource>,
- val commandRegistryAccess: CommandRegistryAccess,
+ val commandRegistryAccess: CommandBuildContext,
) : FirmamentEvent() {
companion object : FirmamentEventBus<SubCommand>()
diff --git a/src/main/kotlin/events/CustomItemModelEvent.kt b/src/main/kotlin/events/CustomItemModelEvent.kt
index 7b86980..3d96b34 100644
--- a/src/main/kotlin/events/CustomItemModelEvent.kt
+++ b/src/main/kotlin/events/CustomItemModelEvent.kt
@@ -3,34 +3,34 @@ package moe.nea.firmament.events
import java.util.Objects
import java.util.Optional
import kotlin.jvm.optionals.getOrNull
-import net.minecraft.component.DataComponentTypes
-import net.minecraft.item.ItemStack
-import net.minecraft.util.Identifier
+import net.minecraft.core.component.DataComponents
+import net.minecraft.world.item.ItemStack
+import net.minecraft.resources.ResourceLocation
import moe.nea.firmament.util.collections.WeakCache
import moe.nea.firmament.util.collections.WeakCache.CacheFunction
import moe.nea.firmament.util.mc.IntrospectableItemModelManager
// TODO: assert an order on these events
data class CustomItemModelEvent(
- val itemStack: ItemStack,
- val itemModelManager: IntrospectableItemModelManager,
- var overrideModel: Identifier? = null,
+ val itemStack: ItemStack,
+ val itemModelManager: IntrospectableItemModelManager,
+ var overrideModel: ResourceLocation? = null,
) : FirmamentEvent() {
companion object : FirmamentEventBus<CustomItemModelEvent>() {
val weakCache =
- object : WeakCache<ItemStack, IntrospectableItemModelManager, Optional<Identifier>>("ItemModelIdentifier") {
+ object : WeakCache<ItemStack, IntrospectableItemModelManager, Optional<ResourceLocation>>("ItemModelIdentifier") {
override fun mkRef(
- key: ItemStack,
- extraData: IntrospectableItemModelManager
- ): WeakCache<ItemStack, IntrospectableItemModelManager, Optional<Identifier>>.Ref {
+ key: ItemStack,
+ extraData: IntrospectableItemModelManager
+ ): WeakCache<ItemStack, IntrospectableItemModelManager, Optional<ResourceLocation>>.Ref {
return IRef(key, extraData)
}
inner class IRef(weakInstance: ItemStack, data: IntrospectableItemModelManager) :
Ref(weakInstance, data) {
override fun shouldBeEvicted(): Boolean = false
- val isSimpleStack = weakInstance.componentChanges.isEmpty || (weakInstance.componentChanges.size() == 1 && weakInstance.get(
- DataComponentTypes.CUSTOM_DATA)?.isEmpty == true)
+ val isSimpleStack = weakInstance.componentsPatch.isEmpty || (weakInstance.componentsPatch.size() == 1 && weakInstance.get(
+ DataComponents.CUSTOM_DATA)?.isEmpty == true)
val item = weakInstance.item
override fun hashCode(): Int {
if (isSimpleStack)
@@ -49,26 +49,26 @@ data class CustomItemModelEvent(
val cache = CacheFunction.WithExtraData(weakCache, ::getModelIdentifier0)
@JvmStatic
- fun getModelIdentifier(itemStack: ItemStack?, itemModelManager: IntrospectableItemModelManager): Identifier? {
+ fun getModelIdentifier(itemStack: ItemStack?, itemModelManager: IntrospectableItemModelManager): ResourceLocation? {
if (itemStack == null) return null
return cache.invoke(itemStack, itemModelManager).getOrNull()
}
fun getModelIdentifier0(
- itemStack: ItemStack,
- itemModelManager: IntrospectableItemModelManager
- ): Optional<Identifier> {
+ itemStack: ItemStack,
+ itemModelManager: IntrospectableItemModelManager
+ ): Optional<ResourceLocation> {
// TODO: add an error / warning if the model does not exist
return Optional.ofNullable(publish(CustomItemModelEvent(itemStack, itemModelManager)).overrideModel)
}
}
- fun overrideIfExists(overrideModel: Identifier) {
+ fun overrideIfExists(overrideModel: ResourceLocation) {
if (itemModelManager.hasModel_firmament(overrideModel))
this.overrideModel = overrideModel
}
- fun overrideIfEmpty(identifier: Identifier) {
+ fun overrideIfEmpty(identifier: ResourceLocation) {
if (overrideModel == null)
overrideModel = identifier
}
diff --git a/src/main/kotlin/events/EarlyResourceReloadEvent.kt b/src/main/kotlin/events/EarlyResourceReloadEvent.kt
index ec8377a..b9cf717 100644
--- a/src/main/kotlin/events/EarlyResourceReloadEvent.kt
+++ b/src/main/kotlin/events/EarlyResourceReloadEvent.kt
@@ -2,7 +2,7 @@
package moe.nea.firmament.events
import java.util.concurrent.Executor
-import net.minecraft.resource.ResourceManager
+import net.minecraft.server.packs.resources.ResourceManager
data class EarlyResourceReloadEvent(val resourceManager: ResourceManager, val preparationExecutor: Executor) :
FirmamentEvent() {
diff --git a/src/main/kotlin/events/EntityDespawnEvent.kt b/src/main/kotlin/events/EntityDespawnEvent.kt
index 93dc477..d007f96 100644
--- a/src/main/kotlin/events/EntityDespawnEvent.kt
+++ b/src/main/kotlin/events/EntityDespawnEvent.kt
@@ -1,7 +1,7 @@
package moe.nea.firmament.events
-import net.minecraft.entity.Entity
+import net.minecraft.world.entity.Entity
data class EntityDespawnEvent(
val entity: Entity?, val entityId: Int,
diff --git a/src/main/kotlin/events/EntityInteractionEvent.kt b/src/main/kotlin/events/EntityInteractionEvent.kt
index 123ea39..8285e1b 100644
--- a/src/main/kotlin/events/EntityInteractionEvent.kt
+++ b/src/main/kotlin/events/EntityInteractionEvent.kt
@@ -1,13 +1,13 @@
package moe.nea.firmament.events
-import net.minecraft.entity.Entity
-import net.minecraft.util.Hand
+import net.minecraft.world.entity.Entity
+import net.minecraft.world.InteractionHand
data class EntityInteractionEvent(
val kind: InteractionKind,
val entity: Entity,
- val hand: Hand,
+ val hand: InteractionHand,
) : FirmamentEvent() {
companion object : FirmamentEventBus<EntityInteractionEvent>()
enum class InteractionKind {
diff --git a/src/main/kotlin/events/EntityRenderTintEvent.kt b/src/main/kotlin/events/EntityRenderTintEvent.kt
index 54cbff2..63528bc 100644
--- a/src/main/kotlin/events/EntityRenderTintEvent.kt
+++ b/src/main/kotlin/events/EntityRenderTintEvent.kt
@@ -1,10 +1,10 @@
package moe.nea.firmament.events
-import net.minecraft.client.render.GameRenderer
-import net.minecraft.client.render.OverlayTexture
-import net.minecraft.client.render.entity.state.EntityRenderState
-import net.minecraft.entity.Entity
-import net.minecraft.entity.LivingEntity
+import net.minecraft.client.renderer.GameRenderer
+import net.minecraft.client.renderer.texture.OverlayTexture
+import net.minecraft.client.renderer.entity.state.EntityRenderState
+import net.minecraft.world.entity.Entity
+import net.minecraft.world.entity.LivingEntity
import moe.nea.firmament.events.EntityRenderTintEvent.Companion.overlayOverride
import moe.nea.firmament.util.render.TintedOverlayTexture
@@ -12,8 +12,8 @@ import moe.nea.firmament.util.render.TintedOverlayTexture
* Change the tint color of a [LivingEntity]
*/
class EntityRenderTintEvent(
- val entity: Entity,
- val renderState: HasTintRenderState
+ val entity: Entity,
+ val renderState: HasTintRenderState
) : FirmamentEvent.Cancellable() {
init {
if (entity !is LivingEntity) {
diff --git a/src/main/kotlin/events/EntityUpdateEvent.kt b/src/main/kotlin/events/EntityUpdateEvent.kt
index fec2fa5..9f5a101 100644
--- a/src/main/kotlin/events/EntityUpdateEvent.kt
+++ b/src/main/kotlin/events/EntityUpdateEvent.kt
@@ -1,12 +1,12 @@
package moe.nea.firmament.events
import com.mojang.datafixers.util.Pair
-import net.minecraft.entity.Entity
-import net.minecraft.entity.EquipmentSlot
-import net.minecraft.entity.LivingEntity
-import net.minecraft.entity.data.DataTracker
-import net.minecraft.item.ItemStack
-import net.minecraft.network.packet.s2c.play.EntityAttributesS2CPacket
+import net.minecraft.world.entity.Entity
+import net.minecraft.world.entity.EquipmentSlot
+import net.minecraft.world.entity.LivingEntity
+import net.minecraft.network.syncher.SynchedEntityData
+import net.minecraft.world.item.ItemStack
+import net.minecraft.network.protocol.game.ClientboundUpdateAttributesPacket
import moe.nea.firmament.annotations.Subscribe
import moe.nea.firmament.util.MC
@@ -29,7 +29,7 @@ sealed class EntityUpdateEvent : FirmamentEvent() {
EquipmentSlot.OFFHAND to 40,
EquipmentSlot.MAINHAND to p.inventory.selectedSlot, // TODO: also equipment update when you swap your selected slot perhaps
).mapNotNull { (slot, stackIndex) ->
- val slotIndex = p.playerScreenHandler.getSlotIndex(p.inventory, stackIndex).asInt
+ val slotIndex = p.inventoryMenu.findSlot(p.inventory, stackIndex).asInt
event.getOrNull(slotIndex)?.let {
Pair.of(slot, it)
}
@@ -42,18 +42,18 @@ sealed class EntityUpdateEvent : FirmamentEvent() {
abstract val entity: Entity
data class AttributeUpdate(
- override val entity: LivingEntity,
- val attributes: List<EntityAttributesS2CPacket.Entry>,
+ override val entity: LivingEntity,
+ val attributes: List<ClientboundUpdateAttributesPacket.AttributeSnapshot>,
) : EntityUpdateEvent()
data class TrackedDataUpdate(
- override val entity: Entity,
- val trackedValues: List<DataTracker.SerializedEntry<*>>,
+ override val entity: Entity,
+ val trackedValues: List<SynchedEntityData.DataValue<*>>,
) : EntityUpdateEvent()
data class EquipmentUpdate(
- override val entity: Entity,
- val newEquipment: List<Pair<EquipmentSlot, ItemStack>>,
+ override val entity: Entity,
+ val newEquipment: List<Pair<EquipmentSlot, ItemStack>>,
) : EntityUpdateEvent()
// TODO: onEntityPassengersSet, onEntityAttach?, onEntityStatusEffect
diff --git a/src/main/kotlin/events/FinalizeResourceManagerEvent.kt b/src/main/kotlin/events/FinalizeResourceManagerEvent.kt
index df1c3eb..72fa9c4 100644
--- a/src/main/kotlin/events/FinalizeResourceManagerEvent.kt
+++ b/src/main/kotlin/events/FinalizeResourceManagerEvent.kt
@@ -2,25 +2,25 @@ package moe.nea.firmament.events
import java.util.concurrent.CompletableFuture
import java.util.concurrent.Executor
-import net.minecraft.resource.ReloadableResourceManagerImpl
-import net.minecraft.resource.ResourceManager
-import net.minecraft.resource.ResourceReloader
+import net.minecraft.server.packs.resources.ReloadableResourceManager
+import net.minecraft.server.packs.resources.ResourceManager
+import net.minecraft.server.packs.resources.PreparableReloadListener
data class FinalizeResourceManagerEvent(
- val resourceManager: ReloadableResourceManagerImpl,
+ val resourceManager: ReloadableResourceManager,
) : FirmamentEvent() {
companion object : FirmamentEventBus<FinalizeResourceManagerEvent>()
inline fun registerOnApply(name: String, crossinline function: () -> Unit) {
- resourceManager.registerReloader(object : ResourceReloader {
+ resourceManager.registerReloadListener(object : PreparableReloadListener {
override fun reload(
- store: ResourceReloader.Store,
- prepareExecutor: Executor,
- reloadSynchronizer: ResourceReloader.Synchronizer,
- applyExecutor: Executor
+ store: PreparableReloadListener.SharedState,
+ prepareExecutor: Executor,
+ reloadSynchronizer: PreparableReloadListener.PreparationBarrier,
+ applyExecutor: Executor
): CompletableFuture<Void> {
return CompletableFuture.completedFuture(Unit)
- .thenCompose(reloadSynchronizer::whenPrepared)
+ .thenCompose(reloadSynchronizer::wait)
.thenAcceptAsync({ function() }, applyExecutor)
}
diff --git a/src/main/kotlin/events/HandledScreenClickEvent.kt b/src/main/kotlin/events/HandledScreenClickEvent.kt
index 4c3003c..b937907 100644
--- a/src/main/kotlin/events/HandledScreenClickEvent.kt
+++ b/src/main/kotlin/events/HandledScreenClickEvent.kt
@@ -2,9 +2,9 @@
package moe.nea.firmament.events
-import net.minecraft.client.gui.screen.ingame.HandledScreen
+import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen
-data class HandledScreenClickEvent(val screen: HandledScreen<*>, val mouseX: Double, val mouseY: Double, val button: Int) :
+data class HandledScreenClickEvent(val screen: AbstractContainerScreen<*>, val mouseX: Double, val mouseY: Double, val button: Int) :
FirmamentEvent.Cancellable() {
companion object : FirmamentEventBus<HandledScreenClickEvent>()
}
diff --git a/src/main/kotlin/events/HandledScreenForegroundEvent.kt b/src/main/kotlin/events/HandledScreenForegroundEvent.kt
index f16d30e..3a3d7f6 100644
--- a/src/main/kotlin/events/HandledScreenForegroundEvent.kt
+++ b/src/main/kotlin/events/HandledScreenForegroundEvent.kt
@@ -2,12 +2,12 @@
package moe.nea.firmament.events
-import net.minecraft.client.gui.DrawContext
-import net.minecraft.client.gui.screen.ingame.HandledScreen
+import net.minecraft.client.gui.GuiGraphics
+import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen
data class HandledScreenForegroundEvent(
- val screen: HandledScreen<*>,
- val context: DrawContext,
+ val screen: AbstractContainerScreen<*>,
+ val context: GuiGraphics,
val mouseX: Int,
val mouseY: Int,
val delta: Float
diff --git a/src/main/kotlin/events/HandledScreenKeyPressedEvent.kt b/src/main/kotlin/events/HandledScreenKeyPressedEvent.kt
index 34aebe6..b9e23a2 100644
--- a/src/main/kotlin/events/HandledScreenKeyPressedEvent.kt
+++ b/src/main/kotlin/events/HandledScreenKeyPressedEvent.kt
@@ -1,21 +1,21 @@
package moe.nea.firmament.events
import org.lwjgl.glfw.GLFW
-import net.minecraft.client.gui.screen.ingame.HandledScreen
+import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen
import moe.nea.firmament.keybindings.GenericInputAction
import moe.nea.firmament.keybindings.InputModifiers
import moe.nea.firmament.keybindings.SavedKeyBinding
sealed interface HandledScreenInputEvent {
- val screen: HandledScreen<*>
+ val screen: AbstractContainerScreen<*>
val input: GenericInputAction
val modifiers: InputModifiers
}
data class HandledScreenKeyPressedEvent(
- override val screen: HandledScreen<*>,
- override val input: GenericInputAction,
- override val modifiers: InputModifiers,
+ override val screen: AbstractContainerScreen<*>,
+ override val input: GenericInputAction,
+ override val modifiers: InputModifiers,
// TODO: val isRepeat: Boolean,
) : FirmamentEvent.Cancellable(), HandledScreenInputEvent {
fun matches(keyBinding: SavedKeyBinding, atLeast: Boolean = false): Boolean {
@@ -27,9 +27,9 @@ data class HandledScreenKeyPressedEvent(
}
data class HandledScreenKeyReleasedEvent(
- override val screen: HandledScreen<*>,
- override val input: GenericInputAction,
- override val modifiers: InputModifiers,
+ override val screen: AbstractContainerScreen<*>,
+ override val input: GenericInputAction,
+ override val modifiers: InputModifiers,
) : FirmamentEvent.Cancellable(), HandledScreenInputEvent {
fun matches(keyBinding: SavedKeyBinding, atLeast: Boolean = false): Boolean {
return keyBinding.matches(input, modifiers, atLeast)
diff --git a/src/main/kotlin/events/HandledScreenPushREIEvent.kt b/src/main/kotlin/events/HandledScreenPushREIEvent.kt
index 1bb495a..e2b5a40 100644
--- a/src/main/kotlin/events/HandledScreenPushREIEvent.kt
+++ b/src/main/kotlin/events/HandledScreenPushREIEvent.kt
@@ -3,10 +3,10 @@
package moe.nea.firmament.events
import me.shedaniel.math.Rectangle
-import net.minecraft.client.gui.screen.ingame.HandledScreen
+import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen
data class HandledScreenPushREIEvent(
- val screen: HandledScreen<*>,
+ val screen: AbstractContainerScreen<*>,
val rectangles: MutableList<Rectangle> = mutableListOf()
) : FirmamentEvent() {
diff --git a/src/main/kotlin/events/HotbarItemRenderEvent.kt b/src/main/kotlin/events/HotbarItemRenderEvent.kt
index a1940e6..0d4e75b 100644
--- a/src/main/kotlin/events/HotbarItemRenderEvent.kt
+++ b/src/main/kotlin/events/HotbarItemRenderEvent.kt
@@ -2,16 +2,16 @@
package moe.nea.firmament.events
-import net.minecraft.client.gui.DrawContext
-import net.minecraft.client.render.RenderTickCounter
-import net.minecraft.item.ItemStack
+import net.minecraft.client.gui.GuiGraphics
+import net.minecraft.client.DeltaTracker
+import net.minecraft.world.item.ItemStack
data class HotbarItemRenderEvent(
- val item: ItemStack,
- val context: DrawContext,
- val x: Int,
- val y: Int,
- val tickDelta: RenderTickCounter,
+ val item: ItemStack,
+ val context: GuiGraphics,
+ val x: Int,
+ val y: Int,
+ val tickDelta: DeltaTracker,
) : FirmamentEvent() {
companion object : FirmamentEventBus<HotbarItemRenderEvent>()
}
diff --git a/src/main/kotlin/events/HudRenderEvent.kt b/src/main/kotlin/events/HudRenderEvent.kt
index 5919dae..a397378 100644
--- a/src/main/kotlin/events/HudRenderEvent.kt
+++ b/src/main/kotlin/events/HudRenderEvent.kt
@@ -1,16 +1,16 @@
package moe.nea.firmament.events
-import net.minecraft.client.gui.DrawContext
-import net.minecraft.client.render.RenderTickCounter
-import net.minecraft.world.GameMode
+import net.minecraft.client.gui.GuiGraphics
+import net.minecraft.client.DeltaTracker
+import net.minecraft.world.level.GameType
import moe.nea.firmament.util.MC
/**
* Called when hud elements should be rendered, before the screen, but after the world.
*/
-data class HudRenderEvent(val context: DrawContext, val tickDelta: RenderTickCounter) : FirmamentEvent.Cancellable() {
- val isRenderingHud = !MC.options.hudHidden
- val isRenderingCursor = MC.interactionManager?.currentGameMode != GameMode.SPECTATOR && isRenderingHud
+data class HudRenderEvent(val context: GuiGraphics, val tickDelta: DeltaTracker) : FirmamentEvent.Cancellable() {
+ val isRenderingHud = !MC.options.hideGui
+ val isRenderingCursor = MC.interactionManager?.playerMode != GameType.SPECTATOR && isRenderingHud
init {
if (!isRenderingHud)
diff --git a/src/main/kotlin/events/IsSlotProtectedEvent.kt b/src/main/kotlin/events/IsSlotProtectedEvent.kt
index 6ab0174..bda1bb3 100644
--- a/src/main/kotlin/events/IsSlotProtectedEvent.kt
+++ b/src/main/kotlin/events/IsSlotProtectedEvent.kt
@@ -1,8 +1,8 @@
package moe.nea.firmament.events
-import net.minecraft.item.ItemStack
-import net.minecraft.screen.slot.Slot
-import net.minecraft.screen.slot.SlotActionType
+import net.minecraft.world.item.ItemStack
+import net.minecraft.world.inventory.Slot
+import net.minecraft.world.inventory.ClickType
import moe.nea.firmament.util.CommonSoundEffects
import moe.nea.firmament.util.MC
import moe.nea.firmament.util.grey
@@ -11,14 +11,14 @@ import moe.nea.firmament.util.red
import moe.nea.firmament.util.tr
data class IsSlotProtectedEvent(
- val slot: Slot?,
- val actionType: SlotActionType,
- var isProtected: Boolean,
- val itemStackOverride: ItemStack?,
- val origin: MoveOrigin,
- var silent: Boolean = false,
+ val slot: Slot?,
+ val actionType: ClickType,
+ var isProtected: Boolean,
+ val itemStackOverride: ItemStack?,
+ val origin: MoveOrigin,
+ var silent: Boolean = false,
) : FirmamentEvent() {
- val itemStack get() = itemStackOverride ?: slot!!.stack
+ val itemStack get() = itemStackOverride ?: slot!!.item
fun protect() {
isProtected = true
@@ -43,15 +43,15 @@ data class IsSlotProtectedEvent(
@JvmStatic
@JvmOverloads
fun shouldBlockInteraction(
- slot: Slot?, action: SlotActionType,
- origin: MoveOrigin,
- itemStackOverride: ItemStack? = null,
+ slot: Slot?, action: ClickType,
+ origin: MoveOrigin,
+ itemStackOverride: ItemStack? = null,
): Boolean {
if (slot == null && itemStackOverride == null) return false
val event = IsSlotProtectedEvent(slot, action, false, itemStackOverride, origin)
publish(event)
if (event.isProtected && !event.silent) {
- MC.sendChat(tr("firmament.protectitem", "Firmament protected your item: ${event.itemStack.name}.\n")
+ MC.sendChat(tr("firmament.protectitem", "Firmament protected your item: ${event.itemStack.hoverName}.\n")
.red()
.append(tr("firmament.protectitem.hoverhint", "Hover for more info.").grey())
.hover(tr("firmament.protectitem.hint",
diff --git a/src/main/kotlin/events/ItemTooltipEvent.kt b/src/main/kotlin/events/ItemTooltipEvent.kt
index d86e06f..9acd9bf 100644
--- a/src/main/kotlin/events/ItemTooltipEvent.kt
+++ b/src/main/kotlin/events/ItemTooltipEvent.kt
@@ -2,13 +2,13 @@
package moe.nea.firmament.events
-import net.minecraft.item.Item.TooltipContext
-import net.minecraft.item.ItemStack
-import net.minecraft.item.tooltip.TooltipType
-import net.minecraft.text.Text
+import net.minecraft.world.item.Item.TooltipContext
+import net.minecraft.world.item.ItemStack
+import net.minecraft.world.item.TooltipFlag
+import net.minecraft.network.chat.Component
data class ItemTooltipEvent(
- val stack: ItemStack, val context: TooltipContext, val type: TooltipType, val lines: MutableList