Здравствуйте. При установке блока жидкости из моего мода ведром методом setBlock (при использовании события PlayerInteractEvent) сразу после установки жидкости вызывается событие FillBucketEvent и жидкость возвращается обратно в ведро. Как можно блокировать моментальный вызов события FillBucketEvent, если в данном случае(при установке блока жидкости) оно совершенно не нужно. Я только придумал чтоб по времени просчитывать, чтоб пару моментов проходило.. Но должен же быть правильный способ
@SubscribeEvent
public void onBucketFill(FillBucketEvent event) {
if (!event.world.isRemote) {
World world = event.world;
MovingObjectPosition pos = event.target;
Block block = world.getBlock(pos.blockX, pos.blockY, pos.blockZ);
int meta = world.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ);
if (block == TestMod.fluidBlock && meta == 0) {
world.setBlockToAir(pos.blockX, pos.blockY, pos.blockZ);
event.result = new ItemStack(ItemLoader.freshWaterBucket, 1, 0);
event.setResult(Event.Result.ALLOW);
}
}
}
public void onBucketFill(FillBucketEvent event) {
if (!event.world.isRemote) {
World world = event.world;
MovingObjectPosition pos = event.target;
Block block = world.getBlock(pos.blockX, pos.blockY, pos.blockZ);
int meta = world.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ);
if (block == TestMod.fluidBlock && meta == 0) {
world.setBlockToAir(pos.blockX, pos.blockY, pos.blockZ);
event.result = new ItemStack(ItemLoader.freshWaterBucket, 1, 0);
event.setResult(Event.Result.ALLOW);
}
}
}