Files
netease-modsdk-wiki/docs/mcdocs/1-ModAPI/事件/世界.md
2025-03-17 13:24:39 +08:00

41 KiB
Raw Blame History

sidebarDepth
sidebarDepth
1

世界

索引

事件
描述
AchievementCompleteEvent 服务端 玩家完成自定义成就时触发该事件
AddEntityClientEvent 客户端 客户端侧创建新实体时触发
AddEntityServerEvent 服务端 服务端侧创建新实体,或实体从存档加载时触发
AddPlayerAOIClientEvent 客户端 玩家加入游戏或者其余玩家进入当前玩家所在的区块时触发的AOI事件替换AddPlayerEvent
AddPlayerCreatedClientEvent 客户端 玩家进入当前玩家所在的区块AOI后玩家皮肤数据异步加载完成后触发的事件
AddServerPlayerEvent 服务端 触发时机:玩家加入时触发该事件。
ChunkAcquireDiscardedClientEvent 客户端 触发时机:客户端区块即将被卸载时
ChunkAcquireDiscardedServerEvent 服务端 服务端区块即将被卸载时触发
ChunkGeneratedServerEvent 服务端 触发时机:区块创建完成时触发
ChunkLoadedClientEvent 客户端 触发时机:客户端区块加载完成时
ChunkLoadedServerEvent 服务端 触发时机:服务端区块加载完成时
ClientLoadAddonsFinishServerEvent 服务端 触发时机客户端mod加载完成时服务端触发此事件。服务器可以使用此事件往客户端发送数据给其初始化。
CommandEvent 服务端 玩家请求执行指令时触发
DelServerPlayerEvent 服务端 触发时机:删除玩家时触发该事件。
EntityRemoveEvent 服务端 实体被删除时触发
ExplosionServerEvent 服务端 当发生爆炸时触发。
LoadClientAddonScriptsAfter 客户端 客户端加载mod完成事件
LoadServerAddonScriptsAfter 服务端 服务器加载完mod时触发
NewOnEntityAreaEvent 服务端 触发时机通过RegisterEntityAOIEvent注册过AOI事件后当有实体进入或离开注册感应区域时触发该事件。
OnCommandOutputClientEvent 客户端 当command命令有成功消息输出时触发
OnCommandOutputServerEvent 服务端 Command命令执行成功事件
OnContainerFillLoottableServerEvent 服务端 触发时机随机奖励箱第一次打开根据loottable生成物品时
OnLightningLevelChangeServerEvent 服务端 打雷强度发生改变
OnLocalLightningLevelChangeServerEvent 服务端 独立维度天气打雷强度发生改变时触发
OnLocalPlayerStopLoading 客户端 触发时机:玩家进入存档,出生点地形加载完成时触发。该事件触发时可以进行切换维度的操作。
OnLocalRainLevelChangeServerEvent 服务端 独立维度天气下雨强度发生改变时触发
OnRainLevelChangeServerEvent 服务端 下雨强度发生改变
OnScriptTickClient 客户端 客户端tick事件,1秒30次
OnScriptTickServer 服务端 服务器tick时触发,1秒有30个tick
PlaceNeteaseStructureFeatureEvent 服务端 触发时机:首次生成地形时,结构特征即将生成时服务端抛出该事件。
PlayerIntendLeaveServerEvent 服务端 触发时机即将删除玩家时触发该事件此时可以通过各种API获取玩家的当前状态。
PlayerJoinMessageEvent 服务端 触发时机准备显示“xxx加入游戏”的玩家登录提示文字时服务端抛出的事件。
PlayerLeftMessageServerEvent 服务端 触发时机准备显示“xxx离开游戏”的玩家离开提示文字时服务端抛出的事件。
RemoveEntityClientEvent 客户端 客户端侧实体被移除时触发
RemovePlayerAOIClientEvent 客户端 玩家离开当前玩家同一个区块时触发AOI事件
ServerChatEvent 服务端 玩家发送聊天信息时触发
ServerPostBlockPatternEvent 服务端 触发时机:用方块组合生成生物,生成生物之后触发该事件。
ServerPreBlockPatternEvent 服务端 触发时机:用方块组合生成生物,在放置最后一个组成方块时触发该事件。
ServerSpawnMobEvent 服务端 游戏内自动生成生物以及使用api生成生物时触发
UnLoadClientAddonScriptsBefore 客户端 客户端卸载mod之前触发

