# 服务端事件

服务端引擎定义的事件如下

# 方块

# BlockNeighborChangedServerEvent

  • 描述

    触发时机:自定义方块周围的方块发生变化时,需要配置netease:neighborchanged_sendto_script,详情请查阅《自定义农作物》文档

  • 参数

    参数名 数据类型 说明
    dimensionId int 维度
    posX int 方块x坐标
    posY int 方块y坐标
    posZ int 方块z坐标
    blockName str 方块的identifier,包含命名空间及名称
    auxValue int 方块附加值
    neighborPosX int 变化方块x坐标
    neighborPosY int 变化方块y坐标
    neighborPosZ int 变化方块z坐标
    fromBlockName str 方块变化前的identifier,包含命名空间及名称
    fromAuxValue int 方块变化前附加值
    toBlockName str 方块变化后的identifier,包含命名空间及名称
    toAuxValue int 方块变化后附加值
  • 返回值

# BlockRandomTickServerEvent

  • 描述

    触发时机:自定义方块随机tick

  • 参数

    参数名 数据类型 说明
    posX int 方块x坐标
    posY int 方块y坐标
    posZ int 方块z坐标
    blockName str 方块名称
    fullName str 方块的identifier,包含命名空间及名称
    auxValue int 方块附加值
    dimensionId int 实体维度
  • 返回值

# BlockStrengthChangedServerEvent

  • 描述

    触发时机:自定义机械元件方块红石信号量发生变化时触发

  • 参数

    参数名 数据类型 说明
    posX int 方块x坐标
    posY int 方块y坐标
    posZ int 方块z坐标
    blockName str 方块的identifier,包含命名空间及名称
    auxValue int 方块附加值
    newStrength int 变化后的红石信号量
    dimensionId int 维度
  • 返回值

# ChestBlockTryPairWithServerEvent

  • 描述

    触发时机:两个并排的小箱子方块准备组合为一个大箱子方块时

  • 参数

    参数名 数据类型 说明
    cancel bool 是否允许触发,默认为False,若设为True,可阻止小箱子组合成为一个大箱子
    blockX int 小箱子方块x坐标
    blockY int 小箱子方块y坐标
    blockZ int 小箱子方块z坐标
    otherBlockX int 将要与之组合的另外一个小箱子方块x坐标
    otherBlockY int 将要与之组合的另外一个小箱子方块y坐标
    otherBlockZ int 将要与之组合的另外一个小箱子方块z坐标
    dimensionId int 维度id
  • 返回值

# DestroyBlockEvent

  • 描述

    触发时机:当方块已经被玩家破坏时触发该事件。

  • 参数

    参数名 数据类型 说明
    x int 方块x坐标
    y int 方块y坐标
    z int 方块z坐标
    face int 方块被敲击的面向id,参考Facing
    fullName str 方块的identifier,包含命名空间及名称
    auxData int 方块附加值
    playerId str 破坏方块的玩家ID
    dimensionId int 维度id
  • 返回值

  • 备注

    • 这是在生存模式或创造模式下都会触发,而且是对于任何方块

# EntityPlaceBlockAfterServerEvent

  • 描述

    触发时机:当生物成功放置方块后触发

  • 参数

    参数名 数据类型 说明
    x int 方块x坐标
    y int 方块y坐标
    z int 方块z坐标
    fullName str 方块的identifier,包含命名空间及名称
    auxData int 方块附加值
    entityId str 试图放置方块的生物ID
    dimensionId int 维度id
    face int 点击方块的面,参考Facing
  • 返回值

  • 备注

    • 部分放置后会产生实体的方块、可操作的方块、带有特殊逻辑的方块,不会触发该事件,包括但不限于床、门、告示牌、花盆、红石中继器、船、炼药锅、头部模型、蛋糕、酿造台、盔甲架等。

# HopperTryPullInServerEvent

  • 描述

    触发时机:漏斗放在容器下方,放置成功时触发事件

  • 参数

    参数名 数据类型 说明
    x int 漏斗位置x
    y int 漏斗位置y
    z int 漏斗位置z
    abovePosX int 交互的容器位置x
    abovePosY int 交互的容器位置y
    abovePosZ int 交互的容器位置z
    dimensionId int 维度id
    canHopper int 是否允许容器往漏斗加东西(要关闭此交互,需先监听此事件再放置容器)
  • 返回值

# HopperTryPullOutServerEvent

  • 描述

    触发时机:漏斗放在容器旁边,放置成功时触发事件

  • 参数

    参数名 数据类型 说明
    x int 漏斗位置x
    y int 漏斗位置y
    z int 漏斗位置z
    attachedPosX int 交互的容器位置x
    attachedPosY int 交互的容器位置y
    attachedPosZ int 交互的容器位置z
    dimensionId int 维度id
    canHopper int 是否允许漏斗往容器加东西(要关闭此交互,需先监听此事件再放置容器)
  • 返回值

# PistonActionServerEvent

  • 描述

    触发时机:活塞或者粘性活塞推送/缩回影响附近方块时

  • 参数

    参数名 数据类型 说明
    cancel bool 是否允许触发,默认为False,若设为True,可阻止触发后续的事件
    action str 推送时=expanding;缩回时=retracting
    pistonFacing int 活塞的朝向,参考Facing
    pistonMoveFacing int 活塞的运动方向,参考Facing
    dimensionId int 活塞方块所在的维度
    pistonX int 活塞方块的x坐标
    pistonY int 活塞方块的y坐标
    pistonZ int 活塞方块的z坐标
    blockList list[(x,y,z),...] 活塞运动影响到产生被移动效果的方块坐标(x,y,z),均为int类型
    breakBlockList list[(x,y,z),...] 活塞运动影响到产生被破坏效果的方块坐标(x,y,z),均为int类型
    entityList list[string,...] 活塞运动影响到产生被移动或被破坏效果的实体的ID列表
  • 返回值

