Class EventManager
java.lang.Object
scripting.EventManager
事件腳本的頻道級管理器,負責載入、排程並驅動
scripts/event/<名稱>.js 的執行。
每個頻道對每個已啟用的事件腳本(自 2026-06-04 起改由
EventScriptManager.discoverEventScripts() 掃描 scripts/event/ 目錄自動載入,
原 net.sf.odinms.channel.events 設定鍵已移除)
持有一個 EventManager;其核心是一個 GraalJS Invocable,
透過 Timer.EventTimer 或 autoEventTimer 呼叫腳本中的具名方法
(如 init、setup、cancelSchedule)。
關鍵協作者:
EventInstanceManager:由newInstance建立,以WeakHashMap管理多個具名實例; 腳本透過getInstanceByMap等方法查詢實例。ChannelServer:提供頻道號碼及MapleMapFactory。MapleSquad:部分事件(如 Zakum、Horntail)以 Squad 組隊機制管控入場。ScriptEngines:fresh取得 GraalJS 引擎;serialized包覆引擎以序列化並發存取。
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbroadcastServerMsg(int type, String msg, boolean weather) voidbroadcastShip(int mapid, int effect, int mode) voidbroadcastYellowMsg(String msg) voidcancel()voiddisposeInstance(String name) intintgetInstance(String name) getIv()getMonster(int id) getName()final PropertiesgetProperty(String key) getReactor(int id) intnewInstance(String name) voidschedule(String methodName, long delay, EventInstanceManager eim) scheduleAtTimestamp(String methodName, long timestamp) scheduleAtTimestampByAutoEventTimer(String methodName, long timestamp) booleanbooleanscheduleRandomEventInChannel(int chz) voidsetProperty(String key, String value) voidvoidvoidstartInstance(MapleCharacter character) voidstartInstance(MapleCharacter character, String leader) voidstartInstance(MapleParty party, MapleMap map) voidstartInstance(MapleParty party, MapleMap map, int maxLevel) voidstartInstance(String mapid, MapleCharacter chr) voidstartInstance(EventInstanceManager eim, String leader) voidstartInstance(MapleSquad squad, MapleMap map) voidstartInstance(MapleSquad squad, MapleMap map, int questID) voidstartInstance_CharID(MapleCharacter character) voidstartInstance_CharMapID(MapleCharacter character) voidstartInstance_NoID(MapleParty party, MapleMap map) voidstartInstance_NoID(MapleParty party, MapleMap map, Exception old) voidstartInstance_Party(String mapid, MapleCharacter chr) voidstartInstance_Solo(String mapid, MapleCharacter chr) voidwarpAllPlayer(int from, int to)
-
Constructor Details
-
EventManager
-
-
Method Details
-
cancel
public void cancel() -
schedule
-
schedule
-
scheduleAtTimestampByAutoEventTimer
-
scheduleAtTimestamp
-
getChannel
public int getChannel() -
getChannelServer
-
getInstance
-
getInstances
-
newInstance
-
disposeInstance
-
getIv
-
setProperty
-
getProperty
-
getProperties
-
getName
-
startInstance
public void startInstance() -
startInstance_Solo
-
startInstance
-
startInstance_Party
-
startInstance
-
startInstance_CharID
-
startInstance_CharMapID
-
startInstance
-
startInstance
-
startInstance
-
startInstance_NoID
-
startInstance_NoID
-
startInstance
-
startInstance
-
startInstance
-
warpAllPlayer
public void warpAllPlayer(int from, int to) -
getMapFactory
-
newMonsterStats
-
newCharList
-
getMonster
-
getReactor
-
broadcastShip
public void broadcastShip(int mapid, int effect, int mode) -
broadcastYellowMsg
-
broadcastServerMsg
-
scheduleRandomEvent
public boolean scheduleRandomEvent() -
scheduleRandomEventInChannel
public boolean scheduleRandomEventInChannel(int chz) -
setWorldEvent
public void setWorldEvent() -
getChannelOnline
public int getChannelOnline() -
getTotalOnline
public int getTotalOnline() -
reloadDrops
public void reloadDrops()
-