Skip to content

世界

索引

事件
描述
AchievementCompleteEvent服务端玩家完成自定义成就时触发该事件
AddEntityClientEvent客户端客户端侧创建新实体时触发
AddEntityServerEvent服务端服务端侧创建新实体,或实体从存档加载时触发
AddPlayerAOIClientEvent客户端玩家加入游戏或者其余玩家进入当前玩家视野时触发的事件,替换AddPlayerEvent
AddPlayerCreatedClientEvent客户端玩家进入当前玩家所在的区块AOI后,玩家皮肤数据异步加载完成后触发的事件
AddServerPlayerEvent服务端触发时机:玩家加入时触发该事件。
ChunkAcquireDiscardedClientEvent客户端触发时机:客户端区块即将被卸载时
ChunkAcquireDiscardedServerEvent服务端服务端区块即将被卸载时触发
ChunkGeneratedServerEvent服务端触发时机:区块创建完成时触发
ChunkLoadedClientEvent客户端触发时机:客户端区块加载完成时
ChunkLoadedServerEvent服务端触发时机:服务端区块加载完成时
ClientLoadAddonsFinishServerEvent服务端触发时机:客户端mod加载完成时,服务端触发此事件。服务器可以使用此事件,往客户端发送数据给其初始化。
CommandEvent服务端玩家请求执行指令时触发
CustomCommandTriggerServerEvent服务端自定义命令触发事件
DelServerPlayerEvent服务端触发时机:删除玩家时触发该事件。
EntityRemoveEvent服务端实体被删除时触发
ExplosionServerEvent服务端当发生爆炸时触发。
GameRenderTickEvent客户端客户端渲染帧开始时触发该事件,一秒触发次数为当前的帧数
GlobalCommandServerEvent服务端服务端全局命令事件,包括聊天栏发送、SetCommand接口、命令方块(矿车)、行为包动画执行命令
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
PlaceNeteaseLargeFeatureServerEvent服务端触发时机:网易版大型结构即将生成时服务端抛出该事件。
PlaceNeteaseStructureFeatureEvent服务端触发时机:首次生成地形时,结构特征即将生成时服务端抛出该事件。
PlayerIntendLeaveServerEvent服务端触发时机:即将删除玩家时触发该事件,此时可以通过各种API获取玩家的当前状态。
PlayerJoinMessageEvent服务端触发时机:准备显示“xxx加入游戏”的玩家登录提示文字时服务端抛出的事件。
PlayerLeftMessageServerEvent服务端触发时机:准备显示“xxx离开游戏”的玩家离开提示文字时服务端抛出的事件。
PrimaryClientSyncSkinClientEvent客户端主客户端自己更换了皮肤触发
RemoveEntityClientEvent客户端客户端侧实体被移除时触发
RemovePlayerAOIClientEvent客户端玩家离开当前玩家视野时触发的事件
ServerChatEvent服务端玩家发送聊天信息时触发
ServerPostBlockPatternEvent服务端触发时机:用方块组合生成生物,生成生物之后触发该事件。
ServerPreBlockPatternEvent服务端触发时机:用方块组合生成生物,在放置最后一个组成方块时触发该事件。
ServerSpawnMobEvent服务端游戏内自动生成生物,以及使用api生成生物时触发
UnLoadClientAddonScriptsBefore客户端客户端卸载mod之前触发

世界

AchievementCompleteEvent

服务端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    playerIdstr玩家id
    rootNodeIdstr所属的页面的根节点成就id
    achievementIdstr达成的成就id
    titlestr成就标题
    descriptionstr成就描述
  • 返回值

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

AddEntityClientEvent

客户端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    idstr实体id
    posXfloat位置x
    posYfloat位置y
    posZfloat位置z
    dimensionIdint实体维度
    isBabybool是否为幼儿
    engineTypeStrstr实体类型
    itemNamestr物品identifier(仅当物品实体时存在该字段)
    auxValueint物品附加值(仅当物品实体时存在该字段)
  • 返回值

  • 备注

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

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

