|
25 | 25 | package org.spongepowered.common.mixin.api.minecraft.server.level; |
26 | 26 |
|
27 | 27 | import com.google.common.collect.ImmutableList; |
| 28 | +import net.kyori.adventure.bossbar.BossBar; |
28 | 29 | import net.kyori.adventure.identity.Identity; |
29 | 30 | import net.kyori.adventure.pointer.Pointers; |
30 | 31 | import net.minecraft.core.BlockPos; |
|
41 | 42 | import net.minecraft.world.level.chunk.LevelChunk; |
42 | 43 | import net.minecraft.world.level.chunk.storage.RegionFile; |
43 | 44 | import net.minecraft.world.level.chunk.storage.RegionStorageInfo; |
| 45 | +import net.minecraft.world.level.dimension.end.EndDragonFight; |
44 | 46 | import net.minecraft.world.level.entity.PersistentEntitySectionManager; |
45 | 47 | import net.minecraft.world.level.material.Fluid; |
46 | 48 | import net.minecraft.world.level.storage.LevelResource; |
|
73 | 75 | import org.spongepowered.asm.mixin.Shadow; |
74 | 76 | import org.spongepowered.common.SpongeCommon; |
75 | 77 | import org.spongepowered.common.accessor.world.entity.raid.RaidsAccessor; |
| 78 | +import org.spongepowered.common.accessor.world.level.dimension.end.EndDragonFightAccessor; |
| 79 | +import org.spongepowered.common.adventure.SpongeAdventure; |
76 | 80 | import org.spongepowered.common.bridge.server.level.ServerLevelBridge; |
77 | 81 | import org.spongepowered.common.bridge.world.level.border.WorldBorderBridge; |
78 | 82 | import org.spongepowered.common.bridge.world.level.chunk.storage.RegionFileBridge; |
@@ -122,6 +126,7 @@ public abstract class ServerLevelMixin_API extends LevelMixin_API<org.spongepowe |
122 | 126 | @Shadow public abstract List<net.minecraft.server.level.ServerPlayer> shadow$players(); |
123 | 127 | @Shadow public abstract Raids shadow$getRaids(); |
124 | 128 | @Nullable @Shadow public abstract Raid shadow$getRaidAt(BlockPos p_217475_1_); |
| 129 | + @Nullable @Shadow public abstract EndDragonFight shadow$getDragonFight(); |
125 | 130 | @Shadow public abstract long shadow$getSeed(); |
126 | 131 | // @formatter:on |
127 | 132 |
|
@@ -258,6 +263,16 @@ public Optional<org.spongepowered.api.raid.Raid> raidAt(final Vector3i blockPosi |
258 | 263 | return Optional.ofNullable((org.spongepowered.api.raid.Raid) this.shadow$getRaidAt(VecHelper.toBlockPos(Objects.requireNonNull(blockPosition, "blockPosition")))); |
259 | 264 | } |
260 | 265 |
|
| 266 | + @Override |
| 267 | + public Optional<BossBar> dragonFightBossBar() { |
| 268 | + final @Nullable EndDragonFight fight = this.shadow$getDragonFight(); |
| 269 | + if (fight != null) { |
| 270 | + return Optional.of(SpongeAdventure.asAdventure(((EndDragonFightAccessor) fight).accessor$dragonEvent())); |
| 271 | + } else { |
| 272 | + return Optional.empty(); |
| 273 | + } |
| 274 | + } |
| 275 | + |
261 | 276 | // Volume |
262 | 277 |
|
263 | 278 | @Override |
|
0 commit comments