Skip to content

Commit cc52fba

Browse files
committed
Add ServerWorld#dragonFightBossBar()
1 parent 0574fc2 commit cc52fba

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

src/mixins/java/org/spongepowered/common/mixin/api/minecraft/server/level/ServerLevelMixin_API.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
package org.spongepowered.common.mixin.api.minecraft.server.level;
2626

2727
import com.google.common.collect.ImmutableList;
28+
import net.kyori.adventure.bossbar.BossBar;
2829
import net.kyori.adventure.identity.Identity;
2930
import net.kyori.adventure.pointer.Pointers;
3031
import net.minecraft.core.BlockPos;
@@ -41,6 +42,7 @@
4142
import net.minecraft.world.level.chunk.LevelChunk;
4243
import net.minecraft.world.level.chunk.storage.RegionFile;
4344
import net.minecraft.world.level.chunk.storage.RegionStorageInfo;
45+
import net.minecraft.world.level.dimension.end.EndDragonFight;
4446
import net.minecraft.world.level.entity.PersistentEntitySectionManager;
4547
import net.minecraft.world.level.material.Fluid;
4648
import net.minecraft.world.level.storage.LevelResource;
@@ -73,6 +75,8 @@
7375
import org.spongepowered.asm.mixin.Shadow;
7476
import org.spongepowered.common.SpongeCommon;
7577
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;
7680
import org.spongepowered.common.bridge.server.level.ServerLevelBridge;
7781
import org.spongepowered.common.bridge.world.level.border.WorldBorderBridge;
7882
import org.spongepowered.common.bridge.world.level.chunk.storage.RegionFileBridge;
@@ -122,6 +126,7 @@ public abstract class ServerLevelMixin_API extends LevelMixin_API<org.spongepowe
122126
@Shadow public abstract List<net.minecraft.server.level.ServerPlayer> shadow$players();
123127
@Shadow public abstract Raids shadow$getRaids();
124128
@Nullable @Shadow public abstract Raid shadow$getRaidAt(BlockPos p_217475_1_);
129+
@Nullable @Shadow public abstract EndDragonFight shadow$getDragonFight();
125130
@Shadow public abstract long shadow$getSeed();
126131
// @formatter:on
127132

@@ -258,6 +263,16 @@ public Optional<org.spongepowered.api.raid.Raid> raidAt(final Vector3i blockPosi
258263
return Optional.ofNullable((org.spongepowered.api.raid.Raid) this.shadow$getRaidAt(VecHelper.toBlockPos(Objects.requireNonNull(blockPosition, "blockPosition"))));
259264
}
260265

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+
261276
// Volume
262277

263278
@Override

0 commit comments

Comments
 (0)