mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 15:00:13 +01:00
add number format api
== AT == public net.minecraft.network.chat.numbers.FixedFormat value public net.minecraft.network.chat.numbers.StyledFormat style
This commit is contained in:
parent
380cb52e43
commit
10a15650f1
3 changed files with 101 additions and 0 deletions
|
@ -0,0 +1,38 @@
|
|||
package io.papermc.paper.util;
|
||||
|
||||
import io.papermc.paper.adventure.PaperAdventure;
|
||||
import io.papermc.paper.scoreboard.numbers.NumberFormat;
|
||||
|
||||
public final class PaperScoreboardFormat {
|
||||
|
||||
private PaperScoreboardFormat() {
|
||||
}
|
||||
|
||||
public static net.minecraft.network.chat.numbers.NumberFormat asVanilla(final NumberFormat format) {
|
||||
final net.minecraft.network.chat.numbers.NumberFormat vanilla;
|
||||
if (format instanceof final io.papermc.paper.scoreboard.numbers.StyledFormat styled) {
|
||||
vanilla = new net.minecraft.network.chat.numbers.StyledFormat(PaperAdventure.asVanilla(styled.style()));
|
||||
} else if (format instanceof final io.papermc.paper.scoreboard.numbers.FixedFormat fixed) {
|
||||
vanilla = new net.minecraft.network.chat.numbers.FixedFormat(io.papermc.paper.adventure.PaperAdventure
|
||||
.asVanilla(fixed.component()));
|
||||
} else if (format.equals(NumberFormat.blank())) {
|
||||
vanilla = net.minecraft.network.chat.numbers.BlankFormat.INSTANCE;
|
||||
} else {
|
||||
throw new IllegalArgumentException("Unknown format type " + format.getClass());
|
||||
}
|
||||
|
||||
return vanilla;
|
||||
}
|
||||
|
||||
public static NumberFormat asPaper(final net.minecraft.network.chat.numbers.NumberFormat vanilla) {
|
||||
if (vanilla instanceof final net.minecraft.network.chat.numbers.StyledFormat styled) {
|
||||
return NumberFormat.styled(PaperAdventure.asAdventure(styled.style));
|
||||
} else if (vanilla instanceof final net.minecraft.network.chat.numbers.FixedFormat fixed) {
|
||||
return NumberFormat.fixed(io.papermc.paper.adventure.PaperAdventure.asAdventure(fixed.value));
|
||||
} else if (vanilla instanceof net.minecraft.network.chat.numbers.BlankFormat) {
|
||||
return NumberFormat.blank();
|
||||
}
|
||||
|
||||
throw new IllegalArgumentException("Unknown format type " + vanilla.getClass());
|
||||
}
|
||||
}
|
|
@ -153,6 +153,34 @@ final class CraftObjective extends CraftScoreboardComponent implements Objective
|
|||
}
|
||||
// Paper end
|
||||
|
||||
// Paper start - add number format
|
||||
@Override
|
||||
public io.papermc.paper.scoreboard.numbers.NumberFormat numberFormat() {
|
||||
this.checkState();
|
||||
|
||||
net.minecraft.network.chat.numbers.NumberFormat vanilla = this.objective.numberFormat();
|
||||
|
||||
if (vanilla == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return io.papermc.paper.util.PaperScoreboardFormat.asPaper(vanilla);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void numberFormat(io.papermc.paper.scoreboard.numbers.NumberFormat format) {
|
||||
this.checkState();
|
||||
|
||||
if (format == null) {
|
||||
this.objective.setNumberFormat(null);
|
||||
return;
|
||||
}
|
||||
|
||||
this.objective.setNumberFormat(io.papermc.paper.util.PaperScoreboardFormat.asVanilla(format));
|
||||
}
|
||||
// Paper end - add number format
|
||||
|
||||
@Override
|
||||
public void unregister() {
|
||||
CraftScoreboard scoreboard = this.checkState();
|
||||
|
|
|
@ -55,6 +55,41 @@ final class CraftScore implements Score {
|
|||
this.objective.checkState().board.getOrCreatePlayerScore(this.entry, this.objective.getHandle()).set(score);
|
||||
}
|
||||
|
||||
|
||||
// Paper start - add number format
|
||||
@Override
|
||||
public io.papermc.paper.scoreboard.numbers.NumberFormat numberFormat() {
|
||||
ReadOnlyScoreInfo scoreInfo = this.objective.checkState().board
|
||||
.getPlayerScoreInfo(this.entry, this.objective.getHandle());
|
||||
|
||||
if (scoreInfo == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
net.minecraft.network.chat.numbers.NumberFormat vanilla = scoreInfo.numberFormat();
|
||||
|
||||
if (vanilla == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return io.papermc.paper.util.PaperScoreboardFormat.asPaper(vanilla);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void numberFormat(io.papermc.paper.scoreboard.numbers.NumberFormat format) {
|
||||
final net.minecraft.world.scores.ScoreAccess access = this.objective.checkState()
|
||||
.board.getOrCreatePlayerScore(this.entry, this.objective.getHandle());
|
||||
|
||||
if (format == null) {
|
||||
access.numberFormatOverride(null);
|
||||
return;
|
||||
}
|
||||
|
||||
access.numberFormatOverride(io.papermc.paper.util.PaperScoreboardFormat.asVanilla(format));
|
||||
}
|
||||
// Paper end - add number format
|
||||
|
||||
@Override
|
||||
public boolean isScoreSet() {
|
||||
Scoreboard board = this.objective.checkState().board;
|
||||
|
|
Loading…
Reference in a new issue