Class PortalScriptManager

java.lang.Object
scripting.PortalScriptManager

public class PortalScriptManager extends Object
傳送門腳本的全域單例管理器,負責載入、快取並執行 scripts/portal/<名稱>.js

腳本以 PortalScript 接口快取於 ConcurrentHashMap(以哨符 NULL_SCRIPT 表示「無腳本」,避免重複查找檔案);同一傳送門名稱使用 per-name ReentrantLock 序列化並發進入,防止多條 Netty worker 執行緒同時踩入同一 GraalJS Context(GraalJS 禁止並發)。

關鍵協作者:

clearScripts() 供 GM 指令 !reloadportals 呼叫以清除腳本快取; portalLocks 刻意不隨之清除,以避免持鎖執行緒與新建鎖物件間的互斥失效。

  • Constructor Details

    • PortalScriptManager

      public PortalScriptManager()
  • Method Details

    • getInstance

      public static final PortalScriptManager getInstance()
    • executePortalScript

      public final void executePortalScript(MaplePortal portal, MapleClient c)
    • clearScripts

      public final void clearScripts()