WorldInitEvent
WorldInitEvent
继承关系
类描述
Called when a World is initializing
当世界被初始化时触发。
译注:从
net.minecraft.server.v1_16_R3.MinecraftServer#loadWorld(String s)
方法来看,服务端在启动时首先对从未加载过的世界进行生成(或对旧版本存档进行升级),然后遍历每一个世界,分别触发一次WorldLoadEvent
。因此WorldInitEvent
应该指世界生成事件,每一个世界都只会被世界生成的代码操作一次。在这以后才会对每一个世界触发WorldLoadEvent
。每一次开服时都应该触发WorldLoadEvent
,但不一定触发WorldInitEvent
。插件的
plugin.yml
内,除了main
、name
这些常见字段以外,还有一个不常用的字段load
。这个字段决定了插件的加载时机。插件加载时机共有两种,分别为load: POSTWORLD
和load: STARTUP
。如果没有指明加载时机,那么按load: POSTWORLD
处理。从字面意思上就可以看出,默认配置下,插件的onEnable()
方法是在服务端完成世界加载后才被调用的(POST 词缀是延后、在某事以后的意思)。即WorldInitEvent
和WorldLoadEvent
都触发以后,插件才会被加载,这样的插件很显然不可能监听到上述两个事件。为此,必须在plugin.yml
里写上load: STARTUP
,这样插件就会在世界加载以前优先加载,从而得以监听WorldInitEvent
和WorldLoadEvent
。
方法列表
getHandlers
方法声明: public HandlerList getHandlers()
方法签名: ()Lorg/bukkit/event/HandlerList;
getHandlerList
方法声明: public static HandlerList getHandlerList()
方法签名: ()Lorg/bukkit/event/HandlerList;
Last updated