# ServerBlockEntityTickEvent

  • 描述

    触发时机:自定义方块配置了netease:block_entity组件并设tick为true,玩家进入该方块的tick范围时触发

  • 参数

    参数名 数据类型 说明
    blockName str 该方块名称
    dimension int 该方块所在的维度
    posX int 该方块的x坐标
    posY int 该方块的y坐标
    posZ int 该方块的z坐标
  • 返回值

  • 备注

    • 方块实体的tick事件频率为每秒钟20次
    • 触发本事件时,若正在退出游戏,将无法获取到抛出本事件的方块实体数据(GetBlockEntityData函数返回None),也无法对其进行操作

# ServerBlockUseEvent

  • 描述

    触发时机:玩家右键点击新版自定义方块(或者通过接口AddBlockItemListenForUseEvent增加监听的MC原生游戏方块)时服务端抛出该事件(该事件tick执行,需要注意效率问题)。

  • 参数

    参数名 数据类型 说明
    playerId str 玩家Id
    blockName str 方块的identifier,包含命名空间及名称
    aux int 方块附加值
    cancel bool 设置为True可拦截与方块交互的逻辑。
    x int 方块x坐标
    y int 方块y坐标
    z int 方块z坐标
    dimensionId int 维度id
  • 返回值

  • 备注

    • 当对原生方块进行使用时,如堆肥桶等类似有 使用 功能的方块使用物品时,会触发该事件,而ServerItemUseOnEvent则不会被触发。当需要获取触发时使用的物品时,可以通过item组件获取手上有的物品。对应的客户端事件同理。 @comment 有的方块是在ServerBlockUseEvent中设置cancel生效,但是有部分方块是在ClientBlockUseEvent中设置cancel才生效,如有需求建议在两个事件中同时设置cancel以保证生效。

# ServerEntityTryPlaceBlockEvent

  • 描述

    触发时机:当生物试图放置方块时触发该事件。

  • 参数

    参数名 数据类型 说明
    x int 方块x坐标
    y int 方块y坐标
    z int 方块z坐标
    fullName str 方块的identifier,包含命名空间及名称
    auxData int 方块附加值
    entityId str 试图放置方块的生物ID
    dimensionId int 维度id
    face int 点击方块的面,参考Facing
    cancel bool 默认为False,在脚本层设置为True就能取消该方块的放置
  • 返回值

  • 备注

    • 部分放置后会产生实体的方块、可操作的方块、带有特殊逻辑的方块,不会触发该事件,包括但不限于床、门、告示牌、花盆、红石中继器、船、炼药锅、头部模型、蛋糕、酿造台、盔甲架等。

# ServerExplosionBlockEvent

  • 描述

    游戏内爆炸发生时方块爆炸事件

  • 参数

    参数名 数据类型 说明
    entityId str 爆炸源头的生物唯一ID,找不到是可能为-1
    data list[(x,y,z,cancel),...] 爆炸涉及到的方块坐标(x,y,z),cancel是一个bool值
  • 返回值

  • 备注

    • 通过设置这个cancel的bool值为True可以将该方块的爆炸取消,例如(x,y,z,True)

# ServerPlaceBlockEntityEvent

  • 描述

    触发时机:手动放置或通过接口创建含自定义方块实体的方块时触发,此时可向该方块实体中存放数据

  • 参数

    参数名 数据类型 说明
    blockName str 该方块名称
    dimension int 该方块所在的维度
    posX int 该方块的x坐标
    posY int 该方块的y坐标
    posZ int 该方块的z坐标
  • 返回值

# ServerPlayerTryDestroyBlockEvent

  • 描述

    当玩家即将破坏方块时,服务端线程触发该事件。

  • 参数

    参数名 数据类型 说明
    x int 方块x坐标
    y int 方块y坐标
    z int 方块z坐标
    face int 方块被敲击的面向id,参考Facing
    fullName str 方块的identifier,包含命名空间及名称
    auxData int 方块附加值
    playerId str 试图破坏方块的玩家ID
    dimensionId int 维度id
    cancel bool 默认为False,在脚本层设置为True就能取消该方块的破坏
    spawnResources bool 是否生成掉落物,默认为True,在脚本层设置为False就能取消生成掉落物
  • 返回值

  • 备注

    • 若需要禁止某些特殊方块的破坏,需要配合PlayerTryDestroyBlockClientEvent一起使用,例如床,旗帜,箱子这些根据方块实体数据进行渲染的方块

# 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"
  • 返回值

# StepOnBlockServerEvent

  • 描述

    触发时机:生物脚踩压力板、踩红石矿、踩拌线钩。

  • 参数

    参数名 数据类型 说明
    cancel bool 是否允许触发,默认为False,若设为True,可阻止触发后续物理交互事件
    blockX int 方块x坐标
    blockY int 方块y坐标
    blockZ int 方块z坐标
    entityId str 触发的entity的唯一ID
    blockName str 方块的identifier,包含命名空间及名称
    dimensionId int 维度id
  • 返回值

