Files
rtdd/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Server/MainServer.py
T
2026-09-28 14:12:09 +08:00

57 lines
2.1 KiB
Python

from ...BlueFoxTools.EventFilter import BlueFoxFilterEnum as eF
from ...BlueFoxTools.SpecialFunciton.BlueFoxSystem import BlueFoxServerSystem
from ...Function import *
from ...Function import GetBaseBlock
class MainServer(BlueFoxServerSystem):
systemTools = SystemTools.GetTools('MainServer')
mcListener = systemTools.ListenForEvent()
blockUse = systemTools.FilterListener(eventName='ServerBlockUseEvent')
def __init__(self, *args):
super(MainServer, self).__init__(*args)
self.systemTools.Binding(self)
@mcListener
def ServerEntityTryPlaceBlockEvent(self, args):
blockName = args['fullName']
cls = blockIndex.get(blockName)
if cls:
posDim = (args['x'], args['y'], args['z'], args['dimensionId'])
args['cancel'] = not cls.Able(posDim, args['auxData'])
@mcListener
def EntityPlaceBlockAfterServerEvent(self, args):
print args
blockName = args['fullName']
cls = blockIndex.get(blockName)
if cls:
posDim = (args['x'], args['y'], args['z'], args['dimensionId'])
cls.getInstance(posDim)
@blockUse(eF.ServerEvent.NormalEvent.NotInCd('main.blockUse', 0.2))
def BlockUseEventNotIn02(self, args):
posDim = (args['x'], args['y'], args['z'], args['dimensionId'])
instance = GetBaseBlock(posDim)
if instance:
playerId = args['playerId']
carriedItem = serverCompFactory.CreateItem(playerId).GetPlayerItem(
serverApi.GetMinecraftEnum().ItemPosType.CARRIED, getUserData=True
)
if carriedItem is None: carriedItem = {}
instance.BlockUse(playerId, carriedItem)
@mcListener
def ServerPlayerTryDestroyBlockEvent(self, args):
posDim = (args['x'], args['y'], args['z'], args['dimensionId'])
fullName = args['fullName']
instance = GetBaseBlock(posDim)
if instance: instance.Destroy(1)
@mcListener
def ChunkLoadedServerEvent(self, args):
blockEntities = args['blockEntities']
for blockEntity in blockEntities:
pass