AddEntityServerEvent

服务端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    idstr实体id
    posXfloat位置x
    posYfloat位置y
    posZfloat位置z
    dimensionIdint实体维度
    isBabybool是否为幼儿
    engineTypeStrstr实体类型,即实体identifier
    itemNamestr物品identifier(仅当物品实体时存在该字段)
    auxValueint物品附加值(仅当物品实体时存在该字段)
  • 返回值

  • 备注

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

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

AddPlayerAOIClientEvent

客户端

  • 描述

    玩家加入游戏或者其余玩家进入当前玩家视野时触发的事件,替换AddPlayerEvent

  • 参数

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

  • 备注

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

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

AddPlayerCreatedClientEvent

客户端

  • 描述

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

  • 参数

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

  • 备注

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

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

AddServerPlayerEvent

服务端

  • 描述

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

  • 参数

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

  • 备注

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

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

ChunkAcquireDiscardedClientEvent

客户端

  • 描述

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

  • 参数

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

  • 备注

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

ChunkAcquireDiscardedServerEvent

服务端

  • 描述

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

  • 参数

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

  • 备注

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

ChunkGeneratedServerEvent

服务端

  • 描述

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

  • 参数

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

ChunkLoadedClientEvent

客户端

  • 描述

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

  • 参数

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

ChunkLoadedServerEvent

服务端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    dimensionint区块所在维度
    chunkPosXint区块的x坐标,对应方块X坐标区间为[x * 16, x * 16 + 15]
    chunkPosZint区块的z坐标,对应方块Z坐标区间为[z * 16, z * 16 + 15]
    blockEntitieslist(dict)随区块加载而加载进世界的自定义方块实体的坐标的列表,列表元素dict包含posX,posY,posZ三个int表示自定义方块实体的坐标,blockName表示方块的identifier,包含命名空间及名称
  • 返回值

  • 备注

    • 注意:服务端的自定义方块实体加载完成时对应的客户端的自定义方块实体并没有初始化完成,无法使用该事件对客户端的自定义方块实体进行相关操作。

ClientLoadAddonsFinishServerEvent

服务端

  • 描述

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

  • 参数

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

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

CommandEvent

服务端

  • 描述

    玩家请求执行指令时触发

  • 参数

    参数名
    数据类型
    说明
    entityIdstr玩家ID
    commandstr指令字符串
    cancelbool是否取消
  • 返回值

  • 备注

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

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

CustomCommandTriggerServerEvent

服务端

  • 描述

    自定义命令触发事件

  • 参数

    参数名
    数据类型
    说明
    commandstr自定义命令名称,对应json中的name字段
    argslist(dict)自定义命令参数,详情见下方
    variantint表示是哪条变体,范围[0, 9],对应json中args键中的数字,未配置变体则为0
    origindict触发源的信息,详情见下方
    return_failedbool设置自定义命令是否执行失败,默认为False,如果执行失败,返回信息以红色字体显示
    return_msg_keystr设置返回给玩家或命令方块的信息,也支持通过语言文件(.lang)定义,默认值为commands.custom.success(自定义命令执行成功)
  • 返回值

  • 备注

    • origin参数说明如下

      类型解释
      entityIdstr触发指令的实体id,若由命令方块触发,则不会含有此字段
      dimensionint指令触发的维度id,0-主世界; 1-下界; 2-末地; 或其他自定义维度
      blockPostuple触发指令的实体或命令方块的整数坐标
    • 自定义命令参数中的dict说明如下

      类型解释
      namestr参数名称,对应json中的name字段
      typestr参数类型,对应json中的type字段
      valueany参数的值,若玩家没传,则采用json中填写的default的值,但会转为python变量格式。如null转为None,array转为tuple
    • 对于玩家传入的参数,type不同则对应的value也不同,type对应value的类型和具体数据格式如下

      typevalue类型解释
      intint整数,如114
      floatfloat浮点数,如5.14
      boolbool布尔值,如True
      strstr字符串,如'niganma'
      enumstr开发者在json中指定的某个字符串
      enum_shortstr开发者在json中指定的某个字符串
      blockstr方块的identifier,如'minecraft:grass'
      itemdict含有物品名称,如
      postuple含有三个float的坐标,如(-0.93, 81.25, -5.67)
      targettuple含有对应的所有目标entityId,如('-139816907912', '-263852559602')
      entitydict含有实体名称,如
      effectdict含有状态效果名称和对应的EffectType枚举,如{'name': 'absorption', 'id': 22}
      dimensiondict含有维度名称和对应数字id,如{'name': 'nether', 'id': 1}
      biomedict含有生物群系名称和对应的BiomeType枚举,如{'name': 'bamboo_jungle', 'biomeType': 48}
      structuredict含有结构名称和对应的StructureFeatureType枚举,如{'name': 'ancient_city', 'structureType': 15}
      enchantdict含有附魔名称和对应的EnchantType枚举,如{'identifier': 'knockback', 'type': 12}