世界

AchievementCompleteEvent

服务端

  • 描述

    玩家完成自定义成就时触发该事件

  • 参数

    参数名
    数据类型
    说明
    playerId str 玩家id
    rootNodeId str 所属的页面的根节点成就id
    achievementId str 达成的成就id
    title str 成就标题
    description str 成就描述
  • 返回值

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

AddEntityClientEvent

客户端

  • 描述

    客户端侧创建新实体时触发

  • 参数

    参数名
    数据类型
    说明
    id str 实体id
    posX float 位置x
    posY float 位置y
    posZ float 位置z
    dimensionId int 实体维度
    isBaby bool 是否为幼儿
    engineTypeStr str 实体类型
    itemName str 物品identifier仅当物品实体时存在该字段
    auxValue int 物品附加值(仅当物品实体时存在该字段)
  • 返回值

  • 备注

    • 创建玩家时不会触发该事件

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

AddEntityServerEvent

服务端

  • 描述

    服务端侧创建新实体,或实体从存档加载时触发

  • 参数

    参数名
    数据类型
    说明
    id str 实体id
    posX float 位置x
    posY float 位置y
    posZ float 位置z
    dimensionId int 实体维度
    isBaby bool 是否为幼儿
    engineTypeStr str 实体类型即实体identifier
    itemName str 物品identifier仅当物品实体时存在该字段
    auxValue int 物品附加值(仅当物品实体时存在该字段)
  • 返回值

  • 备注

    • 创建玩家时不会触发该事件

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

AddPlayerAOIClientEvent

客户端

  • 描述

    玩家加入游戏或者其余玩家进入当前玩家所在的区块时触发的AOI事件替换AddPlayerEvent

  • 参数

    参数名
    数据类型
    说明
    playerId str 玩家id
  • 返回值

  • 备注

    • 该事件触发只表明在服务端数据中接收到了新玩家并不能代表此时玩家在客户端中可见若想在玩家进入AOI后立马调用玩家渲染相关接口建议使用AddPlayerCreatedClientEvent

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

AddPlayerCreatedClientEvent

客户端

  • 描述

    玩家进入当前玩家所在的区块AOI后玩家皮肤数据异步加载完成后触发的事件

  • 参数

    参数名
    数据类型
    说明
    playerId str 玩家id
  • 返回值

  • 备注

    • 由于玩家皮肤是异步加载的原因,该事件触发时机比AddPlayerAOIClientEvent晚,触发该事件后可以对该玩家调用相关玩家渲染接口
    • 当前客户端每加载好一个玩家的皮肤就会触发一次该事件比如刚进入世界时localPlayer加载好会触发一次周围的所有玩家加载好后也会分别触发一次。

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

AddServerPlayerEvent

