|
@@ -39,6 +39,7 @@ import net.minecraftforge.event.entity.*;
|
|
import net.minecraftforge.event.entity.item.ItemTossEvent;
|
|
import net.minecraftforge.event.entity.item.ItemTossEvent;
|
|
import net.minecraftforge.event.entity.living.*;
|
|
import net.minecraftforge.event.entity.living.*;
|
|
import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent;
|
|
import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent;
|
|
|
|
+import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
|
|
import net.minecraftforge.event.entity.player.*;
|
|
import net.minecraftforge.event.entity.player.*;
|
|
import net.minecraftforge.event.world.*;
|
|
import net.minecraftforge.event.world.*;
|
|
import net.minecraftforge.eventbus.api.*;
|
|
import net.minecraftforge.eventbus.api.*;
|
|
@@ -670,15 +671,15 @@ public class ScriptEvents implements BlockHarvest, Craft, ContainerClick {
|
|
@SubscribeEvent(receiveCanceled = true)
|
|
@SubscribeEvent(receiveCanceled = true)
|
|
public void onEntityJoinWorld(EntityJoinWorldEvent e) {
|
|
public void onEntityJoinWorld(EntityJoinWorldEvent e) {
|
|
Entity ent = e.getEntity();
|
|
Entity ent = e.getEntity();
|
|
- if(!e.getEntity().isPassenger()
|
|
|
|
- && !scripts.getEntityLimits().isAllowedToSpawn(ent.getType())) {
|
|
|
|
- e.getEntity().getPassengers().forEach(rider -> {
|
|
|
|
|
|
+ if(!ent.isPassenger() && !scripts.getEntityLimits().isAllowedToSpawn(ent.getType())
|
|
|
|
+ && !ent.getTags().contains("mod_spawned")) {
|
|
|
|
+ ent.getPassengers().forEach(rider -> {
|
|
if(rider == null || rider instanceof PlayerEntity) {
|
|
if(rider == null || rider instanceof PlayerEntity) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
rider.remove();
|
|
rider.remove();
|
|
});
|
|
});
|
|
- e.getEntity().removePassengers();
|
|
|
|
|
|
+ ent.removePassengers();
|
|
e.setCanceled(true);
|
|
e.setCanceled(true);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -687,6 +688,13 @@ public class ScriptEvents implements BlockHarvest, Craft, ContainerClick {
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @SubscribeEvent(receiveCanceled = true)
|
|
|
|
+ public void onLivingUpdate(LivingUpdateEvent e) {
|
|
|
|
+ if(e.getEntity().getTags().contains("no_tick")) {
|
|
|
|
+ e.setCanceled(true);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
@SubscribeEvent(receiveCanceled = true)
|
|
@SubscribeEvent(receiveCanceled = true)
|
|
public void onEntityLeaveWorld(EntityLeaveWorldEvent e) {
|
|
public void onEntityLeaveWorld(EntityLeaveWorldEvent e) {
|
|
Entity ent = e.getEntity();
|
|
Entity ent = e.getEntity();
|