# 抛射物

# ProjectileCritHitEvent

  • 描述

    触发时机:当抛射物与头部碰撞时触发该事件。注:需调用OpenPlayerCritBox开启玩家暴头后才能触发。

  • 参数

    参数名 数据类型 说明
    id str 子弹id
    targetId str 碰撞目标id
  • 返回值

# ProjectileDoHitEffectEvent

  • 描述

    触发时机:当抛射物碰撞时触发该事件

  • 参数

    参数名 数据类型 说明
    id str 子弹id
    hitTargetType str 碰撞目标类型,'ENTITY'或是'BLOCK'
    targetId str 碰撞目标id
    hitFace int 撞击在方块上的面id,参考Facing
    x float 碰撞x坐标
    y float 碰撞y坐标
    z float 碰撞z坐标
    blockPosX int 碰撞是方块时,方块x坐标
    blockPosY int 碰撞是方块时,方块y坐标
    blockPosZ int 碰撞是方块时,方块z坐标
    srcId str 创建者id
  • 返回值

# SpawnProjectileServerEvent

  • 描述

    触发时机:抛射物生成时触发

  • 参数

    参数名 数据类型 说明
    projectileId str 抛射物的实体id
    projectileIdentifier str 抛射物的identifier
    spawnerId str 发射者的实体id,没有发射者时为-1
  • 返回值

  • 备注

    • 该事件里无法获取弹射物实体的auxvalue。如有需要可以延迟一帧获取,或者在ProjectileDoHitEffectEvent获取

# 世界

# ChunkAcquireDiscardedServerEvent

  • 描述

    触发时机:通过AddChunkPosWhiteList接口添加监听的服务端区块即将被卸载时

  • 参数

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

# ChunkGeneratedServerEvent

  • 描述

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

  • 参数

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

# ChunkLoadedServerEvent

  • 描述

    触发时机:通过AddChunkPosWhiteList接口添加监听的服务端区块加载完成时

  • 参数

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

# 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,比如爬行者所造成的爆炸。

# GameTypeChangedServerEvent

  • 描述

    个人游戏模式发生变化时服务端触发。

  • 参数

    参数名 数据类型 说明
    playerId str 玩家Id,SetDefaultGameType接口改变游戏模式时该参数为空字符串
    oldGameType int 切换前的游戏模式
    newGameType int 切换后的游戏模式
  • 返回值

  • 备注

    • 游戏模式:GetMinecraftEnum().GameType.*:Survival,Creative,Adventure分别为0~2 默认游戏模式发生变化时最后反映在个人游戏模式之上。

# LoadServerAddonScriptsAfter

  • 描述

    服务器加载完mod时触发

  • 参数

  • 返回值

# OnCommandOutputServerEvent

  • 描述

    Command命令执行成功事件

  • 参数

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

  • 备注

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

# 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接口将无法生效,强烈建议本事件仅用于设置结构放置与否

# 实体

# ActorHurtServerEvent

  • 描述

    触发时机:生物(包括玩家)受伤时触发

  • 参数

    参数名 数据类型 说明
    entityId str 生物Id
    cause str 伤害来源,详见Minecraft枚举值文档的ActorDamageCause
    damage int 伤害值
    absorbedDamage int 吸收的伤害值(原始伤害减去damage)
  • 返回值

# ActuallyHurtServerEvent

  • 描述

    实体实际受到伤害时触发,相比于DamageEvent,该伤害为经过护甲及buff计算后,实际的扣血量

  • 参数

    参数名 数据类型 说明
    srcId str 伤害源id
    projectileId str 投射物id
    entityId str 被伤害id
    damage int 伤害值,允许修改,设置为0则此次造成的伤害为0
    cause str 伤害来源,详见Minecraft枚举值文档的ActorDamageCause
  • 返回值

# AddEffectServerEvent

  • 描述

    触发时机:实体获得状态效果时

  • 参数

    参数名 数据类型 说明
    entityId str 实体id
    effectName str 实体获得状态效果的名字
    effectDuration int 状态效果的持续时间,单位秒
    effectAmplifier int 状态效果的放大倍数
    damage int 状态造成的伤害值,如药水
  • 返回值

# AddEntityServerEvent

  • 描述

    actor实体增加,事件触发,对应客户端AddEntityEvent

  • 参数

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

# AttackAnimBeginServerEvent

  • 描述

    当攻击动作开始时触发

  • 参数

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

  • 备注

    • 在modelComp替换骨骼动画后,该事件才生效

# AttackAnimEndServerEvent

  • 描述

    当攻击动作结束时触发

  • 参数

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

  • 备注

    • 在modelComp替换骨骼动画后,该事件才生效

# BlockRemoveServerEvent

  • 描述

    触发时机:监听该事件的方块在销毁时触发,可以通过ListenOnBlockRemoveEvent方法进行监听,或者通过json组件netease:listen_block_remove进行配置

  • 参数

    参数名 数据类型 说明
    x int 方块位置x
    y int 方块位置y
    z int 方块位置z
    fullName str 方块的identifier,包含命名空间及名称
    auxValue int 方块的附加值
    dimension int 该方块所在的维度
  • 返回值

# ChangeSwimStateServerEvent

  • 描述

    触发时机:实体开始或者结束游泳时

  • 参数

    参数名 数据类型 说明
    entityId str 实体的唯一ID
    formState bool 事件触发前,实体是否在游泳状态
    toState bool 事件触发后,实体是否在游泳状态
  • 返回值

  • 备注

    • 当实体的状态没有变化时,不会触发此事件,即formState和toState必定一真一假

