Class ReactorScriptManager
java.lang.Object
scripting.AbstractScriptManager
scripting.ReactorScriptManager
反應爐腳本的全域單例管理器,負責執行
scripts/reactor/<ID>.js 並快取掉寶清單。
繼承 AbstractScriptManager,以 per-MapleClient 引擎快取機制取得腳本
Invocable,注入全域變數 rm(ReactorActionManager),
再呼叫腳本函式 act()。
關鍵協作者:
ReactorActionManager:腳本 API 物件,以rm注入腳本環境。MapleReactor:提供反應爐 ID、名稱,由MapReactorManager觸發act。ScriptEngines:C8 後為 GraalJS-only;同一(client, reactorId)以MapleClient.getReactorScriptLock(int)序列化,防止 GraalJS Context 被 Netty worker 與Timer.MapTimer同時進入。DatabaseConnection:getDrops從reactordrops資料表讀取掉寶, 結果快取於drops以避免重複查詢。
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal voidact(MapleClient c, MapleReactor reactor) final voidfinal List<ReactorDropEntry> getDrops(int rid) static final ReactorScriptManagerMethods inherited from class AbstractScriptManager
cleanNpc, cleanNpcs, getInvocable, getInvocable
-
Constructor Details
-
ReactorScriptManager
public ReactorScriptManager()
-
-
Method Details
-
getInstance
-
act
-
getDrops
-
clearDrops
public final void clearDrops()
-