服务端

  • 描述

    触发时机:玩家加入时触发该事件。

  • 参数

    参数名
    数据类型
    说明
    id str 玩家id
    isTransfer bool 是否是切服时进入服务器仅用于Apollo。如果是True则表示切服时加入服务器若是False则表示登录进入网络游戏
    isReconnect bool 是否是断线重连仅用于Apollo。如果是True则表示本次登录是断线重连若是False则表示本次是正常登录或者转服
    isPeUser bool 是否从手机端登录仅用于Apollo。如果是True则表示本次登录是从手机端登录若是False则表示本次登录是从PC端登录
    transferParam str 切服传入参数仅用于Apollo。调用【TransferToOtherServer】或【TransferToOtherServerById】传入的切服参数
    uid int/long 仅用于Apollo玩家的netease uid玩家的唯一标识
    proxyId int 仅用于Apollo当前客户端连接的proxy服务器id
  • 返回值

  • 备注

    • 触发此事件时客户端mod未加载完毕因此响应本事件时不能客户端发送事件。若需要在玩家进入世界时服务器往客户端发送事件请使用ClientLoadAddonsFinishServerEvent
    • 触发此事件时玩家的实体还未加载完毕请勿在这时切换维度。请在客户端监听OnLocalPlayerStopLoading事件并发送事件到server端再进行维度切换。

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

ChunkAcquireDiscardedClientEvent

客户端

  • 描述

    触发时机:客户端区块即将被卸载时

  • 参数

    参数名
    数据类型
    说明
    dimension int 区块所在维度
    chunkPosX int 区块的x坐标对应方块X坐标区间为[x * 16, x * 16 + 15]
    chunkPosZ int 区块的z坐标对应方块Z坐标区间为[z * 16, z * 16 + 15]
  • 返回值

  • 备注

    • 区块卸载:游戏只会加载玩家周围的区块,玩家移动到别的区域时,原来所在区域的区块会被卸载,参考区块介绍

ChunkAcquireDiscardedServerEvent

服务端

  • 描述

    服务端区块即将被卸载时触发

  • 参数

    参数名
    数据类型
    说明
    dimension int 区块所在维度
    chunkPosX int 区块的x坐标对应方块X坐标区间为[x * 16, x * 16 + 15]
    chunkPosZ int 区块的z坐标对应方块Z坐标区间为[z * 16, z * 16 + 15]
    entities list(str) 随区块卸载而从世界移除的实体id的列表。注意事件触发时已经无法获取到这些实体的信息仅供脚本资源回收用。
    blockEntities list(dict) 随区块卸载而从世界移除的自定义方块实体的坐标的列表列表元素dict包含posXposYposZ三个int表示自定义方块实体的坐标。注意事件触发时已经无法获取到这些方块实体的信息仅供脚本资源回收用。
  • 返回值

  • 备注

    • 区块卸载:游戏只会加载玩家周围的区块,玩家移动到别的区域时,原来所在区域的区块会被卸载,参考区块介绍

ChunkGeneratedServerEvent

服务端

  • 描述

    触发时机:区块创建完成时触发

  • 参数

    参数名
    数据类型
    说明
    dimension int 该区块所在的维度
    blockEntityData [{"blockName":str,"posX":int,"posY":int,"posZ":int}...]/None 该区块中的自定义方块实体列表通常是由自定义特征生成的自定义方块没有自定义方块实体时该值为None
  • 返回值

ChunkLoadedClientEvent

客户端

  • 描述

    触发时机:客户端区块加载完成时

  • 参数

    参数名
    数据类型
    说明
    dimension int 区块所在维度
    chunkPosX int 区块的x坐标对应方块X坐标区间为[x * 16, x * 16 + 15]
    chunkPosZ int 区块的z坐标对应方块Z坐标区间为[z * 16, z * 16 + 15]
  • 返回值

ChunkLoadedServerEvent

服务端

  • 描述

    触发时机:服务端区块加载完成时

  • 参数

    参数名
    数据类型
    说明
    dimension int 区块所在维度
    chunkPosX int 区块的x坐标对应方块X坐标区间为[x * 16, x * 16 + 15]
    chunkPosZ int 区块的z坐标对应方块Z坐标区间为[z * 16, z * 16 + 15]
  • 返回值

ClientLoadAddonsFinishServerEvent

服务端

  • 描述

    触发时机客户端mod加载完成时服务端触发此事件。服务器可以使用此事件往客户端发送数据给其初始化。

  • 参数

    参数名
    数据类型
    说明
    playerId str 玩家id
  • 返回值

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

