mirror of
https://github.com/AtlasMediaGroup/Scissors.git
synced 2024-11-30 16:16:00 +00:00
54 lines
2.9 KiB
Diff
54 lines
2.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Video <videogamesm12@gmail.com>
|
|
Date: Mon, 11 Apr 2022 13:33:52 -0600
|
|
Subject: [PATCH] Fixes creative-killing potion effects and certain potion
|
|
effect overflows
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/effect/MobEffect.java b/src/main/java/net/minecraft/world/effect/MobEffect.java
|
|
index 17ffab92f4ae2c06fa9f9249a474d4b6c9c55090..b2701b5779d9930e2cf6460b1e258cd80c4465f0 100644
|
|
--- a/src/main/java/net/minecraft/world/effect/MobEffect.java
|
|
+++ b/src/main/java/net/minecraft/world/effect/MobEffect.java
|
|
@@ -59,6 +59,7 @@ public class MobEffect {
|
|
}
|
|
|
|
public void applyEffectTick(LivingEntity entity, int amplifier) {
|
|
+ boolean god = entity instanceof Player player && (player.isCreative() || player.isInvulnerable()); // Scissors
|
|
if (this == MobEffects.REGENERATION) {
|
|
if (entity.getHealth() < entity.getMaxHealth()) {
|
|
entity.heal(1.0F, RegainReason.MAGIC_REGEN); // CraftBukkit
|
|
@@ -87,17 +88,31 @@ public class MobEffect {
|
|
// CraftBukkit end
|
|
}
|
|
} else if ((this != MobEffects.HEAL || entity.isInvertedHealAndHarm()) && (this != MobEffects.HARM || !entity.isInvertedHealAndHarm())) {
|
|
- if (this == MobEffects.HARM && !entity.isInvertedHealAndHarm() || this == MobEffects.HEAL && entity.isInvertedHealAndHarm()) {
|
|
+ // Scissors start
|
|
+ amplifier = Math.min(Math.abs(amplifier), 124);
|
|
+ if (!god && (this == MobEffects.HARM && !entity.isInvertedHealAndHarm() || this == MobEffects.HEAL && entity.isInvertedHealAndHarm())) {
|
|
entity.hurt(DamageSource.MAGIC, (float) (6 << amplifier));
|
|
}
|
|
+ // Scissors end
|
|
} else {
|
|
- entity.heal((float) Math.max(4 << amplifier, 0), RegainReason.MAGIC); // CraftBukkit
|
|
+ // Scissors start
|
|
+ if (!god) {
|
|
+ amplifier = Math.min(Math.abs(amplifier), 124);
|
|
+ entity.heal((float) Math.max(4 << amplifier, 0), RegainReason.MAGIC); // CraftBukkit
|
|
+ }
|
|
+ // Scissors end
|
|
}
|
|
|
|
}
|
|
|
|
public void applyInstantenousEffect(@Nullable Entity source, @Nullable Entity attacker, LivingEntity target, int amplifier, double proximity) {
|
|
int j;
|
|
+ // Scissors start - Don't apply any healing/harming effects for Creative/Invulnerable players and cap the amplifier for those who aren't.
|
|
+ if (target instanceof Player player && (player.isCreative() || player.isInvulnerable())) {
|
|
+ return;
|
|
+ }
|
|
+ amplifier = Math.min(Math.abs(amplifier), 124);
|
|
+ // Scissors end
|
|
|
|
if ((this != MobEffects.HEAL || target.isInvertedHealAndHarm()) && (this != MobEffects.HARM || !target.isInvertedHealAndHarm())) {
|
|
if ((this != MobEffects.HARM || target.isInvertedHealAndHarm()) && (this != MobEffects.HEAL || !target.isInvertedHealAndHarm())) {
|