DelServerPlayerEvent

服务端

  • 描述

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

  • 参数

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

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

EntityRemoveEvent

服务端

  • 描述

    实体被删除时触发

  • 参数

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

  • 备注

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

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

ExplosionServerEvent

服务端

  • 描述

    当发生爆炸时触发。

  • 参数

    参数名
    数据类型
    说明
    blockslist[[x,y,z,cancel],...]爆炸导致的被破坏方块坐标(x,y,z),cancel是一个bool值
    victimslist/None受伤实体id列表,当该爆炸创建者id为None时,victims也为None
    sourceIdstr/None爆炸创建者id
    explodePoslist爆炸位置[x,y,z]
    dimensionIdint维度id
  • 返回值

  • 备注

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

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

GameRenderTickEvent

客户端

  • 描述

    客户端渲染帧开始时触发该事件,一秒触发次数为当前的帧数

  • 参数

  • 返回值

GlobalCommandServerEvent

服务端

  • 描述

    服务端全局命令事件,包括聊天栏发送、SetCommand接口、命令方块(矿车)、行为包动画执行命令

  • 参数

    参数名
    数据类型
    说明
    entityIdstr执行命令的实体id, 如果没有此键,则是命令方块执行的命令
    commandstr将要被执行的命令
    blockPostuple(int,int,int)执行命令的实体或方块的方块坐标
    dimensionint执行命令的实体或方块所在维度id
    cancelbool设置为True可以取消命令执行
  • 返回值

  • 备注

    • 有实体的事件参数例子:
      python
      {
          'cancel' : False,
          'entityId' : '-8589934591',
          'command' : '/kill @e',
          'dimension' : 0,
          'blockPos' : (227,66,569)
      }
    • 命令方块(无实体)的事件参数例子:
      python
      {
          'cancel' : False,
          'command' : '/say I am a command_block',
          'dimension' : 0,
          'blockPos' : (226,64,579)
      }

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

LoadClientAddonScriptsAfter

客户端

  • 描述

    客户端加载mod完成事件

  • 参数

  • 返回值

LoadServerAddonScriptsAfter

服务端

  • 描述

    服务器加载完mod时触发

  • 参数

  • 返回值

NewOnEntityAreaEvent

服务端

  • 描述

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

  • 参数

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

  • 备注

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

python
# 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

  • 描述

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

  • 参数

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

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

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

python
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

  • 描述

    反注册感应区域

  • 参数

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

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

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

OnCommandOutputClientEvent

客户端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    commandstr命令名称
    messagestr命令返回的消息
  • 返回值

  • 备注

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

OnCommandOutputServerEvent

服务端

  • 描述

    Command命令执行成功事件

  • 参数

    参数名
    数据类型
    说明
    commandstr命令名称
    messagestr命令返回的消息
  • 返回值

  • 备注

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

OnContainerFillLoottableServerEvent