CommandEvent

服务端

  • 描述

    玩家请求执行指令时触发

  • 参数

    参数名
    数据类型
    说明
    entityId str 玩家ID
    command str 指令字符串
    cancel bool 是否取消
  • 返回值

  • 备注

    • 该事件是玩家请求执行指令时触发的Hook该事件不响应命令方块的指令和通过modSDK调用的指令阻止玩家的该条指令只需要将cancel设置为True

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

DelServerPlayerEvent

服务端

  • 描述

    触发时机:删除玩家时触发该事件。

  • 参数

    参数名
    数据类型
    说明
    id str 玩家id
    isTransfer bool 是否是切服时退出服务器仅用于Apollo。如果是True则表示切服时退出服务器若是False则表示退出网络游戏
    uid int/long 玩家的netease uid玩家的唯一标识
  • 返回值

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

EntityRemoveEvent

服务端

  • 描述

    实体被删除时触发

  • 参数

    参数名
    数据类型
    说明
    id str 实体id
  • 返回值

  • 备注

    • 触发情景:实体从场景中被删除,例如:生物死亡,生物被清除,玩家退出游戏,船/盔甲架被破坏,掉落物/经验球被捡起或清除
    • 当生物随区块卸载时不会触发该事件而是ChunkAcquireDiscardedServerEvent事件
    • 关于生物的清除当生物离玩家大于wiki所说的距离并且还在玩家的模拟距离内时会被清除。也就是说如果玩家瞬间传送到远处原处的生物马上离开了模拟距离并不会被清除
    • 玩家退出游戏时EntityRemoveEventDelServerPlayerEvent按顺序依次触发

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

ExplosionServerEvent

服务端

  • 描述

    当发生爆炸时触发。

  • 参数

    参数名
    数据类型
    说明
    blocks list[[x,y,z,cancel],...] 爆炸涉及到的方块坐标(x,y,z)cancel是一个bool值
    victims list/None 受伤实体id列表当该爆炸创建者id为None时victims也为None
    sourceId str/None 爆炸创建者id
    explodePos list 爆炸位置[x,y,z]
    dimensionId int 维度id
  • 返回值

  • 备注

    • 通过设置blocks中cancel的bool值为True可以将该方块的爆炸取消例如(x,y,z,True)
    • 某些情况下爆炸创建者id为None此时受伤实体id列表也为None比如爬行者所造成的爆炸。

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

LoadClientAddonScriptsAfter

客户端

  • 描述

    客户端加载mod完成事件

  • 参数

  • 返回值

LoadServerAddonScriptsAfter

服务端

  • 描述

    服务器加载完mod时触发

  • 参数

  • 返回值

NewOnEntityAreaEvent

服务端

  • 描述

    触发时机通过RegisterEntityAOIEvent注册过AOI事件后当有实体进入或离开注册感应区域时触发该事件。

  • 参数

    参数名
    数据类型
    说明
    name str 注册感应区域名称
    enteredEntities list[str] 进入该感应区域的实体id列表
    leftEntities list[str] 离开该感应区域的实体id列表
  • 返回值

  • 备注

    • 本事件代替原有的OnEntityAreaEvent事件
  • 示例

# ServerSystem
import mod.server.extraServerApi as serverApi
self.ListenForEvent(serverApi.GetEngineNamespace(),
                    serverApi.GetEngineSystemName(),
                    "NewOnEntityAreaEvent",
                    self, self.NewOnEntityAreaEvent)
def NewOnEntityAreaEvent(self, args):
    name = args['name']

相关接口

RegisterEntityAOIEvent

