From 992177eb0c3b7aacf464d1caadc9b6f27502205e Mon Sep 17 00:00:00 2001 From: MagicBot Date: Tue, 20 Oct 2026 10:32:24 -0400 Subject: [PATCH] Return the cached PromotionClass from GET_PROMOTION_CLASS Character load and the promotion trainer re-read static_rune_promotion on every call and replaced the cached object. They now get the object loaded at boot, as GET_BASE_CLASS already does; the DB query is only a miss fallback. No value changes: the cached and re-read objects hold the same row. Co-Authored-By: Claude Opus 5.5 --- src/engine/db/handlers/dbPromotionClassHandler.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/engine/db/handlers/dbPromotionClassHandler.java b/src/engine/db/handlers/dbPromotionClassHandler.java index 037f231d..2f98c23e 100644 --- a/src/engine/db/handlers/dbPromotionClassHandler.java +++ b/src/engine/db/handlers/dbPromotionClassHandler.java @@ -50,7 +50,15 @@ public class dbPromotionClassHandler extends dbHandlerBase { public PromotionClass GET_PROMOTION_CLASS(final int objectUUID) { - PromotionClass promotionClass = null; + PromotionClass promotionClass; + + if (objectUUID == 0) + return null; + + promotionClass = (PromotionClass) DbManager.getFromCache(mbEnums.GameObjectType.PromotionClass, objectUUID); + + if (promotionClass != null) + return promotionClass; try (Connection connection = DbManager.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM `static_rune_promotion` WHERE `ID` = ?")) {