From c7603038dac6e92ed823a169bc0342143f17a805 Mon Sep 17 00:00:00 2001 From: gnembon Date: Sun, 15 Mar 2020 23:04:14 -0300 Subject: [PATCH] fixed on_damage for all and on_death for multiplayer players. Fixes #177 --- .../mixins/ServerPlayerEntity_scarpetEventMixin.java | 8 ++++++++ src/main/java/carpet/script/EntityEventsGroup.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/carpet/mixins/ServerPlayerEntity_scarpetEventMixin.java b/src/main/java/carpet/mixins/ServerPlayerEntity_scarpetEventMixin.java index 7626b0c5..c5beb8da 100644 --- a/src/main/java/carpet/mixins/ServerPlayerEntity_scarpetEventMixin.java +++ b/src/main/java/carpet/mixins/ServerPlayerEntity_scarpetEventMixin.java @@ -1,7 +1,9 @@ package carpet.mixins; import carpet.fakes.EntityInterface; +import carpet.script.EntityEventsGroup; import com.mojang.authlib.GameProfile; +import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.server.network.ServerPlayerEntity; @@ -55,6 +57,12 @@ public abstract class ServerPlayerEntity_scarpetEventMixin extends PlayerEntity STATISTICS.onPlayerStatistic((ServerPlayerEntity) (Object)this, stat, amount); } + @Inject(method = "onDeath", at = @At("HEAD")) + private void onDeathEvent(DamageSource source, CallbackInfo ci) + { + ((EntityInterface)this).getEventContainer().onEvent(EntityEventsGroup.EntityEventType.ON_DEATH, this, source.name); + } + @Redirect(method = "method_14218", at = @At( value = "INVOKE", target = "Lnet/minecraft/server/network/ServerPlayerEntity;setSneaking(Z)V" diff --git a/src/main/java/carpet/script/EntityEventsGroup.java b/src/main/java/carpet/script/EntityEventsGroup.java index 6ea9d746..601c88b9 100644 --- a/src/main/java/carpet/script/EntityEventsGroup.java +++ b/src/main/java/carpet/script/EntityEventsGroup.java @@ -80,7 +80,7 @@ public class EntityEventsGroup }, ON_REMOVED("on_removed", 0), ON_TICK("on_tick", 0), - ON_DAMAGE("on_damaged", 2) + ON_DAMAGE("on_damaged", 3) { @Override public List makeArgs(Entity entity, Object... providedArgs)