method in mod.server.component.dimensionCompServer.DimensionCompServer

  • 描述

    注册感应区域,有实体进入时和离开时会有消息通知

  • 参数

    参数名
    数据类型
    说明
    dimension int 维度id
    name str 注册的感应区域名
    aabb tuple(float,float,float,float,float,float) 感应区域的坐标范围依次为minX, minY, minZ, maxX, maxY, maxZ
    ignoredEntities list(str) 忽略的实体id列表
    entityType int 期望响应的实体类型,不传则响应所有的实体类型EntityType枚举
  • 返回值

    数据类型
    说明
    bool 是否注册成功
  • 备注

    • 注册完感应区域后需通过监听OnEntityAreaEvent或NewOnEntityAreaEvent事件来获取感应事件
    • 不支持长或宽大于2000格的区域。对于大范围区域建议在脚本中每隔一段时间获取实体坐标判断来实现。
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateDimension(levelId)
comp.RegisterEntityAOIEvent(0, "test", (0, 0, 0, 1, 1, 1), None)

UnRegisterEntityAOIEvent

method in mod.server.component.dimensionCompServer.DimensionCompServer

  • 描述

    反注册感应区域

  • 参数

    参数名
    数据类型
    说明
    dimension int 维度id
    name str 需要反注册的感应区域名
  • 返回值

    数据类型
    说明
    bool 是否注册成功
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateDimension(levelId)
comp.UnRegisterEntityAOIEvent(0, "test")

OnCommandOutputClientEvent

客户端

  • 描述

    当command命令有成功消息输出时触发

  • 参数

    参数名
    数据类型
    说明
    command str 命令名称
    message str 命令返回的消息
  • 返回值

  • 备注

    • 部分命令在返回的时候没有命令名称命令组件需要showOutput参数为True时才会有返回

OnCommandOutputServerEvent

服务端

  • 描述

    Command命令执行成功事件

  • 参数

    参数名
    数据类型
    说明
    command str 命令名称
    message str 命令返回的消息
  • 返回值

  • 备注

    • 部分命令在返回的时候没有命令名称命令组件需要showOutput参数为True时才会有返回

OnContainerFillLoottableServerEvent

服务端

  • 描述

    触发时机随机奖励箱第一次打开根据loottable生成物品时

  • 参数

    参数名
    数据类型
    说明
    loottable str 奖励箱子所读取的loottable的json路径
    playerId str 打开奖励箱子的玩家的playerId
    itemList list 掉落物品列表每个元素为一个itemDict格式可参考物品信息字典
    dirty bool 默认为False如果需要修改掉落列表需将该值设为True
  • 返回值

  • 备注

    • 只有当dirty为True时才会重新读取item列表并生成对应的掉落物如果不需要修改掉落结果的话请勿随意修改dirty值

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

OnLightningLevelChangeServerEvent

服务端

  • 描述

    打雷强度发生改变

  • 参数

    参数名
    数据类型
    说明
    oldLevel float 改变前的打雷强度
    newLevel float 改变后的打雷强度
  • 返回值

OnLocalLightningLevelChangeServerEvent

服务端

  • 描述

    独立维度天气打雷强度发生改变时触发

  • 参数

    参数名
    数据类型
    说明
    oldLevel float 改变前的打雷强度
    newLevel float 改变后的打雷强度
    dimensionId int 独立天气维度id
  • 返回值

OnLocalPlayerStopLoading

客户端

  • 描述

    触发时机:玩家进入存档,出生点地形加载完成时触发。该事件触发时可以进行切换维度的操作。

  • 参数

    参数名
    数据类型
    说明
    playerId str 加载完成的玩家id
  • 返回值

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

OnLocalRainLevelChangeServerEvent

服务端

  • 描述

    独立维度天气下雨强度发生改变时触发

  • 参数

    参数名
    数据类型
    说明
    oldLevel float 改变前的下雨强度
    newLevel float 改变后的下雨强度
    dimensionId int 独立天气维度id
  • 返回值

OnRainLevelChangeServerEvent

服务端

  • 描述

    下雨强度发生改变

  • 参数

    参数名
    数据类型
    说明
    oldLevel float 改变前的下雨强度
    newLevel float 改变后的下雨强度
  • 返回值

