diff --git a/api/receptacle/build.gradle.kts b/api/receptacle/build.gradle.kts index 2a7b5368..aaf31461 100644 --- a/api/receptacle/build.gradle.kts +++ b/api/receptacle/build.gradle.kts @@ -1,6 +1,11 @@ + repositories { + maven("https://repo.aeoliancloud.com/repository/releases") { isAllowInsecureProtocol = true } +} + dependencies { compileOnly(project(":common")) compileOnly("ink.ptms:nms-all:1.0.0") + compileOnly("dependencies.core:paper:12104-min") compileOnly("ink.ptms.core:v12002:12002-minimize:universal") compileOnly("ink.ptms.core:v12002:12002-minimize:mapped") compileOnly("org.geysermc.floodgate:api:2.2.3-SNAPSHOT") diff --git a/api/receptacle/src/main/kotlin/trplugins/menu/api/receptacle/vanilla/window/NMSImpl.kt b/api/receptacle/src/main/kotlin/trplugins/menu/api/receptacle/vanilla/window/NMSImpl.kt index 042bd386..de147004 100644 --- a/api/receptacle/src/main/kotlin/trplugins/menu/api/receptacle/vanilla/window/NMSImpl.kt +++ b/api/receptacle/src/main/kotlin/trplugins/menu/api/receptacle/vanilla/window/NMSImpl.kt @@ -1,5 +1,6 @@ package trplugins.menu.api.receptacle.vanilla.window +import net.minecraft.network.protocol.game.ClientboundSetCursorItemPacket import net.minecraft.server.v1_16_R3.* import org.bukkit.Material import org.bukkit.craftbukkit.v1_16_R3.inventory.CraftItemStack @@ -161,6 +162,13 @@ class NMSImpl : NMS() { "slot" to slot, "itemStack" to toNMSCopy(itemStack) ) + kotlin.runCatching { + sendPacket( + player, + ClientboundSetCursorItemPacket::class.java.unsafeInstance(), + "contents" to toNMSCopy(ItemStack(Material.AIR)) + ) + } } else -> { player.sendPacket(PacketPlayOutSetSlot(windowId, slot, toNMSCopy(itemStack))) diff --git a/gradle.properties b/gradle.properties index dc6a7617..45fac02b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ group=me.arasple.mc.trmenu -version=3.5.1 +version=3.5.3 diff --git a/plugin/src/main/kotlin/trplugins/menu/module/internal/script/Assist.kt b/plugin/src/main/kotlin/trplugins/menu/module/internal/script/Assist.kt index 01e4a8e7..9e7b63ca 100644 --- a/plugin/src/main/kotlin/trplugins/menu/module/internal/script/Assist.kt +++ b/plugin/src/main/kotlin/trplugins/menu/module/internal/script/Assist.kt @@ -366,11 +366,28 @@ class Assist { * NBT */ + /** + * @param isCustom 仅针对 1.20.5+, 是否读取为 CUSTOM_DATA 的 DataComponentType + */ + fun getNBT(itemStack: ItemStack, string: String, isCustom: Boolean = true): String? { + val itemTag = itemStack.getItemTag(isCustom) + return itemTag[string]?.asString() + } + fun getNBT(itemStack: ItemStack, string: String): String? { val itemTag = itemStack.getItemTag() return itemTag[string]?.asString() } + /** + * @param isCustom 仅针对 1.20.5+, 是否读取为 CUSTOM_DATA 的 DataComponentType + */ + fun setNBT(itemStack: ItemStack, key: String, value: String, isCustom: Boolean = true): ItemStack { + val itemTag = itemStack.getItemTag(isCustom) + itemTag[key] = ItemTagData(value) + return itemStack.also { itemTag.saveTo(it, isCustom) } + } + fun setNBT(itemStack: ItemStack, key: String, value: String): ItemStack { val itemTag = itemStack.getItemTag() itemTag[key] = ItemTagData(value)