From 32b89cc7ff4dfd9ba464932ac512b34036712fd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=98=BF=E9=B9=B0?= Date: Thu, 26 Jun 2025 12:02:03 +0800 Subject: [PATCH] =?UTF-8?q?perf:=E4=BC=98=E5=8C=96=E5=A4=B4=E9=A2=85?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E5=8A=A0=E8=BD=BD=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 Heads.kt 中添加了 headConnectTimeout 和 headReadTimeout 变量 - 在 settings.yml 中增加了相应的配置项 - 在 TrMenu.kt 中加载配置项到 Heads.kt 的变量中 --- plugin/src/main/kotlin/trplugins/menu/TrMenu.kt | 3 +++ plugin/src/main/kotlin/trplugins/menu/util/bukkit/Heads.kt | 7 +++++-- plugin/src/main/resources/settings.yml | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/plugin/src/main/kotlin/trplugins/menu/TrMenu.kt b/plugin/src/main/kotlin/trplugins/menu/TrMenu.kt index a94bdcad..9c902aae 100644 --- a/plugin/src/main/kotlin/trplugins/menu/TrMenu.kt +++ b/plugin/src/main/kotlin/trplugins/menu/TrMenu.kt @@ -28,6 +28,7 @@ import trplugins.menu.module.internal.script.Bindings import trplugins.menu.module.internal.script.evalScript import trplugins.menu.module.internal.service.RegisterCommands import trplugins.menu.module.internal.service.Shortcuts +import trplugins.menu.util.bukkit.Heads /** * @author Arasple @@ -97,6 +98,8 @@ object TrMenu : Plugin() { NMS.javaStaticInventory = SETTINGS.getBoolean("Options.Static-Inventory.Java", false) NMS.bedrockStaticInventory = SETTINGS.getBoolean("Options.Static-Inventory.Bedrock", false) NMS.createIdPacketInventory = SETTINGS.getBoolean("Options.Packet-Inventory.Create-Id", false) + Heads.headConnectTimeout = SETTINGS.getInt("Menu.Icon.Item.Head-Connect-Timeout", 500) + Heads.headReadTimeout = SETTINGS.getInt("Menu.Icon.Item.Head-Read-Timeout", 2500) } } \ No newline at end of file diff --git a/plugin/src/main/kotlin/trplugins/menu/util/bukkit/Heads.kt b/plugin/src/main/kotlin/trplugins/menu/util/bukkit/Heads.kt index 788a3f76..ddf1c826 100644 --- a/plugin/src/main/kotlin/trplugins/menu/util/bukkit/Heads.kt +++ b/plugin/src/main/kotlin/trplugins/menu/util/bukkit/Heads.kt @@ -29,6 +29,9 @@ object Heads { private const val USER_API = "https://api.mojang.com/users/profiles/minecraft/" private const val SESSION_API = "https://sessionserver.mojang.com/session/minecraft/profile/" + var headConnectTimeout: Int = 500 + var headReadTimeout: Int = 2500 + private val JSON_PARSER = JsonParser() private val DEFAULT_HEAD = XMaterial.PLAYER_HEAD.parseItem()!!.apply { if (runCatching { Material.PLAYER_HEAD }.isFailure) { @@ -150,8 +153,8 @@ object Heads { try { val con = URL(url).openConnection() // Java 8 require user agent - con.connectTimeout = 500 - con.readTimeout = 2500 + con.connectTimeout = headConnectTimeout + con.readTimeout = headReadTimeout con.addRequestProperty("User-Agent", "Mozilla/5.0") con.getInputStream().use { `in` -> BufferedReader(InputStreamReader(`in`)).use { reader -> diff --git a/plugin/src/main/resources/settings.yml b/plugin/src/main/resources/settings.yml index 27535615..55f37af9 100644 --- a/plugin/src/main/resources/settings.yml +++ b/plugin/src/main/resources/settings.yml @@ -80,6 +80,8 @@ Menu: Default-Name-Color: "&7" Default-Lore-Color: "&7" Pre-Color: false + Head-Connect-Timeout: 500 + Head-Read-Timeout: 2500 Action: Using-Component: true