From 3697ec7a60f718cfc05064af169a29c8594073d9 Mon Sep 17 00:00:00 2001 From: Yannick Lamprecht Date: Sat, 10 Nov 2018 20:22:39 +1100 Subject: Add API to manipulate boss bar of entities and those created by commands --- nms-patches/BossBattleCustom.patch | 30 ++++++++++++++++++++++++++++++ nms-patches/EnderDragonBattle.patch | 11 +++++++++++ nms-patches/EntityWither.patch | 9 +++++++++ 3 files changed, 50 insertions(+) create mode 100644 nms-patches/BossBattleCustom.patch create mode 100644 nms-patches/EnderDragonBattle.patch (limited to 'nms-patches') diff --git a/nms-patches/BossBattleCustom.patch b/nms-patches/BossBattleCustom.patch new file mode 100644 index 00000000..cf8d10e9 --- /dev/null +++ b/nms-patches/BossBattleCustom.patch @@ -0,0 +1,30 @@ +--- a/net/minecraft/server/BossBattleCustom.java ++++ b/net/minecraft/server/BossBattleCustom.java +@@ -8,12 +8,27 @@ + import java.util.UUID; + import java.util.function.Consumer; + ++// CraftBukkit start ++import org.bukkit.boss.KeyedBossBar; ++import org.bukkit.craftbukkit.boss.CraftKeyedBossbar; ++// CraftBukkit end ++ + public class BossBattleCustom extends BossBattleServer { + + private final MinecraftKey h; + private final Set i = Sets.newHashSet(); + private int j; + private int k = 100; ++ // CraftBukkit start ++ private KeyedBossBar bossBar; ++ ++ public KeyedBossBar getBukkitEntity() { ++ if (bossBar == null) { ++ bossBar = new CraftKeyedBossbar(this); ++ } ++ return bossBar; ++ } ++ // CraftBukkit end + + public BossBattleCustom(MinecraftKey minecraftkey, IChatBaseComponent ichatbasecomponent) { + super(ichatbasecomponent, BossBattle.BarColor.WHITE, BossBattle.BarStyle.PROGRESS); diff --git a/nms-patches/EnderDragonBattle.patch b/nms-patches/EnderDragonBattle.patch new file mode 100644 index 00000000..e5d6df48 --- /dev/null +++ b/nms-patches/EnderDragonBattle.patch @@ -0,0 +1,11 @@ +--- a/net/minecraft/server/EnderDragonBattle.java ++++ b/net/minecraft/server/EnderDragonBattle.java +@@ -21,7 +21,7 @@ + + private static final Logger a = LogManager.getLogger(); + private static final Predicate b = IEntitySelector.a.and(IEntitySelector.a(0.0D, 128.0D, 0.0D, 192.0D)); +- private final BossBattleServer c; ++ public final BossBattleServer c; // PAIL private -> public, rename bossBattleServer + private final WorldServer d; + private final List e; + private final ShapeDetector f; diff --git a/nms-patches/EntityWither.patch b/nms-patches/EntityWither.patch index 77708f47..920308ca 100644 --- a/nms-patches/EntityWither.patch +++ b/nms-patches/EntityWither.patch @@ -13,6 +13,15 @@ public class EntityWither extends EntityMonster implements IRangedEntity { private static final DataWatcherObject a = DataWatcher.a(EntityWither.class, DataWatcherRegistry.b); +@@ -19,7 +25,7 @@ + private final int[] bI = new int[2]; + private final int[] bJ = new int[2]; + private int bK; +- private final BossBattleServer bL; ++ public final BossBattleServer bL; // PAIL private -> public, rename bossBattleServer + private static final Predicate bM = (entity) -> { + return entity instanceof EntityLiving && ((EntityLiving) entity).getMonsterType() != EnumMonsterType.UNDEAD && ((EntityLiving) entity).df(); + }; @@ -181,13 +187,38 @@ if (this.dz() > 0) { i = this.dz() - 1; -- cgit v1.2.3