# EntityChangeDimensionServerEvent

  • 描述

    实体维度改变时服务端抛出

  • 参数

    参数名 数据类型 说明
    entityId str 实体id
    fromDimensionId int 维度改变前的维度
    toDimensionId int 维度改变后的维度
    fromX float 改变前的位置x
    fromY float 改变前的位置Y
    fromZ float 改变前的位置Z
    toX float 改变后的位置x
    toY float 改变后的位置Y
    toZ float 改变后的位置Z
  • 返回值

  • 备注

    • 实体转移维度时,如果对应维度的对应位置的区块尚未加载,实体会缓存在维度自身的缓冲区中,直到对应区块被加载时才会创建对应的实体,此事件的抛出只代表实体从原维度消失,不代表必定会在对应维度出现

# EntityEffectDamageServerEvent

  • 描述

    生物受到状态伤害/回复事件。

  • 参数

    参数名 数据类型 说明
    entityId str 实体id
    damage int 伤害值(负数表示生命回复)
    attributeBuffType int 状态类型,参考AttributeBuffType
    duration float 状态持续时间,单位秒(s)
    lifeTimer float 状态生命时间,单位秒(s)
    isInstantaneous bool 是否为立即生效状态
  • 返回值

# EntityLoadScriptEvent

  • 描述

    数据库加载实体自定义数据时触发

  • 参数

    参数名 数据类型 说明
    args list 该事件的参数为长度为2的list,而非dict,其中list的第一个元素为实体id
  • 返回值

  • 备注

    • 只有使用过extraData组件的实体才有此事件,触发时可以通过extraData组件获取该实体的自定义数据

# EntityRemoveEvent

  • 描述

    实体被删除时触发

  • 参数

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

  • 备注

    • 触发情景:生物死亡,生物所在区块卸载,玩家退出游戏
    • 区块卸载:游戏只会加载玩家周围的区块,玩家移动到别的区域时,原来所在区域的区块会被卸载,参考区块介绍
    • 玩家退出游戏时,PlayerLeftEvent,EntityRemoveEvent,DelServerPlayerEvent按顺序依次触发

# EntityStartRidingEvent

  • 描述

    当实体骑乘上另一个实体时触发

  • 参数

    参数名 数据类型 说明
    id str 乘骑者实体id
    rideId str 被乘骑者实体id
  • 返回值

# EntityStopRidingEvent

  • 描述

    触发时机:当实体停止骑乘时

  • 参数

    参数名 数据类型 说明
    id str 实体id
    rideId str 坐骑id
    exitFromRider bool 是否下坐骑
    entityIsBeingDestroyed bool 坐骑是否将要销毁
    switchingRides bool 是否换乘坐骑
    cancel bool 设置为True可以取消(需要与客户端事件一同取消)
  • 返回值

  • 备注

    • 以下情况不允许取消
      1. ride组件StopEntityRiding接口
      2. 玩家传送时
      3. 坐骑死亡时
      4. 玩家睡觉时
      5. 玩家死亡时
      6. 未驯服的马
      7. 怕水的生物坐骑进入水里
      8. 切换维度

# EntityTickServerEvent

  • 描述

    实体tick时触发。该事件为20帧每秒。需要使用AddEntityTickEventWhiteList添加触发该事件的实体类型白名单。

  • 参数

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

# JumpAnimBeginServerEvent

  • 描述

    当跳跃动作开始时触发

  • 参数

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

  • 备注

    • 在modelComp替换骨骼动画后,该事件才生效

# MobDieEvent

  • 描述

    实体被玩家杀死时触发

  • 参数

    参数名 数据类型 说明
    id str 实体id
    attacker str 伤害来源id
  • 返回值

  • 备注

# OnEntityAreaEvent

  • 描述

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

  • 参数

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

  • 备注

    • 由于历史遗留原因,该事件的回调参数类型是str
  • 示例

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

# OnKnockBackServerEvent

  • 描述

    实体被击退时触发

  • 参数

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

# RefreshEffectServerEvent

  • 描述

    触发时机:实体身上状态效果更新时触发,更新条件1、新增状态等级较高,更新状态等级及时间;2、新增状态等级不变,时间较长,更新状态持续时间

  • 参数

    参数名 数据类型 说明
    entityId str 实体id
    effectName str 更新状态效果的名字
    effectDuration int 更新后状态效果剩余持续时间,单位秒
    effectAmplifier int 更新后的状态效果放大倍数
    damage int 状态造成的伤害值,如药水
  • 返回值

# RemoveEffectServerEvent

  • 描述

    触发时机:实体身上状态效果被移除时

  • 参数

    参数名 数据类型 说明
    entityId str 实体id
    effectName str 被移除状态效果的名字
    effectDuration int 被移除状态效果的剩余持续时间,单位秒
    effectAmplifier int 被移除状态效果的放大倍数
  • 返回值

# StartRidingServerEvent

  • 描述

    触发时机:一个实体即将骑乘另外一个实体

  • 参数

    参数名 数据类型 说明
    cancel bool 是否允许触发,默认为False,若设为True,可阻止触发后续的实体交互事件
    actorId str 骑乘者的唯一ID
    victimId str 被骑乘实体的唯一ID
  • 返回值

# WalkAnimBeginServerEvent

  • 描述

    当走路动作开始时触发

  • 参数

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

  • 备注

    • 在modelComp替换骨骼动画后,该事件才生效

