aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
diff options
context:
space:
mode:
authorEmilia Kond <[email protected]>2023-06-13 01:00:12 +0300
committerGitHub <[email protected]>2023-06-12 15:00:12 -0700
commit2d09115b3a73b27a760dfe7debdbd88b279b29e2 (patch)
treef9dc39849e410c23536b4f94221b08d8337b13cd /patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
parent87dfff4cfabefe329d6b6f6b8e2985e4778bd8d3 (diff)
downloadPaper-2d09115b3a73b27a760dfe7debdbd88b279b29e2.tar.gz
Paper-2d09115b3a73b27a760dfe7debdbd88b279b29e2.zip
Use net.kyori.ansi for console logging (#9313)
Uses the new ANSIComponentSerializer introduced in Adventure 4.14.0 to serialize components when logging them via the ComponentLogger, or when sending messages to the console. This replaces the old solution which uses legacy jank and custom color conversions, with a new library that handles the conversion and config
Diffstat (limited to 'patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch')
-rw-r--r--patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch131
1 files changed, 131 insertions, 0 deletions
diff --git a/patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch b/patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
new file mode 100644
index 0000000000..45fefcead5
--- /dev/null
+++ b/patches/server/0603-Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
@@ -0,0 +1,131 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: MeFisto94 <[email protected]>
+Date: Tue, 11 May 2021 00:48:33 +0200
+Subject: [PATCH] Add a "should burn in sunlight" API for Phantoms and
+ Skeletons
+
+
+diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+index ef525e5f523966c9af7380e8d09ff5092e56e7c5..9ca1e9d95e62929c0015d5ca2c2f9c70e421842e 100644
+--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
++++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+@@ -98,9 +98,15 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
+ return MobType.UNDEAD;
+ }
+
++ // Paper start
++ private boolean shouldBurnInDay = true;
++ public boolean shouldBurnInDay() { return shouldBurnInDay; }
++ public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; }
++ // Paper end
++
+ @Override
+ public void aiStep() {
+- boolean flag = this.isSunBurnTick();
++ boolean flag = shouldBurnInDay && this.isSunBurnTick(); // Paper - Configurable Burning
+
+ if (flag) {
+ ItemStack itemstack = this.getItemBySlot(EquipmentSlot.HEAD);
+@@ -228,7 +234,20 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
+ public void readAdditionalSaveData(CompoundTag nbt) {
+ super.readAdditionalSaveData(nbt);
+ this.reassessWeaponGoal();
++ // Paper start
++ if (nbt.contains("Paper.ShouldBurnInDay")) {
++ this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay");
++ }
++ // Paper end
++ }
++
++ // Paper start
++ @Override
++ public void addAdditionalSaveData(CompoundTag nbt) {
++ super.addAdditionalSaveData(nbt);
++ nbt.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay);
+ }
++ // Paper end
+
+ @Override
+ public void setItemSlot(EquipmentSlot slot, ItemStack stack) {
+diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+index ab639cb2faaafaeb33be91bfe99ffad6d23088db..4a132c3eff6978e927bcd4df56b9ce0306af6d19 100644
+--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
++++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+@@ -144,7 +144,7 @@ public class Phantom extends FlyingMob implements Enemy {
+
+ @Override
+ public void aiStep() {
+- if (this.isAlive() && this.isSunBurnTick()) {
++ if (this.isAlive() && shouldBurnInDay && this.isSunBurnTick()) { // Paper - Configurable Burning
+ this.setSecondsOnFire(8);
+ }
+
+@@ -175,6 +175,9 @@ public class Phantom extends FlyingMob implements Enemy {
+ if (nbt.hasUUID("Paper.SpawningEntity")) {
+ this.spawningEntity = nbt.getUUID("Paper.SpawningEntity");
+ }
++ if (nbt.contains("Paper.ShouldBurnInDay")) {
++ this.shouldBurnInDay = nbt.getBoolean("Paper.ShouldBurnInDay");
++ }
+ // Paper end
+ }
+
+@@ -189,6 +192,7 @@ public class Phantom extends FlyingMob implements Enemy {
+ if (this.spawningEntity != null) {
+ nbt.putUUID("Paper.SpawningEntity", this.spawningEntity);
+ }
++ nbt.putBoolean("Paper.ShouldBurnInDay", shouldBurnInDay);
+ // Paper end
+ }
+
+@@ -253,6 +257,10 @@ public class Phantom extends FlyingMob implements Enemy {
+ return spawningEntity;
+ }
+ public void setSpawningEntity(java.util.UUID entity) { this.spawningEntity = entity; }
++
++ private boolean shouldBurnInDay = true;
++ public boolean shouldBurnInDay() { return shouldBurnInDay; }
++ public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; }
+ // Paper end
+ private static enum AttackPhase {
+
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractSkeleton.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractSkeleton.java
+index 5ff566186431440c25a26900aba14e4adb642031..5beaa2bb0d58fe477ce8d2de8b77600d3b416d8c 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractSkeleton.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractSkeleton.java
+@@ -20,4 +20,15 @@ public abstract class CraftAbstractSkeleton extends CraftMonster implements Abst
+ return (net.minecraft.world.entity.monster.AbstractSkeleton) super.getHandle();
+ }
+ // Paper end
++ // Paper start
++ @Override
++ public boolean shouldBurnInDay() {
++ return getHandle().shouldBurnInDay();
++ }
++
++ @Override
++ public void setShouldBurnInDay(boolean shouldBurnInDay) {
++ getHandle().setShouldBurnInDay(shouldBurnInDay);
++ }
++ // Paper end
+ }
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java
+index 1ebb83fe98f573d0a982397096d4dba7249aef4b..6b71f8b373ef524f5df16023b773e92249bb2532 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java
+@@ -40,5 +40,15 @@ public class CraftPhantom extends CraftFlying implements Phantom, CraftEnemy {
+ public java.util.UUID getSpawningEntity() {
+ return getHandle().getSpawningEntity();
+ }
++
++ @Override
++ public boolean shouldBurnInDay() {
++ return getHandle().shouldBurnInDay();
++ }
++
++ @Override
++ public void setShouldBurnInDay(boolean shouldBurnInDay) {
++ getHandle().setShouldBurnInDay(shouldBurnInDay);
++ }
+ // Paper end
+ }