diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/bridge/entity/EntityBridge.java b/arclight-common/src/main/java/io/izzel/arclight/common/bridge/entity/EntityBridge.java index a48dfc42..ed39ea23 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/bridge/entity/EntityBridge.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/bridge/entity/EntityBridge.java @@ -54,4 +54,6 @@ public interface EntityBridge extends ICommandSourceBridge { int bridge$getRideCooldown(); boolean bridge$canCollideWith(Entity entity); + + void bridge$inactiveTick(); } diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/EntityMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/EntityMixin.java index 61d47a21..9107b196 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/EntityMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/EntityMixin.java @@ -73,6 +73,7 @@ import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleExitEvent; import org.bukkit.plugin.PluginManager; import org.bukkit.projectiles.ProjectileSource; +import org.spigotmc.ActivationRange; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; @@ -203,10 +204,19 @@ public abstract class EntityMixin implements InternalEntityBridge, EntityBridge, public boolean valid; public org.bukkit.projectiles.ProjectileSource projectileSource; // For projectiles only public boolean forceExplosionKnockback; // SPIGOT-949 + public org.spigotmc.ActivationRange.ActivationType activationType; + public boolean defaultActivationState; + public long activatedTick = Integer.MIN_VALUE; @Inject(method = "", at = @At("RETURN")) private void arclight$init(EntityType entityTypeIn, World worldIn, CallbackInfo ci) { this.persist = true; + activationType = ActivationRange.initializeEntityActivationType((Entity) (Object) this); + if (worldIn != null) { + this.defaultActivationState = ActivationRange.initializeEntityActivationState((Entity) (Object) this, ((WorldBridge) worldIn).bridge$spigotConfig()); + } else { + this.defaultActivationState = false; + } } private CraftEntity bukkitEntity; @@ -215,6 +225,15 @@ public abstract class EntityMixin implements InternalEntityBridge, EntityBridge, return internal$getBukkitEntity(); } + public void inactiveTick() { + this.tick(); + } + + @Override + public void bridge$inactiveTick() { + this.inactiveTick(); + } + @Override public CommandSender bridge$getBukkitSender(CommandSource wrapper) { return internal$getBukkitEntity(); diff --git a/arclight-common/src/main/resources/META-INF/accesstransformer.cfg b/arclight-common/src/main/resources/META-INF/accesstransformer.cfg index 8afd830a..2d5f157e 100644 --- a/arclight-common/src/main/resources/META-INF/accesstransformer.cfg +++ b/arclight-common/src/main/resources/META-INF/accesstransformer.cfg @@ -39,6 +39,9 @@ public net.minecraft.entity.passive.BeeEntity.PollinateGoal func_226504_l_()V #c public net.minecraft.tileentity.BeehiveTileEntity$Bee public net.minecraft.tileentity.BeehiveTileEntity$Bee field_226977_a_ #entityData public net.minecraft.entity.passive.BeeEntity$PollinateGoal func_226504_l_()V #cancel +public net.minecraft.world.GameRules$RuleValue func_223553_a(Ljava/lang/String;)V #setStringValue +public net.minecraft.world.GameRules$BooleanValue func_223553_a(Ljava/lang/String;)V #setStringValue +public net.minecraft.world.GameRules$IntegerValue func_223553_a(Ljava/lang/String;)V #setStringValue # Arclight 1.16 public net.minecraft.block.ComposterBlock func_235490_d_(Lnet/minecraft/block/BlockState;Lnet/minecraft/world/IWorld;Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/block/BlockState; #resetFillState public net.minecraft.util.text.Style (Lnet/minecraft/util/text/Color;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lnet/minecraft/util/text/event/ClickEvent;Lnet/minecraft/util/text/event/HoverEvent;Ljava/lang/String;Lnet/minecraft/util/ResourceLocation;)V