# WalkAnimEndServerEvent

  • 描述

    当走路动作结束时触发

  • 参数

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

  • 备注

    • 在modelComp替换骨骼动画后,该事件才生效

# WillAddEffectServerEvent

  • 描述

    触发时机:实体即将获得状态效果前

  • 参数

    参数名 数据类型 说明
    entityId str 实体id
    effectName str 实体获得状态效果的名字
    effectDuration int 状态效果的持续时间,单位秒
    effectAmplifier int 状态效果的放大倍数
    cancel bool 设置为True可以取消
    damage int 状态造成的伤害值,如药水
  • 返回值

# WillTeleportToServerEvent

  • 描述

    触发时机:一个实体即将传送/被传送前

  • 参数

    参数名 数据类型 说明
    cancel bool 是否允许触发,默认为False,若设为True,可阻止触发后续的传送
    entityId str 实体的唯一ID
    fromDimensionId int 传送前所在的维度
    toDimensionId int 传送后的目标维度,假如目标维度尚未在内存中创建(即服务器启动之后,到传送之前,没有玩家进入过这个维度
    fromX int 传送前所在的x坐标
    fromY int 传送前所在的y坐标
    fromZ int 传送前所在的z坐标
    toX int 传送目标地点的x坐标,假如目标维度尚未在内存中创建(即服务器启动之后,到传送之前,没有玩家进入过这个维度
    toY int 传送目标地点的y坐标,假如目标维度尚未在内存中创建(即服务器启动之后,到传送之前,没有玩家进入过这个维度
    toZ int 传送目标地点的z坐标,假如目标维度尚未在内存中创建(即服务器启动之后,到传送之前,没有玩家进入过这个维度
    cause str 传送理由,详情见MinecraftEnum.EntityTeleportCause
  • 返回值

# 生物

# DamageEvent

  • 描述

    实体被攻击时触发

  • 参数

    参数名 数据类型 说明
    srcId str 伤害源id
    projectileId str 投射物id
    entityId str 被伤害id
    damage int 伤害值,允许修改,设置为0则此次造成的伤害为0
    absorption int 伤害吸收生命值,详见Minecraft枚举值文档的ABSORPTION
    cause str 伤害来源,详见Minecraft枚举值文档的ActorDamageCause
    knock bool 是否击退被攻击者,允许修改,设置该值为False则不产生击退
    ignite bool 是否点燃被伤害者,允许修改,设置该值为True产生点燃效果,反之亦然
  • 返回值

  • 备注

    • damage值会被护甲和absorption等吸收,不一定是最终扣血量。通过设置这个伤害值可以取消伤害,但不会取消由击退效果或者点燃效果带来的伤害
    • 当目标无法被击退时,knock值无效

# EntityDefinitionsEventServerEvent

  • 描述

    触发时机:生物定义json文件中设置的event触发时同时触发。生物行为变更事件

  • 参数

    参数名 数据类型 说明
    entityId str 生物id
    eventName str 触发的事件名称
  • 返回值

# MobGriefingBlockServerEvent

  • 描述

    环境生物改变方块时触发,触发的时机与mobgriefing游戏规则影响的行为相同

  • 参数

    参数名 数据类型 说明
    cancel bool 是否允许触发,默认为False,若设为True,可阻止触发后续物理交互事件
    blockX int 方块x坐标
    blockY int 方块y坐标
    blockZ int 方块z坐标
    entityId str 触发的entity的唯一ID
    blockName str 方块的identifier,包含命名空间及名称
    dimensionId int 维度id
  • 返回值

  • 备注

    • 触发的时机包括:生物踩踏耕地、破坏单个方块、破门、火矢点燃方块、凋灵boss破坏方块、末影龙破坏方块、末影人捡起方块、蠹虫破坏被虫蚀的方块、蠹虫把方块变成被虫蚀的方块、凋零杀死生物生成凋零玫瑰、生物踩坏海龟蛋。

# OnFireHurtEvent

  • 描述

    生物受到火焰伤害时触发

  • 参数

    参数名 数据类型 说明
    victim str 受伤实体id
    src str 火焰创建者id
    fireTime float 着火时间,单位秒
    cancel bool 是否取消此处火焰伤害
  • 返回值

# ServerSpawnMobEvent

  • 描述

    游戏内自动生成怪物时触发

  • 参数

    参数名 数据类型 说明
    identifier str 生成实体的命名空间
    type int 生成实体的类型,参考EntityType
    baby bool 生成怪物是否是幼年怪
    x float 生成实体坐标x
    y float 生成实体坐标y
    z float 生成实体坐标z
    dimensionId int 生成实体的维度,默认值为0(0为主世界,1为地狱,2为末地)
    cancel bool 是否生成该实体
  • 返回值

  • 备注

    • 该事件是游戏内自动生成怪物的Hook,阻止游戏内生成该生物只需要将cancel设置为True。如果通过MOD API生成,前缀为custom,内置逻辑生成的生物为minecraft前缀。

# 玩家

# AddExpEvent

  • 描述

    触发时机:当玩家增加经验时触发该事件。

  • 参数

    参数名 数据类型 说明
    id str 玩家id
    addExp int 增加的经验值
  • 返回值

# AddLevelEvent

  • 描述

    触发时机:当玩家升级时触发该事件。

  • 参数

    参数名 数据类型 说明
    id str 玩家id
    addLevel int 增加的等级值
    newLevel int 新的等级
  • 返回值

# AddServerPlayerEvent

  • 描述

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

  • 参数

    参数名 数据类型 说明
    id str 玩家id
    isTransfer bool 是否是切服时进入服务器,仅用于Apollo。如果是True,则表示切服时加入服务器,若是False,则表示登录进入网络游戏
    transferParam str 切服传入参数,仅用于Apollo。调用【TransferToOtherServer】或【TransferToOtherServerById】传入的切服参数
    uid int 玩家的netease uid,玩家的唯一标识,仅用于Apollo
  • 返回值

  • 备注

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

# ChangeLevelUpCostServerEvent

  • 描述

    触发时机:获取玩家下一个等级升级经验时,用于重载玩家的升级经验,每个等级在重置之前都只会触发一次

  • 参数

    参数名 数据类型 说明
    level int 玩家当前等级
    levelUpCostExp int 当前等级升级到下个等级需要的经验值,当设置为0时表示维持原版升级经验不变
    changed bool 设置为True,重载玩家升级经验才会生效
  • 返回值

# 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 玩家的netease uid,玩家的唯一标识
  • 返回值

  • 备注

    • 玩家离开游戏时,会在PlayerLeftEvent之后触发

# DimensionChangeFinishServerEvent

  • 描述

    玩家维度改变完成后服务端抛出

  • 参数

    参数名 数据类型 说明
    playerId str 玩家实体id
    fromDimensionId int 维度改变前的维度
    toDimensionId int 维度改变后的维度
    toPos tuple(float,float,float) 改变后的位置x,y,z,其中y值为脚底加上角色的身高值
  • 返回值

  • 备注

    • 当通过传送门从末地回到主世界时,toPos的y值为32767,其他情况一般会比设置值高1.62

# DimensionChangeServerEvent

  • 描述

    玩家维度改变时服务端抛出

  • 参数

    参数名 数据类型 说明
    playerId str 玩家实体id
    fromDimensionId int 维度改变前的维度
    toDimensionId int 维度改变后的维度
    fromX float 改变前的位置x
    fromY float 改变前的位置Y
    fromZ float 改变前的位置Z
    toX float 改变后的位置x
    toY float 改变后的位置Y
    toZ float 改变后的位置Z
  • 返回值

  • 备注

    • 当通过传送门从末地回到主世界时,toY值为32767,其他情况一般会比设置值高1.62

# ExtinguishFireServerEvent

  • 描述

    玩家扑灭火焰时触发。下雨,倒水等方式熄灭火焰不会触发。

  • 参数

    参数名 数据类型 说明
    pos tuple(float,float,float) 火焰方块的坐标
    playerId str 玩家id
    cancel bool 修改为True时,可阻止玩家扑灭火焰。需要与ExtinguishFireClientEvent一起修改。
  • 返回值

# OnCarriedNewItemChangedServerEvent

  • 描述

    触发时机:玩家切换主手物品时触发该事件

  • 参数

    参数名 数据类型 说明
    oldItemDict dict/None 旧物品信息字典,当旧物品为空时,此项属性为None
    newItemDict dict/None 新物品信息字典,当新物品为空时,此项属性为None
    playerId str 玩家 entityId
  • 返回值

# OnNewArmorExchangeServerEvent

  • 描述

    触发时机:玩家切换盔甲时触发该事件

  • 参数

    参数名 数据类型 说明
    slot int 槽位id
    oldArmorDict dict/None 旧装备信息字典,当旧物品为空时,此项属性为None
    newArmorDict dict/None 新装备信息字典,当新物品为空时,此项属性为None
    playerId str 玩家 entityId
  • 返回值

  • 备注

    • 当原有的装备槽内容为空时,oldArmorDict中的itemName为'minecraft:air',
      当脱下装备时,newArmorDict中的itemName为'minecraft:air'。clear命令不会触发该事件。
    • 当玩家登录时,每个盔甲槽位会触发两次该事件,第一次为air切换到身上的装备,第二次的old和new都为身上装备。如果槽位为空,则是触发两次从air到air的事件。

# OnOffhandItemChangedServerEvent

  • 描述

    触发时机:玩家切换副手物品时触发该事件

  • 参数

    参数名 数据类型 说明
    oldItemName str 旧物品 物品名称
    oldItemAuxValue int 旧物品 物品附加值
    oldItemModExtralId str 旧物品 物品自定义标识符
    oldItemDict dict/None 旧物品信息字典,当旧物品为空时,此项属性为None
    newItemName str 新物品 物品名称
    newItemAuxValue int 新物品 物品附加值
    newItemModExtralId str 新物品 物品自定义标识符
    newItemDict dict/None 新物品信息字典,当新物品为空时,此项属性为None
    playerId str 玩家 entityId
  • 返回值

  • 备注

    • 当原有的物品槽内容为空时,oldItemName值为'minecraft:air',且oldItem其余字段不存在
      当切换原有物品,且新物品为空时,参数值同理

# OnPlayerHitBlockServerEvent

  • 描述

    触发时机:通过OpenPlayerHitBlockDetection打开方块碰撞检测后,当玩家碰撞到方块时触发该事件。监听玩家着地请使用客户端的OnGroundClientEvent。客户端和服务端分别作碰撞检测,可能两个事件返回的略有差异。

  • 参数

    参数名 数据类型 说明
    playerId str 碰撞到方块的玩家Id
    posX int 碰撞方块x坐标
    posY int 碰撞方块y坐标
    posZ int 碰撞方块z坐标
    blockId str 碰撞方块的identifier
    auxValue int 碰撞方块的附加值
    dimensionId int 维度id
  • 返回值

# OnPlayerHitMobServerEvent

  • 描述

    触发时机:通过OpenPlayerHitMobDetection打开生物碰撞检测后,当有生物与玩家碰撞时触发该事件。注:客户端和服务端分别作碰撞检测,可能两个事件返回的略有差异。

  • 参数

    参数名 数据类型 说明
    playerList list[str] 生物碰撞到的玩家id的list
  • 返回值

# PlayerAttackEntityEvent

  • 描述

    触发时机:当玩家攻击时触发该事件。

  • 参数

    参数名 数据类型 说明
    playerId str 玩家id
    victimId str 受击者id
    damage int 伤害值:引擎传过来的值是0 允许脚本层修改为其他数
    isValid int 脚本是否设置伤害值:1表示是;0 表示否
    cancel bool 是否取消该次攻击,默认不取消
    isKnockBack bool 是否支持击退效果,默认支持,当不支持时将屏蔽武器击退附魔效果
  • 返回值

# PlayerDieEvent

  • 描述

    触发时机:当玩家死亡时触发该事件。

  • 参数

    参数名 数据类型 说明
    id str 玩家id
    attacker str 伤害来源id
  • 返回值

# PlayerEatFoodServerEvent

  • 描述

    触发时机:玩家吃下食物时触发

  • 参数

    参数名 数据类型 说明
    playerId str 玩家Id
    itemDict dict 食物物品的物品信息字典
  • 返回值

# PlayerHurtEvent

  • 描述

    触发时机:当玩家受伤害前触发该事件。

  • 参数

    参数名 数据类型 说明
    id str 受击玩家id
    attacker str 伤害来源实体id,若没有实体攻击,例如高空坠落,id为-1
  • 返回值

# PlayerInteractServerEvent

  • 描述

    触发时机:玩家即将和某个实体交互

  • 参数

    参数名 数据类型 说明
    cancel bool 是否允许触发,默认为False,若设为True,可阻止触发后续的实体交互事件
    playerId str 主动与实体互动的玩家的唯一ID
    itemDict dict 当前玩家手持物品的物品信息字典
    victimId str 被动的实体的唯一ID
  • 返回值

# PlayerJoinMessageEvent

  • 描述

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

  • 参数

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

# PlayerLeftMessageServerEvent

  • 描述

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

  • 参数

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

# PlayerRespawnEvent

  • 描述

    触发时机:玩家复活时触发该事件。

  • 参数

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

  • 备注

    • 该事件为玩家点击重生按钮时触发,但是触发时玩家可能尚未完成复活,此时请勿对玩家进行切维度或设置生命值等操作 一般情况下推荐使用PlayerRespawnFinishEvent

# PlayerRespawnFinishServerEvent

  • 描述

    触发时机:玩家复活完毕时触发

  • 参数

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

  • 备注

    • 该事件触发时玩家已重生完毕,可以安全使用切维度等操作

# PlayerTeleportEvent

  • 描述

    触发时机:当玩家传送时触发该事件,如:玩家使用末影珍珠或tp指令时。

  • 参数

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

# ServerChatEvent

  • 描述

    玩家发送聊天信息时触发

  • 参数

    参数名 数据类型 说明
    username str 玩家名称
    playerId str 玩家id
    message str 玩家发送的聊天消息内容
    cancel bool 是否取消这个聊天事件,若取消可以设置为True
    bChatById bool 是否把聊天消息发送给指定在线玩家,而不是广播给所有在线玩家,若只发送某些玩家可以设置为True
    bForbid bool 是否禁言。true:被禁言,玩家聊天会提示“你已被管理员禁言”。当前版本仅Apollo可用
    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)

# ServerPlayerGetExperienceOrbEvent

  • 描述

    触发时机:玩家获取经验球时触发的事件

  • 参数

    参数名 数据类型 说明
    playerId str 玩家id
    experienceValue int 经验球经验值
    cancel bool 是否取消(开发者传入)
  • 返回值

  • 备注

    • cancel值设为True时,捡起的经验球不会增加经验值,但是经验球一样会消失。

# StartDestroyBlockServerEvent

  • 描述

    玩家开始挖方块时触发。创造模式下不触发。

  • 参数

    参数名 数据类型 说明
    pos tuple(float,float,float) 方块的坐标
    blockName str 方块的identifier,包含命名空间及名称
    auxValue int 方块的附加值
    playerId str 玩家id
    dimensionId int 维度id
    cancel bool 修改为True时,可阻止玩家进入挖方块的状态。需要与StartDestroyBlockClientEvent一起修改。
  • 返回值

  • 备注

    • 如果是隔着火焰挖方块,即使将该事件cancel掉,火焰也会被扑灭。如果要阻止火焰扑灭,需要配合ExtinguishFireServerEvent使用

# StoreBuySuccServerEvent

  • 描述

    触发时机:玩家游戏内购买商品时服务端抛出的事件

  • 参数

    参数名 数据类型 说明
    playerId str 购买商品的玩家实体id
  • 返回值

  • 示例

import mod.server.extraServerApi as serverApi
self.ListenForEvent(serverApi.GetEngineNamespace(),serverApi.GetEngineSystemName(),
    "StoreBuySuccServerEvent",
    self, self.OnStoreBuySucc)
def OnStoreBuySucc(self, args):
    entityId = args['playerId']
    print 'Ship Item.EntityId:', playerId

# 物品

# ActorAcquiredItemServerEvent

  • 描述

    触发时机:玩家获得物品时服务端抛出的事件(有些获取物品方式只会触发客户端事件,有些获取物品方式只会触发服务端事件,在使用时注意一点。)

  • 参数

    参数名 数据类型 说明
    actor str 获得物品玩家实体id
    secondaryActor str 物品给予者玩家实体id,如果不存在给予者的话,这里为空字符串
    itemDict dict 获得的物品的物品信息字典
    acquireMethod int 获得物品的方法,详见ItemAcquisitionMethod
  • 返回值

# ActorUseItemServerEvent

  • 描述

    触发时机:玩家使用物品生效之前服务端抛出的事件(比较特殊不走该事件的例子:1)喝牛奶;2)染料对有水的炼药锅使用;3)盔甲架装备盔甲)

  • 参数

    参数名 数据类型 说明
    playerId str 玩家实体id
    itemDict dict 使用的物品的物品信息字典
    useMethod int 使用物品的方法,详见ItemUseMethodEnum
  • 返回值

