Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ class NMSImpl : NMS() {
PacketPlayOutOpenWindow::class.java.unsafeInstance(),
"containerId" to windowId,
"type" to Containers::class.java.getProperty(type.vanillaId, true),
"title" to CraftChatMessage.fromStringOrNull(title)
"title" to CraftChatMessage.fromJSONOrString(title)
)
}
MinecraftVersion.isUniversal -> {
Expand All @@ -116,7 +116,7 @@ class NMSImpl : NMS() {
PacketPlayOutOpenWindow::class.java.unsafeInstance(),
"containerId" to windowId,
"type" to type.serialId,
"title" to CraftChatMessage.fromStringOrNull(title)
"title" to CraftChatMessage.fromJSONOrString(title)
)
}
version >= 11400 -> {
Expand Down Expand Up @@ -162,18 +162,20 @@ class NMSImpl : NMS() {
"slot" to slot,
"itemStack" to toNMSCopy(itemStack)
)
kotlin.runCatching {
sendPacket(
player,
ClientboundSetCursorItemPacket::class.java.unsafeInstance(),
"contents" to toNMSCopy(null)
)
}
}
else -> {
player.sendPacket(PacketPlayOutSetSlot(windowId, slot, toNMSCopy(itemStack)))
}
}
if (version >= 12104) {
try {
sendPacket(
player,
ClientboundSetCursorItemPacket::class.java.unsafeInstance(),
"contents" to toNMSCopy(null)
)
} catch (_: Throwable) {}
}
}

override fun sendWindowsUpdateData(player: Player, windowId: Int, id: Int, value: Int) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package trplugins.menu.api.receptacle.vanilla.window
import org.bukkit.entity.Player
import org.bukkit.inventory.ItemStack
import taboolib.common.platform.function.submit
import taboolib.module.chat.component
import taboolib.module.nms.nmsProxy
import trplugins.menu.api.receptacle.Receptacle
import trplugins.menu.api.receptacle.ReceptacleInteractEvent
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
group=me.arasple.mc.trmenu
version=3.5.4
version=3.6.1
2 changes: 2 additions & 0 deletions plugin/src/main/kotlin/trplugins/menu/TrMenu.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import taboolib.module.lang.Language
import taboolib.module.lang.sendLang
import taboolib.platform.util.bukkitPlugin
import trplugins.menu.api.action.ActionHandle
import trplugins.menu.api.action.impl.menu.SetTitle
import trplugins.menu.api.action.impl.send.Tell
import trplugins.menu.api.receptacle.provider.PlatformProvider
import trplugins.menu.api.receptacle.vanilla.window.NMS
Expand Down Expand Up @@ -91,6 +92,7 @@ object TrMenu : Plugin() {
RegisterCommands.load()
Bindings.load()
Tell.useComponent = SETTINGS.getBoolean("Action.Using-Component", true)
SetTitle.useComponent = SETTINGS.getBoolean("Action.Title-Using-Component", false)
PlatformProvider.compute()
NMS.javaStaticInventory = SETTINGS.getBoolean("Options.Static-Inventory.Java", false)
NMS.bedrockStaticInventory = SETTINGS.getBoolean("Options.Static-Inventory.Bedrock", false)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package trplugins.menu.api.action.impl.menu

import taboolib.common.platform.ProxyPlayer
import taboolib.module.chat.component
import trplugins.menu.api.action.ActionHandle
import trplugins.menu.api.action.base.ActionBase
import trplugins.menu.api.action.base.ActionContents
import trplugins.menu.api.action.impl.send.Tell
import trplugins.menu.module.display.session

/**
Expand All @@ -14,14 +16,20 @@ import trplugins.menu.module.display.session
* @since 2022/02/14 12:21
*/
class SetTitle(handle: ActionHandle) : ActionBase(handle) {
companion object {
var useComponent = true
}

override val regex = "set-?title".toRegex()

override fun onExecute(contents: ActionContents, player: ProxyPlayer, placeholderPlayer: ProxyPlayer) {
val session = player.session()
val receptacle = session.receptacle ?: return

receptacle.title(contents.stringContent().parseContent(placeholderPlayer))
var title = contents.stringContent().parseContent(placeholderPlayer)
if (useComponent) {
title = title.component().build().toRawMessage()
}
receptacle.title(title)
}

}
24 changes: 20 additions & 4 deletions plugin/src/main/kotlin/trplugins/menu/module/display/Menu.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ import taboolib.common.platform.function.adaptPlayer
import taboolib.common.platform.function.console
import taboolib.common.platform.function.pluginId
import taboolib.common.platform.function.submit
import taboolib.module.chat.component
import taboolib.module.configuration.Configuration
import taboolib.module.lang.Type
import taboolib.platform.util.cancelNextChat
import trplugins.menu.TrMenu
import trplugins.menu.api.action.impl.menu.SetTitle
import trplugins.menu.api.action.impl.send.Tell
import trplugins.menu.api.event.MenuOpenEvent
import trplugins.menu.api.event.MenuPageChangeEvent
import trplugins.menu.api.receptacle.provider.PlatformProvider
Expand Down Expand Up @@ -166,7 +169,10 @@ class Menu(
loadTitle(session)
}
} else {
session.receptacle?.title(title, update = false)
val parseTitle = if (SetTitle.useComponent) {
title.component().build().toRawMessage()
} else title
session.receptacle?.title(parseTitle, update = false)
}
if (BEDROCK_DELAY > 0 && PlatformProvider.isBedrockPlayer(viewer)) {
submit(async = Bukkit.isPrimaryThread(), delay = BEDROCK_DELAY) {
Expand All @@ -183,10 +189,20 @@ class Menu(
*/
private fun loadTitle(session: MenuSession) {
val title = settings.title(session)
session.receptacle?.title(title.next(session.id)?.let { session.parse(it) } ?: pluginId, update = false)

session.receptacle?.title(title.next(session.id)?.let {
val title = session.parse(it)
if (SetTitle.useComponent) {
title.component().build().toRawMessage()
} else title
} ?: pluginId, update = false)

val setTitle = {
session.receptacle?.title(title.next(session.id)?.let { session.parse(it) } ?: pluginId)
session.receptacle?.title(title.next(session.id)?.let {
val title = session.parse(it)
if (SetTitle.useComponent) {
title.component().build().toRawMessage()
} else title
} ?: pluginId)
}

if (settings.titleUpdate > 0 && title.cyclable()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ class MenuSession(
val content =
(if (preColor) funced else funced.colored().parseRainbow().parseGradients()).replaceWithOrder(*arguments)
val papi = content.replacePlaceholder(placeholderPlayer)

return if (preColor) papi else papi.colored().parseRainbow().parseGradients()
}

Expand Down
1 change: 1 addition & 0 deletions plugin/src/main/resources/settings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ Menu:

Action:
Using-Component: true
Title-Using-Component: true
Inputer:
Cancel-Words:
- 'cancel|quit|end'
Expand Down