Handle alpha channel from potion_contents component (#10808)
This commit is contained in:
parent
88d76d9fe5
commit
bd5867a96f
2 changed files with 78 additions and 3 deletions
|
@ -13,6 +13,7 @@ public net.minecraft.world.entity.projectile.ShulkerBullet currentMoveDirection
|
|||
public net.minecraft.world.entity.projectile.ShulkerBullet flightSteps
|
||||
public net.minecraft.world.entity.projectile.AbstractArrow soundEvent
|
||||
public net.minecraft.world.entity.projectile.ThrownTrident dealtDamage
|
||||
public net.minecraft.world.entity.projectile.Arrow NO_EFFECT_COLOR
|
||||
public net.minecraft.world.entity.projectile.Projectile hasBeenShot
|
||||
public net.minecraft.world.entity.projectile.Projectile leftOwner
|
||||
public net.minecraft.world.entity.projectile.Projectile preOnHit(Lnet/minecraft/world/phys/HitResult;)V
|
||||
|
@ -231,6 +232,80 @@ index 98f46fadd60ea688fefa8d83dbd6fe9b61b6a96f..0cc1cdf91deb07ebb437ef5e61d149b2
|
|||
+ }
|
||||
+ // Paper end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java
|
||||
index 81f5e1d866128af8fb2acc13aca715580fdf9886..88f2a9f310f30a08893f3fa68af13a54cf72fa7f 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAreaEffectCloud.java
|
||||
@@ -125,7 +125,7 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud
|
||||
|
||||
@Override
|
||||
public Color getColor() {
|
||||
- return Color.fromRGB(this.getHandle().potionContents.getColor());
|
||||
+ return Color.fromRGB(this.getHandle().potionContents.getColor() & 0x00FFFFFF); // Paper - skip alpha channel
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -143,7 +143,7 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud
|
||||
this.removeCustomEffect(effect.getType());
|
||||
}
|
||||
this.getHandle().addEffect(CraftPotionUtil.fromBukkit(effect));
|
||||
- this.getHandle().updateColor();
|
||||
+ // this.getHandle().updateColor(); // Paper - already done above
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ public class CraftAreaEffectCloud extends CraftEntity implements AreaEffectCloud
|
||||
public void clearCustomEffects() {
|
||||
PotionContents old = this.getHandle().potionContents;
|
||||
this.getHandle().setPotionContents(new PotionContents(old.potion(), old.customColor(), List.of()));
|
||||
- this.getHandle().updateColor();
|
||||
+ // this.getHandle().updateColor(); // Paper - already done above
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
|
||||
index 5232fbef0d014edd32a5d18d4a1500ab215313f5..071be344c3265a0cd52b31ffbb02ff7a70bdf231 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java
|
||||
@@ -43,7 +43,7 @@ public class CraftArrow extends CraftAbstractArrow implements Arrow {
|
||||
this.removeCustomEffect(effect.getType());
|
||||
}
|
||||
this.getHandle().addEffect(CraftPotionUtil.fromBukkit(effect));
|
||||
- this.getHandle().updateColor();
|
||||
+ // this.getHandle().updateColor(); // Paper - already done above
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public class CraftArrow extends CraftAbstractArrow implements Arrow {
|
||||
public void clearCustomEffects() {
|
||||
PotionContents old = this.getHandle().getPotionContents();
|
||||
this.getHandle().setPotionContents(new PotionContents(old.potion(), old.customColor(), List.of()));
|
||||
- this.getHandle().updateColor();
|
||||
+ // this.getHandle().updateColor(); // Paper - already done above
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -117,16 +117,17 @@ public class CraftArrow extends CraftAbstractArrow implements Arrow {
|
||||
|
||||
@Override
|
||||
public void setColor(Color color) {
|
||||
- int colorRGB = (color == null) ? -1 : color.asRGB();
|
||||
+ int colorRGB = (color == null) ? net.minecraft.world.entity.projectile.Arrow.NO_EFFECT_COLOR : color.asARGB(); // Paper
|
||||
PotionContents old = this.getHandle().getPotionContents();
|
||||
this.getHandle().setPotionContents(new PotionContents(old.potion(), Optional.of(colorRGB), old.customEffects()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Color getColor() {
|
||||
- if (this.getHandle().getColor() <= -1) {
|
||||
+ int color = this.getHandle().getColor(); // Paper
|
||||
+ if (color == net.minecraft.world.entity.projectile.Arrow.NO_EFFECT_COLOR) { // Paper
|
||||
return null;
|
||||
}
|
||||
- return Color.fromRGB(this.getHandle().getColor());
|
||||
+ return Color.fromARGB(color); // Paper
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java
|
||||
index 7ba6302ecb72fa6e523054e7e3223d79eedf6589..907904da7f89e8e5e5cfab80977f04af3fdf17c7 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntityTypes.java
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue