|
|
|
|
@@ -33,11 +33,11 @@ import net.minecraft.world.level.LevelAccessor;
|
|
|
|
|
import net.minecraftforge.event.CommandEvent;
|
|
|
|
|
import net.minecraftforge.event.RegisterCommandsEvent;
|
|
|
|
|
import net.minecraftforge.event.ServerChatEvent;
|
|
|
|
|
import net.minecraftforge.event.TickEvent.LevelTickEvent;
|
|
|
|
|
import net.minecraftforge.event.TickEvent.Phase;
|
|
|
|
|
import net.minecraftforge.event.TickEvent.PlayerTickEvent;
|
|
|
|
|
import net.minecraftforge.event.TickEvent.ServerTickEvent;
|
|
|
|
|
import net.minecraftforge.event.TickEvent.WorldTickEvent;
|
|
|
|
|
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
|
|
|
|
|
import net.minecraftforge.event.entity.EntityJoinLevelEvent;
|
|
|
|
|
import net.minecraftforge.event.entity.item.ItemTossEvent;
|
|
|
|
|
import net.minecraftforge.event.entity.living.AnimalTameEvent;
|
|
|
|
|
import net.minecraftforge.event.entity.living.LivingAttackEvent;
|
|
|
|
|
@@ -45,14 +45,14 @@ import net.minecraftforge.event.entity.living.LivingDeathEvent;
|
|
|
|
|
import net.minecraftforge.event.entity.living.LivingSpawnEvent;
|
|
|
|
|
import net.minecraftforge.event.entity.player.*;
|
|
|
|
|
import net.minecraftforge.event.entity.player.PlayerEvent.*;
|
|
|
|
|
import net.minecraftforge.event.level.BlockEvent.BreakEvent;
|
|
|
|
|
import net.minecraftforge.event.level.BlockEvent.EntityPlaceEvent;
|
|
|
|
|
import net.minecraftforge.event.level.BlockEvent.FarmlandTrampleEvent;
|
|
|
|
|
import net.minecraftforge.event.level.ChunkDataEvent;
|
|
|
|
|
import net.minecraftforge.event.level.ExplosionEvent.Detonate;
|
|
|
|
|
import net.minecraftforge.event.level.ExplosionEvent.Start;
|
|
|
|
|
import net.minecraftforge.event.level.LevelEvent;
|
|
|
|
|
import net.minecraftforge.event.server.*;
|
|
|
|
|
import net.minecraftforge.event.world.BlockEvent.BreakEvent;
|
|
|
|
|
import net.minecraftforge.event.world.BlockEvent.EntityPlaceEvent;
|
|
|
|
|
import net.minecraftforge.event.world.BlockEvent.FarmlandTrampleEvent;
|
|
|
|
|
import net.minecraftforge.event.world.ChunkDataEvent;
|
|
|
|
|
import net.minecraftforge.event.world.ExplosionEvent.Detonate;
|
|
|
|
|
import net.minecraftforge.event.world.ExplosionEvent.Start;
|
|
|
|
|
import net.minecraftforge.event.world.WorldEvent;
|
|
|
|
|
import net.minecraftforge.eventbus.api.Event;
|
|
|
|
|
import net.minecraftforge.eventbus.api.EventPriority;
|
|
|
|
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|
|
|
|
@@ -70,12 +70,12 @@ public class EventHandlerImplCommon {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(WorldTickEvent event) {
|
|
|
|
|
public static void event(LevelTickEvent event) {
|
|
|
|
|
if (event.side == LogicalSide.SERVER) {
|
|
|
|
|
if (event.phase == Phase.START)
|
|
|
|
|
TickEvent.SERVER_LEVEL_PRE.invoker().tick((ServerLevel) event.world);
|
|
|
|
|
TickEvent.SERVER_LEVEL_PRE.invoker().tick((ServerLevel) event.level);
|
|
|
|
|
else if (event.phase == Phase.END)
|
|
|
|
|
TickEvent.SERVER_LEVEL_POST.invoker().tick((ServerLevel) event.world);
|
|
|
|
|
TickEvent.SERVER_LEVEL_POST.invoker().tick((ServerLevel) event.level);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -101,22 +101,22 @@ public class EventHandlerImplCommon {
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(RegisterCommandsEvent event) {
|
|
|
|
|
CommandRegistrationEvent.EVENT.invoker().register(event.getDispatcher(), event.getEnvironment());
|
|
|
|
|
CommandRegistrationEvent.EVENT.invoker().register(event.getDispatcher(), event.getCommandSelection());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(PlayerLoggedInEvent event) {
|
|
|
|
|
PlayerEvent.PLAYER_JOIN.invoker().join((ServerPlayer) event.getPlayer());
|
|
|
|
|
PlayerEvent.PLAYER_JOIN.invoker().join((ServerPlayer) event.getEntity());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(PlayerLoggedOutEvent event) {
|
|
|
|
|
PlayerEvent.PLAYER_QUIT.invoker().quit((ServerPlayer) event.getPlayer());
|
|
|
|
|
PlayerEvent.PLAYER_QUIT.invoker().quit((ServerPlayer) event.getEntity());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(PlayerRespawnEvent event) {
|
|
|
|
|
PlayerEvent.PLAYER_RESPAWN.invoker().respawn((ServerPlayer) event.getPlayer(), event.isEndConquered());
|
|
|
|
|
PlayerEvent.PLAYER_RESPAWN.invoker().respawn((ServerPlayer) event.getEntity(), event.isEndConquered());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
@@ -168,79 +168,79 @@ public class EventHandlerImplCommon {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventWorldEvent(WorldEvent.Load event) {
|
|
|
|
|
if (event.getWorld() instanceof ServerLevel) {
|
|
|
|
|
ServerLevel world = (ServerLevel) event.getWorld();
|
|
|
|
|
public static void eventWorldEvent(LevelEvent.Load event) {
|
|
|
|
|
if (event.getLevel() instanceof ServerLevel) {
|
|
|
|
|
ServerLevel world = (ServerLevel) event.getLevel();
|
|
|
|
|
LifecycleEvent.SERVER_LEVEL_LOAD.invoker().act(world);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventWorldEvent(WorldEvent.Unload event) {
|
|
|
|
|
if (event.getWorld() instanceof ServerLevel) {
|
|
|
|
|
ServerLevel world = (ServerLevel) event.getWorld();
|
|
|
|
|
public static void eventWorldEvent(LevelEvent.Unload event) {
|
|
|
|
|
if (event.getLevel() instanceof ServerLevel) {
|
|
|
|
|
ServerLevel world = (ServerLevel) event.getLevel();
|
|
|
|
|
LifecycleEvent.SERVER_LEVEL_UNLOAD.invoker().act(world);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventWorldEvent(WorldEvent.Save event) {
|
|
|
|
|
if (event.getWorld() instanceof ServerLevel) {
|
|
|
|
|
ServerLevel world = (ServerLevel) event.getWorld();
|
|
|
|
|
public static void eventWorldEvent(LevelEvent.Save event) {
|
|
|
|
|
if (event.getLevel() instanceof ServerLevel) {
|
|
|
|
|
ServerLevel world = (ServerLevel) event.getLevel();
|
|
|
|
|
LifecycleEvent.SERVER_LEVEL_SAVE.invoker().act(world);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(LivingDeathEvent event) {
|
|
|
|
|
if (EntityEvent.LIVING_DEATH.invoker().die(event.getEntityLiving(), event.getSource()).isFalse()) {
|
|
|
|
|
if (EntityEvent.LIVING_DEATH.invoker().die(event.getEntity(), event.getSource()).isFalse()) {
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(AdvancementEvent event) {
|
|
|
|
|
if (event.getPlayer() instanceof ServerPlayer) {
|
|
|
|
|
PlayerEvent.PLAYER_ADVANCEMENT.invoker().award((ServerPlayer) event.getPlayer(), event.getAdvancement());
|
|
|
|
|
if (event.getEntity() instanceof ServerPlayer) {
|
|
|
|
|
PlayerEvent.PLAYER_ADVANCEMENT.invoker().award((ServerPlayer) event.getEntity(), event.getAdvancement());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventPlayerEvent(Clone event) {
|
|
|
|
|
if (event.getOriginal() instanceof ServerPlayer && event.getPlayer() instanceof ServerPlayer) {
|
|
|
|
|
PlayerEvent.PLAYER_CLONE.invoker().clone((ServerPlayer) event.getOriginal(), (ServerPlayer) event.getPlayer(), !event.isWasDeath());
|
|
|
|
|
if (event.getOriginal() instanceof ServerPlayer && event.getEntity() instanceof ServerPlayer) {
|
|
|
|
|
PlayerEvent.PLAYER_CLONE.invoker().clone((ServerPlayer) event.getOriginal(), (ServerPlayer) event.getEntity(), !event.isWasDeath());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventExplosionEvent(Start event) {
|
|
|
|
|
if (ExplosionEvent.PRE.invoker().explode(event.getWorld(), event.getExplosion()).isFalse()) {
|
|
|
|
|
if (ExplosionEvent.PRE.invoker().explode(event.getLevel(), event.getExplosion()).isFalse()) {
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventExplosionEvent(Detonate event) {
|
|
|
|
|
ExplosionEvent.DETONATE.invoker().explode(event.getWorld(), event.getExplosion(), event.getAffectedEntities());
|
|
|
|
|
ExplosionEvent.DETONATE.invoker().explode(event.getLevel(), event.getExplosion(), event.getAffectedEntities());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(LivingAttackEvent event) {
|
|
|
|
|
if (EntityEvent.LIVING_HURT.invoker().hurt(event.getEntityLiving(), event.getSource(), event.getAmount()).isFalse()) {
|
|
|
|
|
if (EntityEvent.LIVING_HURT.invoker().hurt(event.getEntity(), event.getSource(), event.getAmount()).isFalse()) {
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(EntityJoinWorldEvent event) {
|
|
|
|
|
if (EntityEvent.ADD.invoker().add(event.getEntity(), event.getWorld()).isFalse()) {
|
|
|
|
|
public static void event(EntityJoinLevelEvent event) {
|
|
|
|
|
if (EntityEvent.ADD.invoker().add(event.getEntity(), event.getLevel()).isFalse()) {
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(FarmlandTrampleEvent event) {
|
|
|
|
|
if (InteractionEvent.FARMLAND_TRAMPLE.invoker().trample((Level) event.getWorld(), event.getPos(), event.getState(), event.getFallDistance(), event.getEntity()).value() != null) {
|
|
|
|
|
if (event.getLevel() instanceof Level && InteractionEvent.FARMLAND_TRAMPLE.invoker().trample((Level) event.getLevel(), event.getPos(), event.getState(), event.getFallDistance(), event.getEntity()).value() != null) {
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -248,7 +248,7 @@ public class EventHandlerImplCommon {
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(FillBucketEvent event) {
|
|
|
|
|
ItemStack oldItem = event.getEmptyBucket();
|
|
|
|
|
CompoundEventResult<ItemStack> result = PlayerEvent.FILL_BUCKET.invoker().fill(event.getPlayer(), event.getWorld(), oldItem, event.getTarget());
|
|
|
|
|
CompoundEventResult<ItemStack> result = PlayerEvent.FILL_BUCKET.invoker().fill(event.getEntity(), event.getLevel(), oldItem, event.getTarget());
|
|
|
|
|
if (result.interruptsFurtherEvaluation()) {
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
event.setFilledBucket(result.object());
|
|
|
|
|
@@ -267,7 +267,7 @@ public class EventHandlerImplCommon {
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventLivingSpawnEvent(LivingSpawnEvent.CheckSpawn event) {
|
|
|
|
|
EventResult result = EntityEvent.LIVING_CHECK_SPAWN.invoker().canSpawn(event.getEntityLiving(), event.getWorld(), event.getX(), event.getY(), event.getZ(), event.getSpawnReason(), event.getSpawner());
|
|
|
|
|
EventResult result = EntityEvent.LIVING_CHECK_SPAWN.invoker().canSpawn(event.getEntity(), event.getLevel(), event.getX(), event.getY(), event.getZ(), event.getSpawnReason(), event.getSpawner());
|
|
|
|
|
if (result.interruptsFurtherEvaluation()) {
|
|
|
|
|
if (result.value() != null) {
|
|
|
|
|
event.setResult(result.value() == Boolean.TRUE ? Event.Result.ALLOW : Event.Result.DENY);
|
|
|
|
|
@@ -284,42 +284,42 @@ public class EventHandlerImplCommon {
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(ItemCraftedEvent event) {
|
|
|
|
|
PlayerEvent.CRAFT_ITEM.invoker().craft(event.getPlayer(), event.getCrafting(), event.getInventory());
|
|
|
|
|
PlayerEvent.CRAFT_ITEM.invoker().craft(event.getEntity(), event.getCrafting(), event.getInventory());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(ItemSmeltedEvent event) {
|
|
|
|
|
PlayerEvent.SMELT_ITEM.invoker().smelt(event.getPlayer(), event.getSmelting());
|
|
|
|
|
PlayerEvent.SMELT_ITEM.invoker().smelt(event.getEntity(), event.getSmelting());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(EntityItemPickupEvent event) {
|
|
|
|
|
PlayerEvent.PICKUP_ITEM_PRE.invoker().canPickup(event.getPlayer(), event.getItem(), event.getItem().getItem());
|
|
|
|
|
PlayerEvent.PICKUP_ITEM_PRE.invoker().canPickup(event.getEntity(), event.getItem(), event.getItem().getItem());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(ItemPickupEvent event) {
|
|
|
|
|
PlayerEvent.PICKUP_ITEM_POST.invoker().pickup(event.getPlayer(), event.getOriginalEntity(), event.getStack());
|
|
|
|
|
PlayerEvent.PICKUP_ITEM_POST.invoker().pickup(event.getEntity(), event.getOriginalEntity(), event.getStack());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(ItemTossEvent event) {
|
|
|
|
|
PlayerEvent.DROP_ITEM.invoker().drop(event.getPlayer(), event.getEntityItem());
|
|
|
|
|
PlayerEvent.DROP_ITEM.invoker().drop(event.getPlayer(), event.getEntity());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventPlayerContainerEvent(PlayerContainerEvent.Open event) {
|
|
|
|
|
PlayerEvent.OPEN_MENU.invoker().open(event.getPlayer(), event.getContainer());
|
|
|
|
|
PlayerEvent.OPEN_MENU.invoker().open(event.getEntity(), event.getContainer());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventPlayerContainerEvent(PlayerContainerEvent.Close event) {
|
|
|
|
|
PlayerEvent.CLOSE_MENU.invoker().close(event.getPlayer(), event.getContainer());
|
|
|
|
|
PlayerEvent.CLOSE_MENU.invoker().close(event.getEntity(), event.getContainer());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventPlayerInteractEvent(PlayerInteractEvent.RightClickItem event) {
|
|
|
|
|
CompoundEventResult<ItemStack> result = InteractionEvent.RIGHT_CLICK_ITEM.invoker().click(event.getPlayer(), event.getHand());
|
|
|
|
|
CompoundEventResult<ItemStack> result = InteractionEvent.RIGHT_CLICK_ITEM.invoker().click(event.getEntity(), event.getHand());
|
|
|
|
|
if (result.isPresent()) {
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
event.setCancellationResult(result.result().asMinecraft());
|
|
|
|
|
@@ -328,7 +328,7 @@ public class EventHandlerImplCommon {
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventPlayerInteractEvent(PlayerInteractEvent.RightClickBlock event) {
|
|
|
|
|
EventResult result = InteractionEvent.RIGHT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace());
|
|
|
|
|
EventResult result = InteractionEvent.RIGHT_CLICK_BLOCK.invoker().click(event.getEntity(), event.getHand(), event.getPos(), event.getFace());
|
|
|
|
|
if (result.isPresent()) {
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
event.setCancellationResult(result.asMinecraft());
|
|
|
|
|
@@ -339,7 +339,7 @@ public class EventHandlerImplCommon {
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventPlayerInteractEvent(PlayerInteractEvent.EntityInteract event) {
|
|
|
|
|
EventResult result = InteractionEvent.INTERACT_ENTITY.invoker().interact(event.getPlayer(), event.getTarget(), event.getHand());
|
|
|
|
|
EventResult result = InteractionEvent.INTERACT_ENTITY.invoker().interact(event.getEntity(), event.getTarget(), event.getHand());
|
|
|
|
|
if (result.isPresent()) {
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
event.setCancellationResult(result.asMinecraft());
|
|
|
|
|
@@ -348,7 +348,7 @@ public class EventHandlerImplCommon {
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventPlayerInteractEvent(PlayerInteractEvent.LeftClickBlock event) {
|
|
|
|
|
EventResult result = InteractionEvent.LEFT_CLICK_BLOCK.invoker().click(event.getPlayer(), event.getHand(), event.getPos(), event.getFace());
|
|
|
|
|
EventResult result = InteractionEvent.LEFT_CLICK_BLOCK.invoker().click(event.getEntity(), event.getHand(), event.getPos(), event.getFace());
|
|
|
|
|
if (result.isPresent()) {
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
event.setCancellationResult(result.asMinecraft());
|
|
|
|
|
@@ -359,8 +359,8 @@ public class EventHandlerImplCommon {
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(BreakEvent event) {
|
|
|
|
|
if (event.getPlayer() instanceof ServerPlayer && event.getWorld() instanceof Level) {
|
|
|
|
|
EventResult result = BlockEvent.BREAK.invoker().breakBlock((Level) event.getWorld(), event.getPos(), event.getState(), (ServerPlayer) event.getPlayer(), new IntValue() {
|
|
|
|
|
if (event.getPlayer() instanceof ServerPlayer && event.getLevel() instanceof Level) {
|
|
|
|
|
EventResult result = BlockEvent.BREAK.invoker().breakBlock((Level) event.getLevel(), event.getPos(), event.getState(), (ServerPlayer) event.getPlayer(), new IntValue() {
|
|
|
|
|
@Override
|
|
|
|
|
public int getAsInt() {
|
|
|
|
|
return event.getExpToDrop();
|
|
|
|
|
@@ -379,8 +379,8 @@ public class EventHandlerImplCommon {
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(EntityPlaceEvent event) {
|
|
|
|
|
if (event.getWorld() instanceof Level) {
|
|
|
|
|
EventResult result = BlockEvent.PLACE.invoker().placeBlock((Level) event.getWorld(), event.getPos(), event.getState(), event.getEntity());
|
|
|
|
|
if (event.getLevel() instanceof Level) {
|
|
|
|
|
EventResult result = BlockEvent.PLACE.invoker().placeBlock((Level) event.getLevel(), event.getPos(), event.getState(), event.getEntity());
|
|
|
|
|
if (result.isFalse()) {
|
|
|
|
|
event.setCanceled(true);
|
|
|
|
|
}
|
|
|
|
|
@@ -394,28 +394,28 @@ public class EventHandlerImplCommon {
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void event(PlayerChangedDimensionEvent event) {
|
|
|
|
|
if (event.getPlayer() instanceof ServerPlayer) {
|
|
|
|
|
PlayerEvent.CHANGE_DIMENSION.invoker().change((ServerPlayer) event.getPlayer(), event.getFrom(), event.getTo());
|
|
|
|
|
if (event.getEntity() instanceof ServerPlayer) {
|
|
|
|
|
PlayerEvent.CHANGE_DIMENSION.invoker().change((ServerPlayer) event.getEntity(), event.getFrom(), event.getTo());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventChunkDataEvent(ChunkDataEvent.Save event) {
|
|
|
|
|
if (event.getWorld() instanceof ServerLevel) {
|
|
|
|
|
ChunkEvent.SAVE_DATA.invoker().save(event.getChunk(), (ServerLevel) event.getWorld(), event.getData());
|
|
|
|
|
if (event.getLevel() instanceof ServerLevel) {
|
|
|
|
|
ChunkEvent.SAVE_DATA.invoker().save(event.getChunk(), (ServerLevel) event.getLevel(), event.getData());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
|
|
|
public static void eventChunkDataEvent(ChunkDataEvent.Load event) {
|
|
|
|
|
LevelAccessor level = event.getChunk().getWorldForge();
|
|
|
|
|
if (!(level instanceof ServerLevel) && event instanceof WorldEventAttachment) {
|
|
|
|
|
level = ((WorldEventAttachment) event).architectury$getAttachedLevel();
|
|
|
|
|
if (!(level instanceof ServerLevel) && event instanceof LevelEventAttachment) {
|
|
|
|
|
level = ((LevelEventAttachment) event).architectury$getAttachedLevel();
|
|
|
|
|
}
|
|
|
|
|
ChunkEvent.LOAD_DATA.invoker().load(event.getChunk(), level instanceof ServerLevel ? (ServerLevel) level : null, event.getData());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public interface WorldEventAttachment {
|
|
|
|
|
public interface LevelEventAttachment {
|
|
|
|
|
LevelAccessor architectury$getAttachedLevel();
|
|
|
|
|
|
|
|
|
|
void architectury$attachLevel(LevelAccessor level);
|
|
|
|
|
|