服务端

  • 描述

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

  • 参数

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

  • 备注

    • 只有当dirty为True时才会重新读取item列表并生成对应的掉落物,如果不需要修改掉落结果的话请勿随意修改dirty值
    • 可疑的沙子也具有奖励箱性质,使用刷子刷可疑的沙子也会触发该事件

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

OnLightningLevelChangeServerEvent

服务端

  • 描述

    打雷强度发生改变

  • 参数

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

OnLocalLightningLevelChangeServerEvent

服务端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    oldLevelfloat改变前的打雷强度
    newLevelfloat改变后的打雷强度
    dimensionIdint独立天气维度id
  • 返回值

OnLocalPlayerStopLoading

客户端

  • 描述

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

  • 参数

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

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

OnLocalRainLevelChangeServerEvent

服务端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    oldLevelfloat改变前的下雨强度
    newLevelfloat改变后的下雨强度
    dimensionIdint独立天气维度id
  • 返回值

OnRainLevelChangeServerEvent

服务端

  • 描述

    下雨强度发生改变

  • 参数

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

OnScriptTickClient

客户端

  • 描述

    客户端tick事件,1秒30次

  • 参数

  • 返回值

OnScriptTickServer

服务端

  • 描述

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

  • 参数

  • 返回值

PlaceNeteaseLargeFeatureServerEvent

服务端

  • 描述

    触发时机:网易版大型结构即将生成时服务端抛出该事件。

  • 参数

    参数名
    数据类型
    说明
    dimensionIdint维度id
    postuple中心结构放置坐标(x, z)
    rotint中心结构顺时针旋转角度
    depthint大型结构递归深度
    centerPoolstr中心池的identifier
    ignoreFitInContextbool是否允许生成过结构的地方是否可以继续生成结构
    cancelbool设置为True时可阻止该大型结构的放置
  • 返回值

  • 备注

    • 1.使用PlaceNeteaseLargeFeature接口触发此事件时,可正常调用其他Mod SDK接口 2.使用自定义大型特征功能,配置Json的方式触发此事件时,调用其他Mod SDK接口将无法生效,强烈建议仅用于设置结构放置与否

PlaceNeteaseStructureFeatureEvent

服务端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    structureNamestr结构名称,可修改
    xint结构坐标最小方块所在的x坐标
    yint结构坐标最小方块所在的y坐标
    zint结构坐标最小方块所在的z坐标
    biomeTypeint该feature所放置区块的生物群系类型
    biomeNamestr该feature所放置区块的生物群系名称
    dimensionIdint维度id
    cancelbool设置为True时可阻止该结构的放置
  • 返回值

  • 备注

    • 需要配合AddNeteaseFeatureWhiteList接口一同使用 若在本监听事件中调用其他mod SDK接口将无法生效,强烈建议本事件仅用于设置结构放置与否 该事件只会在网易版结构放置时抛出 structureName参数修改为不存在结构或者原生结构时,开发包会出现断言。

相关接口

AddNeteaseFeatureWhiteList

method in mod.server.component.featureCompServer.FeatureCompServer

  • 描述

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

  • 参数

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

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

python
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事件的脚本层监听

  • 参数

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

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

python
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是否清空成功
  • 示例

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

PlayerIntendLeaveServerEvent

服务端

  • 描述

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

  • 参数

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

  • 备注

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

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

PlayerJoinMessageEvent

服务端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    idstr玩家实体id
    namestr玩家昵称
    cancelbool是否显示提示文字,允许修改。True:不显示提示
    messagestr玩家加入游戏的提示文字,允许修改
  • 返回值

  • 备注

    • 对于联机类游戏(如联机大厅、网络游戏等),请勿在此事件的回调函数中使用SetFootPos接口修改玩家的位置,否则可能会因为触发服务端反作弊机制而传送失败。如需要在进入游戏时使用SetFootPos接口,建议监听AddServerPlayerEvent并设置位置。

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

PlayerLeftMessageServerEvent