OnScriptTickClient

客户端

  • 描述

    客户端tick事件,1秒30次

  • 参数

  • 返回值

OnScriptTickServer

服务端

  • 描述

    服务器tick时触发,1秒有30个tick

  • 参数

  • 返回值

PlaceNeteaseStructureFeatureEvent

服务端

  • 描述

    触发时机:首次生成地形时,结构特征即将生成时服务端抛出该事件。

  • 参数

    参数名
    数据类型
    说明
    structureName str 结构名称
    x int 结构坐标最小方块所在的x坐标
    y int 结构坐标最小方块所在的y坐标
    z int 结构坐标最小方块所在的z坐标
    biomeType int 该feature所放置区块的生物群系类型
    biomeName str 该feature所放置区块的生物群系名称
    dimensionId int 维度id
    cancel bool 设置为True时可阻止该结构的放置
  • 返回值

  • 备注

    • 需要配合AddNeteaseFeatureWhiteList接口一同使用 若在本监听事件中调用其他mod SDK接口将无法生效强烈建议本事件仅用于设置结构放置与否

相关接口

AddNeteaseFeatureWhiteList

method in mod.server.component.featureCompServer.FeatureCompServer

  • 描述

    添加结构对PlaceNeteaseStructureFeatureEvent事件的脚本层监听

  • 参数

    参数名
    数据类型
    说明
    structureName str 结构的identifier
  • 返回值

    数据类型
    说明
    bool 是否增加成功
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateFeature(levelId)
# 注意structureName格式为floderName:structureName
comp.AddNeteaseFeatureWhiteList("test:pumpkins")

RemoveNeteaseFeatureWhiteList

method in mod.server.component.featureCompServer.FeatureCompServer

  • 描述

    移除structureName对PlaceNeteaseStructureFeatureEvent事件的脚本层监听

  • 参数

    参数名
    数据类型
    说明
    structureName str 结构名称
  • 返回值

    数据类型
    说明
    bool 是否移除成功
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateFeature(levelId)
# 注意structureName格式为floderName:structureName
comp.RemoveNeteaseFeatureWhiteList("test:pumpkins")

ClearAllNeteaseFeatureWhiteList

method in mod.server.component.featureCompServer.FeatureCompServer

  • 描述

    清空所有已添加Netease Structure Feature对PlaceNeteaseStructureFeatureEvent事件的脚本层监听

  • 参数

  • 返回值

    数据类型
    说明
    bool 是否清空成功
  • 示例

import mod.server.extraServerApi as serverApi
comp = serverApi.GetEngineCompFactory().CreateFeature(levelId)
comp.ClearAllNeteaseFeatureWhiteList()

PlayerIntendLeaveServerEvent

服务端

  • 描述

    触发时机即将删除玩家时触发该事件此时可以通过各种API获取玩家的当前状态。

  • 参数

    参数名
    数据类型
    说明
    playerId str 玩家id
  • 返回值

  • 备注

    • 与【DelServerPlayerEvent】事件不同此时可以通过各种API获取玩家的当前状态。

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

PlayerJoinMessageEvent

服务端

  • 描述

    触发时机准备显示“xxx加入游戏”的玩家登录提示文字时服务端抛出的事件。

  • 参数

    参数名
    数据类型
    说明
    id str 玩家实体id
    name str 玩家昵称
    cancel bool 是否显示提示文字允许修改。True不显示提示
    message str 玩家加入游戏的提示文字,允许修改
  • 返回值

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

PlayerLeftMessageServerEvent

服务端

  • 描述

    触发时机准备显示“xxx离开游戏”的玩家离开提示文字时服务端抛出的事件。

  • 参数

    参数名
    数据类型
    说明
    id str 玩家实体id
    name str 玩家昵称
    cancel bool 是否显示提示文字允许修改。True不显示提示
    message str 玩家离开游戏的提示文字,允许修改
  • 返回值

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

