BlockEvents.rightClicked("jukebox", event => {
let block = event.getBlock()
// 判断右键唱片机后唱片机是否在播放
if (block.entityData.getBoolean("IsPlating")){
// 设置定时任务在3秒后进行判断
event.server.scheduleInTicks(20 * 3, () => {
let newBlock = event.level.getBlock(block.pos)
if (newBlock.id == 'minecraft:air') return
let blockEntity = newBlock.getEntity()
let blockEntityData = newBlock.getEntityData()
// 判断物品是否为空气来进行判断是否在播放
// 也可以使用blockEntityData.getBoolean("IsPlating") 来判断
if (!blockEntity.getFirstItem().is("air")) {
// 判断播放时长是否大于2.8 (尽可能的接近但是最好不要等于,怕出现其他意外)
if ((blockEntityData.getInt("TickCount") - blockEntityData.getInt("RecordStartTick")) / 20 >= 2.8) {
// 清除唱片机里面的物品
blockEntity.clearContent()
// 在方块上面弹出一个新的物品
newBlock.popItemFromFace("stone", "up")
}
}
})
}
})