服务端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    idstr玩家实体id
    namestr玩家昵称
    cancelbool是否显示提示文字,允许修改。True:不显示提示
    messagestr玩家离开游戏的提示文字,允许修改
  • 返回值

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

PrimaryClientSyncSkinClientEvent

客户端

  • 描述

    主客户端自己更换了皮肤触发

  • 参数

  • 返回值

RemoveEntityClientEvent

客户端

  • 描述

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

  • 参数

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

  • 备注

    • 客户端接收到了服务端监测实体离开玩家视野时触发,原事件名 RemoveEntityPacketEvent

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

RemovePlayerAOIClientEvent

客户端

  • 描述

    玩家离开当前玩家视野时触发的事件

  • 参数

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

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

ServerChatEvent

服务端

  • 描述

    玩家发送聊天信息时触发

  • 参数

    参数名
    数据类型
    说明
    usernamestr玩家名称
    playerIdstr玩家id
    messagestr玩家发送的聊天消息内容
    cancelbool是否取消这个聊天事件,若取消可以设置为True
    bChatByIdbool是否把聊天消息发送给指定在线玩家,而不是广播给所有在线玩家,若只发送某些玩家可以设置为True
    bForbidbool是否禁言,仅apollo可用。true:被禁言,玩家聊天会提示“你已被管理员禁言”。
    toPlayerIdslist(str)接收聊天消息的玩家id列表,bChatById为True时生效
    gameChatPrefixstr设置当前玩家在网易聊天界面中的前缀,字数限制4,从字符串头部开始取。前缀文本输入非字符串格式时会被置为空。若cancel为True,会取消掉本次的前缀修改
    gameChatPrefixColorRfloat设置当前玩家在网易聊天界面中前缀颜色rgb的r值,范围为[0,1]。颜色数值输入其他格式时会被置为0。若cancel为True,会取消掉本次的颜色修改
    gameChatPrefixColorGfloat设置当前玩家在网易聊天界面中前缀颜色rgb的g值,范围为[0,1]。颜色数值输入其他格式时会被置为0。若cancel为True,会取消掉本次的颜色修改
    gameChatPrefixColorBfloat设置当前玩家在网易聊天界面中前缀颜色rgb的b值,范围为[0,1]。颜色数值输入其他格式时会被置为0。若cancel为True,会取消掉本次的颜色修改
  • 返回值

  • 示例

python
# 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"
    args["gameChatPrefix"] = "史蒂夫1号" # 最终显示前缀:史蒂夫1
    args["gameChatPrefixColorR"] = 1.0
    args["gameChatPrefixColorG"] = 0.0
    args["gameChatPrefixColorB"] = 0.0 # 最终前缀底板颜色rgb:(1.0, 0.0, 0.0) 红色
    logger.info("ServerChatEvent %s" % args)

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

ServerPostBlockPatternEvent

服务端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    entityIdstr生成生物的id
    entityGeneratedstr生成生物的名字,如"minecraft:pig"
    xint方块x坐标
    yint方块y坐标
    zint方块z坐标
    dimensionIdint维度id
  • 返回值

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

ServerPreBlockPatternEvent

服务端

  • 描述

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

  • 参数

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

ServerSpawnMobEvent

服务端

  • 描述

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

  • 参数

    参数名
    数据类型
    说明
    entityIdstr实体id
    identifierstr生成实体的命名空间
    typeint生成实体的类型,参考EntityType
    babybool生成怪物是否是幼年怪
    xfloat生成实体坐标x
    yfloat生成实体坐标y
    zfloat生成实体坐标z
    dimensionIdint生成实体的维度,默认值为0(0为主世界,1为地狱,2为末地)
    realIdentifierstr生成实体的命名空间,通过MOD API生成的生物在这个参数也能获取到真正的命名空间,而不是以custom开头的
    cancelbool是否取消生成该实体
  • 返回值

  • 备注

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

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

UnLoadClientAddonScriptsBefore

客户端

  • 描述

    客户端卸载mod之前触发

  • 参数

  • 返回值