from ...BlueFoxTools.SystemTools import SystemTools from ...BlueFoxTools.ModConfig import * from ...BlueFoxTools.SpecialFunciton.BlueFoxSystem import BlueFoxServerSystem from ...BlueFoxTools.EventFilter import BlueFoxFilterEnum as eF from ...Function import * from ...BlueFoxTools.SpecialFunciton.BlockBlock import GetLoadedBlockBlock, GetLoadedBlockBlockByPosDim from ...Function import GetBaseBlock class MainServer(BlueFoxServerSystem): systemTools = SystemTools.GetTools('MainServer') mcListener = systemTools.ListenForEvent() blockUse = systemTools.FilterListener('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