# EntityDieLoottableServerEvent

  • 描述

    触发时机:生物死亡掉落物品时

  • 参数

    参数名 数据类型 说明
    dieEntityId str 死亡实体的entityId
    attacker str 伤害来源的entityId
    itemList list(dict) 掉落物品列表,每个元素为一个itemDict,格式可参考物品信息字典
    dirty bool 默认为False,如果需要修改掉落列表需将该值设为True
  • 返回值

  • 备注

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

# ItemReleaseUsingServerEvent

  • 描述

    触发时机:释放正在使用的物品时

  • 参数

    参数名 数据类型 说明
    playerId str 玩家id
    durationLeft float 蓄力剩余时间
    itemDict dict 使用的物品的物品信息字典
    maxUseDuration int 最大蓄力时长
    cancel bool 设置为True可以取消
  • 返回值

# ItemUseAfterServerEvent

  • 描述

    玩家在使用物品之后服务端抛出的事件。

  • 参数

    参数名 数据类型 说明
    entityId str 玩家实体id
    itemDict dict 使用的物品的物品信息字典
  • 返回值

  • 备注

    • 做出使用物品这个动作之后触发,一些需要蓄力的物品使用事件(ActorUseItemServerEvent)会在之后触发。如投掷三叉戟,先触发本事件,投出去之后再触发ActorUseItemServerEvent

