mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-12-03 08:05:02 +01:00
51 lines
2.5 KiB
Diff
51 lines
2.5 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: PepperCode1 <44146161+PepperCode1@users.noreply.github.com>
|
||
|
Date: Mon, 19 Oct 2020 15:56:47 +0300
|
||
|
Subject: [PATCH] PaperPR: Fix harming potion dupe
|
||
|
|
||
|
|
||
|
diff --git a/src/main/java/net/minecraft/server/ItemPotion.java b/src/main/java/net/minecraft/server/ItemPotion.java
|
||
|
index 7862b63a245222d9a3d0896bdb2741b0e5e7ac40..105665d6688e860a30fe52980419818ee8ef5a2c 100644
|
||
|
--- a/src/main/java/net/minecraft/server/ItemPotion.java
|
||
|
+++ b/src/main/java/net/minecraft/server/ItemPotion.java
|
||
|
@@ -22,6 +22,8 @@ public class ItemPotion extends Item {
|
||
|
CriterionTriggers.z.a((EntityPlayer) entityhuman, itemstack);
|
||
|
}
|
||
|
|
||
|
+ List<MobEffect> instantLater = new net.yatopia.server.list.GlueList<>(); // Yatopia
|
||
|
+
|
||
|
if (!world.isClientSide) {
|
||
|
List<MobEffect> list = PotionUtil.getEffects(itemstack);
|
||
|
Iterator iterator = list.iterator();
|
||
|
@@ -30,7 +32,7 @@ public class ItemPotion extends Item {
|
||
|
MobEffect mobeffect = (MobEffect) iterator.next();
|
||
|
|
||
|
if (mobeffect.getMobEffect().isInstant()) {
|
||
|
- mobeffect.getMobEffect().applyInstantEffect(entityhuman, entityhuman, entityliving, mobeffect.getAmplifier(), 1.0D);
|
||
|
+ instantLater.add(mobeffect); // Yatopia
|
||
|
} else {
|
||
|
entityliving.addEffect(new MobEffect(mobeffect), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.POTION_DRINK); // CraftBukkit
|
||
|
}
|
||
|
@@ -44,7 +46,21 @@ public class ItemPotion extends Item {
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+ // Yatopia start - fix harming potion dupe
|
||
|
+ if (!world.isClientSide) {
|
||
|
+ for (MobEffect mobeffect : instantLater) {
|
||
|
+ mobeffect.getMobEffect().applyInstantEffect(entityhuman, entityhuman, entityliving, mobeffect.getAmplifier(), 1.0D);
|
||
|
+ }
|
||
|
+ }
|
||
|
+ // Yatopia end
|
||
|
+
|
||
|
if (entityhuman == null || !entityhuman.abilities.canInstantlyBuild) {
|
||
|
+ // Yatopia start - fix harming potion dupe
|
||
|
+ if (entityliving.getHealth() <= 0 && !(entityhuman != null && entityliving.world.getGameRules().getBoolean(GameRules.KEEP_INVENTORY))) {
|
||
|
+ entityliving.dropItem(new ItemStack(Items.GLASS_BOTTLE), 0);
|
||
|
+ return ItemStack.NULL_ITEM;
|
||
|
+ }
|
||
|
+ // Yatopia end
|
||
|
if (itemstack.isEmpty()) {
|
||
|
return new ItemStack(Items.GLASS_BOTTLE);
|
||
|
}
|