Skip to content

Commit

Permalink
chore: Bump geary, always specify type in getOrSetPersisting
Browse files Browse the repository at this point in the history
fix: io.papermc.paper.util.TickThread refactored on Paper's end
  • Loading branch information
0ffz committed Jul 20, 2024
1 parent 32656aa commit be141cf
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 24 deletions.
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.mineinabyss.geary.papermc

import ca.spottedleaf.moonrise.common.util.TickThread
import co.touchlab.kermit.Severity
import com.charleskorn.kaml.YamlComment
import com.mineinabyss.geary.modules.geary
import io.papermc.paper.util.TickThread
import kotlinx.serialization.Serializable
import org.bukkit.entity.EntityType
import org.spigotmc.AsyncCatcher
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ fun GearyEntity.encodeComponentsTo(pdc: PersistentDataContainer) {

fun GearyEntity.encodeComponentsTo(holder: PersistentDataHolder) {
val bukkitHolder = holder as? BukkitEntity
geary.logger.v("Encoding components for bukkit entity $id (${bukkitHolder?.type} ${bukkitHolder?.uniqueId})")
geary.logger.v { "Encoding components for bukkit entity $id (${bukkitHolder?.type} ${bukkitHolder?.uniqueId})" }
encodeComponentsTo(holder.persistentDataContainer)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ import org.bukkit.inventory.ItemStack
class BackpackListener : Listener {

private fun isBackpack(player: Player, slot: EquipmentSlot) =
getBackpack(player, slot)?.has<com.mineinabyss.geary.papermc.features.items.backpack.Backpack>() == true
getBackpack(player, slot)?.has<Backpack>() == true

private fun getBackpack(player: Player, slot: EquipmentSlot) = player.inventory.toGeary()?.get(slot)
private fun getBackpack(player: Player, slot: Int) = player.inventory.toGeary()?.get(slot)
private fun com.mineinabyss.geary.papermc.features.items.backpack.BackpackContents.openBackpack(
private fun BackpackContents.openBackpack(
player: Player,
title: Component
title: Component,
) {
val inventory = Bukkit.createInventory(player, InventoryType.CHEST, title)
inventory.contents = this.contents.toTypedArray()
Expand All @@ -44,9 +44,9 @@ class BackpackListener : Listener {
if (!rightClicked || player.isSneaking) return
val (item, hand) = (item ?: return) to (hand ?: return)
val backpack = getBackpack(player, hand) ?: return
if (!backpack.has<com.mineinabyss.geary.papermc.features.items.backpack.Backpack>()) return
if (!backpack.has<Backpack>()) return
val title = if (item.itemMeta.hasDisplayName()) item.itemMeta.displayName()!! else item.displayName()
backpack.getOrSetPersisting { com.mineinabyss.geary.papermc.features.items.backpack.BackpackContents() }
backpack.getOrSetPersisting<BackpackContents> { BackpackContents() }
.openBackpack(player, title)
isCancelled = true
}
Expand All @@ -56,13 +56,13 @@ class BackpackListener : Listener {
if (!click.isRightClick || slotType == InventoryType.SlotType.OUTSIDE) return
val player = whoClicked as? Player ?: return
val gearyEntity = getBackpack(player, slot) ?: return
val backpack = gearyEntity.get<com.mineinabyss.geary.papermc.features.items.backpack.Backpack>() ?: return
val backpack = gearyEntity.get<Backpack>() ?: return

val contents =
gearyEntity.getOrSetPersisting { com.mineinabyss.geary.papermc.features.items.backpack.BackpackContents() }
gearyEntity.getOrSetPersisting<BackpackContents> { BackpackContents() }
val title =
if (currentItem?.itemMeta?.hasDisplayName() == true) currentItem?.itemMeta?.displayName()!! else currentItem?.displayName()
?: Component.text("Backpack")
if (currentItem?.itemMeta?.hasDisplayName() == true) currentItem?.itemMeta?.displayName()!!
else currentItem?.displayName() ?: Component.text("Backpack")

when (clickedInventory?.type ?: return) {
InventoryType.PLAYER -> {
Expand All @@ -81,26 +81,18 @@ class BackpackListener : Listener {
fun InventoryCloseEvent.onCloseBackpack() {
val player = player as Player
val backpack = getBackpack(player, EquipmentSlot.HAND) ?: getBackpack(player, EquipmentSlot.OFF_HAND) ?: return
backpack.setPersisting(
com.mineinabyss.geary.papermc.features.items.backpack.BackpackContents(
inventory.contents.toList().map { it ?: ItemStack(Material.AIR) })
)
backpack.setPersisting(BackpackContents(inventory.contents.toList().map { it ?: ItemStack(Material.AIR) }))
}

@EventHandler(priority = EventPriority.HIGHEST)
fun PlayerDropItemEvent.onDropBackpack() {
if (itemDrop.toGearyOrNull()
?.has<com.mineinabyss.geary.papermc.features.items.backpack.Backpack>() == true
) player.closeInventory()
if (itemDrop.toGearyOrNull()?.has<Backpack>() == true) player.closeInventory()
}

@EventHandler(priority = EventPriority.HIGHEST)
fun PlayerSwapHandItemsEvent.onSwapBackpack() {
if (isBackpack(player, EquipmentSlot.HAND) || isBackpack(
player,
EquipmentSlot.OFF_HAND
)
) player.closeInventory()
if (isBackpack(player, EquipmentSlot.HAND) || isBackpack(player, EquipmentSlot.OFF_HAND))
player.closeInventory()
}

@EventHandler(priority = EventPriority.LOWEST)
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ kotlin.code.style=official
group=com.mineinabyss
version=0.30
idofrontVersion=0.24.12
gearyVersion=0.26.0
gearyVersion=0.26.1

0 comments on commit be141cf

Please sign in to comment.