# ItemUseOnAfterServerEvent

  • 描述

    玩家在对方块使用物品之后服务端抛出的事件。

  • 参数

    参数名 数据类型 说明
    entityId str 玩家实体id
    itemDict dict 使用的物品的物品信息字典
    x int 方块 x 坐标值
    y int 方块 y 坐标值
    z int 方块 z 坐标值
    face int 点击方块的面,参考Facing
    clickX float 点击点的x比例位置
    clickY float 点击点的y比例位置
    clickZ float 点击点的z比例位置
    blockName str 方块的identifier
    blockAuxValue int 方块的附加值
    dimensionId int 维度id
  • 返回值

  • 备注

    • 在ServerItemUseOnEvent和原版物品使用事件之后触发

# OnContainerFillLoottableServerEvent

  • 描述

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

  • 参数

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

  • 备注

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

# PlayerDropItemServerEvent

  • 描述

    触发时机:玩家丢弃物品时触发

  • 参数

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

# ServerItemTryUseEvent

  • 描述

    玩家点击右键尝试使用物品时服务端抛出的事件

  • 参数

    参数名 数据类型 说明
    playerId str 玩家id
    itemDict dict 使用的物品的物品信息字典
    cancel bool 设为True可取消物品的使用
  • 返回值

# ServerItemUseOnEvent

  • 描述

    玩家在对方块使用物品之前服务端抛出的事件。注:如果需要取消物品的使用需要同时在ClientItemUseOnEvent和ServerItemUseOnEvent中将ret设置为True才能正确取消。

  • 参数

    参数名 数据类型 说明
    entityId str 玩家实体id
    itemDict dict 使用的物品的物品信息字典
    x int 方块 x 坐标值
    y int 方块 y 坐标值
    z int 方块 z 坐标值
    blockName str 方块的identifier
    blockAuxValue int 方块的附加值
    face int 点击方块的面,参考Facing
    dimensionId int 维度id
    clickX float 点击点的x比例位置
    clickY float 点击点的y比例位置
    clickZ float 点击点的z比例位置
    ret bool 设为True可取消物品的使用
  • 返回值

  • 备注

    • 当对原生方块进行使用时,如堆肥桶等类似有 使用 功能的方块使用物品时,不会触发该事件。而当原生方块加入监听后,ServerBlockUseEvent会触发。当需要获取触发时使用的物品时,可以通过item组件获取手中持有的物品,对应的客户端事件同理。

# ServerPlayerTryTouchEvent

  • 描述

    触发时机:玩家触碰/捡起物品时触发

  • 参数

    参数名 数据类型 说明
    playerId str 玩家Id
    entityId str 物品实体的Id
    itemDict dict 触碰的物品的物品信息字典
    cancel bool 设置为True时将取消本次拾取
    pickupDelay int 取消拾取后重新设置该物品的拾取cd,小于15帧将视作15帧,大于等于97813帧将视作无法拾取
  • 返回值