Co-authored-by: Bjarne Koll <git@lynxplay.dev>
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
Co-authored-by: MiniDigger | Martin <admin@minidigger.dev>
Co-authored-by: Nassim Jahnke <nassim@njahnke.dev>
Co-authored-by: Noah van der Aa <ndvdaa@gmail.com>
Co-authored-by: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
Co-authored-by: Shane Freeder <theboyetronic@gmail.com>
Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
Co-authored-by: Tamion <70228790+notTamion@users.noreply.github.com>
Co-authored-by: Warrior <50800980+Warriorrrr@users.noreply.github.com>
This commit is contained in:
Nassim Jahnke
2025-04-12 17:26:44 +02:00
parent 0767902699
commit f00727c57e
2092 changed files with 50551 additions and 48729 deletions

View File

@@ -48,51 +48,37 @@ public class CraftBossBar implements BossBar {
private void initialize() {
this.flags = new HashMap<>();
this.flags.put(BarFlag.DARKEN_SKY, new FlagContainer(handle::shouldDarkenScreen, handle::setDarkenScreen));
this.flags.put(BarFlag.PLAY_BOSS_MUSIC, new FlagContainer(handle::shouldPlayBossMusic, handle::setPlayBossMusic));
this.flags.put(BarFlag.CREATE_FOG, new FlagContainer(handle::shouldCreateWorldFog, handle::setCreateWorldFog));
this.flags.put(BarFlag.DARKEN_SKY, new FlagContainer(this.handle::shouldDarkenScreen, this.handle::setDarkenScreen));
this.flags.put(BarFlag.PLAY_BOSS_MUSIC, new FlagContainer(this.handle::shouldPlayBossMusic, this.handle::setPlayBossMusic));
this.flags.put(BarFlag.CREATE_FOG, new FlagContainer(this.handle::shouldCreateWorldFog, this.handle::setCreateWorldFog));
}
private BarColor convertColor(BossEvent.BossBarColor color) {
BarColor bukkitColor = BarColor.valueOf(color.name());
return (bukkitColor == null) ? BarColor.WHITE : bukkitColor;
return BarColor.valueOf(color.name());
}
private BossEvent.BossBarColor convertColor(BarColor color) {
BossEvent.BossBarColor nmsColor = BossEvent.BossBarColor.valueOf(color.name());
return (nmsColor == null) ? BossEvent.BossBarColor.WHITE : nmsColor;
return BossEvent.BossBarColor.valueOf(color.name());
}
private BossEvent.BossBarOverlay convertStyle(BarStyle style) {
switch (style) {
default:
case SOLID:
return BossEvent.BossBarOverlay.PROGRESS;
case SEGMENTED_6:
return BossEvent.BossBarOverlay.NOTCHED_6;
case SEGMENTED_10:
return BossEvent.BossBarOverlay.NOTCHED_10;
case SEGMENTED_12:
return BossEvent.BossBarOverlay.NOTCHED_12;
case SEGMENTED_20:
return BossEvent.BossBarOverlay.NOTCHED_20;
}
return switch (style) {
case SOLID -> BossEvent.BossBarOverlay.PROGRESS;
case SEGMENTED_6 -> BossEvent.BossBarOverlay.NOTCHED_6;
case SEGMENTED_10 -> BossEvent.BossBarOverlay.NOTCHED_10;
case SEGMENTED_12 -> BossEvent.BossBarOverlay.NOTCHED_12;
case SEGMENTED_20 -> BossEvent.BossBarOverlay.NOTCHED_20;
};
}
private BarStyle convertStyle(BossEvent.BossBarOverlay style) {
switch (style) {
default:
case PROGRESS:
return BarStyle.SOLID;
case NOTCHED_6:
return BarStyle.SEGMENTED_6;
case NOTCHED_10:
return BarStyle.SEGMENTED_10;
case NOTCHED_12:
return BarStyle.SEGMENTED_12;
case NOTCHED_20:
return BarStyle.SEGMENTED_20;
}
return switch (style) {
case PROGRESS -> BarStyle.SOLID;
case NOTCHED_6 -> BarStyle.SEGMENTED_6;
case NOTCHED_10 -> BarStyle.SEGMENTED_10;
case NOTCHED_12 -> BarStyle.SEGMENTED_12;
case NOTCHED_20 -> BarStyle.SEGMENTED_20;
};
}
@Override
@@ -217,8 +203,8 @@ public class CraftBossBar implements BossBar {
private final class FlagContainer {
private Supplier<Boolean> get;
private Consumer<Boolean> set;
private final Supplier<Boolean> get;
private final Consumer<Boolean> set;
private FlagContainer(Supplier<Boolean> get, Consumer<Boolean> set) {
this.get = get;

View File

@@ -4,6 +4,7 @@ import com.google.common.base.Preconditions;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.block.state.pattern.BlockPattern;
@@ -75,10 +76,10 @@ public class CraftDragonBattle implements DragonBattle {
@Override
public boolean initiateRespawn(Collection<EnderCrystal> list) {
if (this.hasBeenPreviouslyKilled() && this.getRespawnPhase() == RespawnPhase.NONE) {
// Copy from EnderDragonBattle#tryRespawn for generate exit portal if not exists
// Copy from EndDragonFight#tryRespawn for generate exit portal if not exists
if (this.handle.portalLocation == null) {
BlockPattern.BlockPatternMatch shapedetector_shapedetectorcollection = this.handle.findExitPortal();
if (shapedetector_shapedetectorcollection == null) {
BlockPattern.BlockPatternMatch patternMatch = this.handle.findExitPortal();
if (patternMatch == null) {
this.handle.spawnExitPortal(true);
}
}
@@ -137,7 +138,7 @@ public class CraftDragonBattle implements DragonBattle {
private DragonRespawnAnimation toNMSRespawnPhase(RespawnPhase phase) {
return (phase != RespawnPhase.NONE) ? DragonRespawnAnimation.values()[phase.ordinal()] : null;
}
// Paper start - More DragonBattle API
@Override
public int getGatewayCount() {
return EndDragonFight.GATEWAY_COUNT - this.handle.gateways.size();
@@ -154,29 +155,28 @@ public class CraftDragonBattle implements DragonBattle {
}
@Override
public java.util.List<org.bukkit.entity.EnderCrystal> getRespawnCrystals() {
public List<org.bukkit.entity.EnderCrystal> getRespawnCrystals() {
if (this.handle.respawnCrystals == null) {
return java.util.Collections.emptyList();
return Collections.emptyList();
}
final java.util.List<org.bukkit.entity.EnderCrystal> enderCrystals = new java.util.ArrayList<>();
final List<EnderCrystal> enderCrystals = new ArrayList<>();
for (final net.minecraft.world.entity.boss.enderdragon.EndCrystal endCrystal : this.handle.respawnCrystals) {
if (!endCrystal.isRemoved() && endCrystal.isAlive() && endCrystal.valid) {
enderCrystals.add(((org.bukkit.entity.EnderCrystal) endCrystal.getBukkitEntity()));
enderCrystals.add(((EnderCrystal) endCrystal.getBukkitEntity()));
}
}
return java.util.Collections.unmodifiableList(enderCrystals);
return Collections.unmodifiableList(enderCrystals);
}
@Override
public java.util.List<org.bukkit.entity.EnderCrystal> getHealingCrystals() {
final java.util.List<org.bukkit.entity.EnderCrystal> enderCrystals = new java.util.ArrayList<>();
public List<EnderCrystal> getHealingCrystals() {
final List<EnderCrystal> enderCrystals = new ArrayList<>();
for (final net.minecraft.world.entity.boss.enderdragon.EndCrystal endCrystal : this.handle.getSpikeCrystals()) {
if (!endCrystal.isRemoved() && endCrystal.isAlive() && endCrystal.valid) {
enderCrystals.add(((org.bukkit.entity.EnderCrystal) endCrystal.getBukkitEntity()));
enderCrystals.add(((EnderCrystal) endCrystal.getBukkitEntity()));
}
}
return java.util.Collections.unmodifiableList(enderCrystals);
return Collections.unmodifiableList(enderCrystals);
}
// Paper end - More DragonBattle API
}