API 事件

基本信息

属性 值
位置 src/main/java/mytown/api/events/
事件类 6 个
启用版本 Minecraft 1.7.10

MyTown2 对外暴露的事件 API,供附属 mod 挂钩。

6 个事件基类

文件 基类 覆盖对象
TownEvent.java extends net.minecraftforge.eventbus.Event Town
NationEvent.java 同上 Nation
PlotEvent.java 同上 Plot
RankEvent.java 同上 Rank
ResidentEvent.java 同上 Resident
TownBlockEvent.java 同上 TownBlock

内嵌具体事件(实测 13 个)

每个基类内含若干 public static class。5 个基类各有 Create / Delete 两个事件, TownEvent 额外有 2 个 —— 合计 13 个内嵌事件:

基类文件 内嵌事件 数量
TownEvent.java TownCreateEvent(19)、TownDeleteEvent(27)、TownEnterEvent(35)、TownEnterInRangeEvent(45) 4
NationEvent.java NationCreateEvent、NationDeleteEvent 2
PlotEvent.java PlotCreateEvent、PlotDeleteEvent 2
RankEvent.java RankCreateEvent、RankDeleteEvent 2
ResidentEvent.java ResidentCreateEvent、ResidentDeleteEvent 2
TownBlockEvent.java BlockCreateEvent、BlockDeleteEvent 2

⚠️ TownBlockEvent 的两个事件名为 BlockCreateEvent / BlockDeleteEvent, 不带 TownBlock 前缀。这是本 mod 内唯一打破「基类名 + 动作」命名规律的, 按 TownBlockCreateEvent 去搜会搜不到。

⚠️ 只有 TownEvent 有超过 Create/Delete 的事件(TownEnterEvent、 TownEnterInRangeEvent)。其余 5 个基类各只有 2 个。 不能笼统声称「每个实体都有 enter 类事件」。

⚠️ 6 是基类文件数,13 才是内嵌事件总数。 统计「事件数量」时必须逐个内嵌类展开,否则会少报一半以上。

⚠️ 全部继承 Forge 的 net.minecraftforge.eventbus.Event, 不是 MyEssentials 的自定义事件类,也不是 myessentials.event.*。 后者(AE2PartPlaceEvent 等)由 ProtectionHandlers 消费,是另一套事件。

API 声明

包级注解(见 API 包声明):

@cpw.mods.fml.common.API(owner = "MyTown", apiVersion = "1.0", provides = "MyTown|API")

⚠️ provides = "MyTown|API" 中的标识是 MyTown(不带 2), 而 modid 是 MyTown2。这与 SellSign 的 "MyTown:SellSign" 属同一类命名不一致。

相关条目