use of net.minecraftforge.eventbus.api.Event.Result in project MinecraftForge by MinecraftForge.
the class ForgeEventFactory method getMobGriefingEvent.
public static boolean getMobGriefingEvent(Level world, Entity entity) {
EntityMobGriefingEvent event = new EntityMobGriefingEvent(entity);
MinecraftForge.EVENT_BUS.post(event);
Result result = event.getResult();
return result == Result.DEFAULT ? world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) : result == Result.ALLOW;
}
use of net.minecraftforge.eventbus.api.Event.Result in project MinecraftForge by MinecraftForge.
the class ForgeEventFactory method canCreateFluidSource.
public static boolean canCreateFluidSource(LevelReader world, BlockPos pos, BlockState state, boolean def) {
CreateFluidSourceEvent evt = new CreateFluidSourceEvent(world, pos, state);
MinecraftForge.EVENT_BUS.post(evt);
Result result = evt.getResult();
return result == Result.DEFAULT ? def : result == Result.ALLOW;
}
use of net.minecraftforge.eventbus.api.Event.Result in project MinecraftForge by MinecraftForge.
the class ForgeEventFactory method fireSleepingTimeCheck.
public static boolean fireSleepingTimeCheck(Player player, Optional<BlockPos> sleepingLocation) {
SleepingTimeCheckEvent evt = new SleepingTimeCheckEvent(player, sleepingLocation);
MinecraftForge.EVENT_BUS.post(evt);
Result canContinueSleep = evt.getResult();
if (canContinueSleep == Result.DEFAULT)
return !player.level.isDay();
else
return canContinueSleep == Result.ALLOW;
}
use of net.minecraftforge.eventbus.api.Event.Result in project MinecraftForge by MinecraftForge.
the class ForgeEventFactory method fireSleepingLocationCheck.
public static boolean fireSleepingLocationCheck(LivingEntity player, BlockPos sleepingLocation) {
SleepingLocationCheckEvent evt = new SleepingLocationCheckEvent(player, sleepingLocation);
MinecraftForge.EVENT_BUS.post(evt);
Result canContinueSleep = evt.getResult();
if (canContinueSleep == Result.DEFAULT) {
return player.getSleepingPos().map(pos -> {
BlockState state = player.level.getBlockState(pos);
return state.getBlock().isBed(state, player.level, pos, player);
}).orElse(false);
} else
return canContinueSleep == Result.ALLOW;
}
Aggregations