diff --git a/CHANGELOG.md b/CHANGELOG.md index 450b6b6..4cf8c67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +**1.0.6** +* Improve Instant Kill + **1.0.5** * Crying Obsidian Nether Portal diff --git a/gradle.properties b/gradle.properties index 4fc91e2..8f2c43f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ org.gradle.jvmargs = -Xmx1G fabric_loader_version = 0.7.8+build.189 # Mod Properties - mod_version = 1.0.5 + mod_version = 1.0.6 maven_group = com.thebrokenrail archives_base_name = slightlyvanilla diff --git a/src/main/java/com/thebrokenrail/slightlyvanilla/mixin/MixinPlayerEntity.java b/src/main/java/com/thebrokenrail/slightlyvanilla/mixin/MixinPlayerEntity.java index 7dbaffb..139e182 100644 --- a/src/main/java/com/thebrokenrail/slightlyvanilla/mixin/MixinPlayerEntity.java +++ b/src/main/java/com/thebrokenrail/slightlyvanilla/mixin/MixinPlayerEntity.java @@ -1,26 +1,22 @@ package com.thebrokenrail.slightlyvanilla.mixin; import com.thebrokenrail.slightlyvanilla.SlightlyVanilla; -import net.minecraft.entity.Entity; -import net.minecraft.entity.boss.dragon.EnderDragonPart; import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.player.PlayerEntity; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.ModifyArg; @SuppressWarnings("unused") @Mixin(PlayerEntity.class) public class MixinPlayerEntity { - @Inject(at = @At("HEAD"), method = "attack", cancellable = true) - public void attack(Entity target, CallbackInfo info) { - if (SlightlyVanilla.getConfig().instantKillInCreative && target.isAttackable()) { - if (target instanceof EnderDragonPart) { - target = ((EnderDragonPart)target).owner; - } - //noinspection ConstantConditions - target.damage(DamageSource.player((PlayerEntity) (Object) this), Float.MAX_VALUE); + @ModifyArg(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;damage(Lnet/minecraft/entity/damage/DamageSource;F)Z"), method = "attack", index = 1) + public float changeDamage(DamageSource source, float amount) { + //noinspection ConstantConditions + if (SlightlyVanilla.getConfig().instantKillInCreative && ((PlayerEntity) (Object) this).isCreative()) { + return Float.MAX_VALUE; + } else { + return amount; } } }