RemoveEntityClientEvent

客户端

  • 描述

    客户端侧实体被移除时触发

  • 参数

    参数名
    数据类型
    说明
    id str 移除的实体id
  • 返回值

  • 备注

    • 客户端接收服务端AOI事件时触发原事件名 RemoveEntityPacketEvent

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

RemovePlayerAOIClientEvent

客户端

  • 描述

    玩家离开当前玩家同一个区块时触发AOI事件

  • 参数

    参数名
    数据类型
    说明
    playerId str 玩家id
  • 返回值

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

ServerChatEvent

服务端

  • 描述

    玩家发送聊天信息时触发

  • 参数

    参数名
    数据类型
    说明
    username str 玩家名称
    playerId str 玩家id
    message str 玩家发送的聊天消息内容
    cancel bool 是否取消这个聊天事件若取消可以设置为True
    bChatById bool 是否把聊天消息发送给指定在线玩家而不是广播给所有在线玩家若只发送某些玩家可以设置为True
    bForbid bool 是否禁言仅apollo可用。true被禁言玩家聊天会提示“你已被管理员禁言”。
    toPlayerIds list(str) 接收聊天消息的玩家id列表bChatById为True时生效
  • 返回值

  • 示例

# ServerSystem
import mod.server.extraServerApi as serverApi
from mod_log import logger as logger
# 监听引擎的事件 self指ServerSystem类的实例  ServerChatEvent是系统事件
self.ListenForEvent(serverApi.GetEngineNamespace(),
                    serverApi.GetEngineSystemName(),
                    "ServerChatEvent",
                    self, self.OnServerChat)
def OnServerChat(self, args):
    #可以设置username或者message的样式代码 详见mc维基 样式代码
    args["username"] = "§rl"+args[username]+"§r"
    args["message"] = "test"
    logger.info("ServerChatEvent %s" % args)

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

ServerPostBlockPatternEvent

服务端

  • 描述

    触发时机:用方块组合生成生物,生成生物之后触发该事件。

  • 参数

    参数名
    数据类型
    说明
    entityId str 生成生物的id
    entityGenerated str 生成生物的名字,如"minecraft:pig"
    x int 方块x坐标
    y int 方块y坐标
    z int 方块z坐标
    dimensionId int 维度id
  • 返回值

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

ServerPreBlockPatternEvent

服务端

  • 描述

    触发时机:用方块组合生成生物,在放置最后一个组成方块时触发该事件。

  • 参数

    参数名
    数据类型
    说明
    enable bool 是否允许继续生成。若设为False可阻止生成生物
    x int 方块x坐标
    y int 方块y坐标
    z int 方块z坐标
    dimensionId int 维度id
    entityWillBeGenerated str 即将生成生物的名字,如"minecraft:pig"
  • 返回值

ServerSpawnMobEvent

服务端

  • 描述

    游戏内自动生成生物以及使用api生成生物时触发

  • 参数

    参数名
    数据类型
    说明
    entityId str 实体id
    identifier str 生成实体的命名空间
    type int 生成实体的类型,参考EntityType
    baby bool 生成怪物是否是幼年怪
    x float 生成实体坐标x
    y float 生成实体坐标y
    z float 生成实体坐标z
    dimensionId int 生成实体的维度默认值为00为主世界1为地狱2为末地
    realIdentifier str 生成实体的命名空间通过MOD API生成的生物在这个参数也能获取到真正的命名空间而不是以custom开头的
    cancel bool 是否取消生成该实体
  • 返回值

  • 备注

    • 如果通过MOD API生成identifier命名空间为custom。如果需要屏蔽原版的生物生成可以判断identifier命名空间不为custom时设置cancel为True

在零件中直接声明一个同名函数,即可完成监听,详情参考零件事件

UnLoadClientAddonScriptsBefore

客户端

  • 描述

    客户端卸载mod之前触发

  • 参数

  • 返回值