minecraft-src/net/minecraft/world/scores/DisplaySlot.java
2025-07-04 02:00:41 +03:00

72 lines
2.3 KiB
Java

package net.minecraft.world.scores;
import java.util.function.IntFunction;
import net.minecraft.ChatFormatting;
import net.minecraft.util.ByIdMap;
import net.minecraft.util.StringRepresentable;
import net.minecraft.util.ByIdMap.OutOfBoundsStrategy;
import org.jetbrains.annotations.Nullable;
public enum DisplaySlot implements StringRepresentable {
LIST(0, "list"),
SIDEBAR(1, "sidebar"),
BELOW_NAME(2, "below_name"),
TEAM_BLACK(3, "sidebar.team.black"),
TEAM_DARK_BLUE(4, "sidebar.team.dark_blue"),
TEAM_DARK_GREEN(5, "sidebar.team.dark_green"),
TEAM_DARK_AQUA(6, "sidebar.team.dark_aqua"),
TEAM_DARK_RED(7, "sidebar.team.dark_red"),
TEAM_DARK_PURPLE(8, "sidebar.team.dark_purple"),
TEAM_GOLD(9, "sidebar.team.gold"),
TEAM_GRAY(10, "sidebar.team.gray"),
TEAM_DARK_GRAY(11, "sidebar.team.dark_gray"),
TEAM_BLUE(12, "sidebar.team.blue"),
TEAM_GREEN(13, "sidebar.team.green"),
TEAM_AQUA(14, "sidebar.team.aqua"),
TEAM_RED(15, "sidebar.team.red"),
TEAM_LIGHT_PURPLE(16, "sidebar.team.light_purple"),
TEAM_YELLOW(17, "sidebar.team.yellow"),
TEAM_WHITE(18, "sidebar.team.white");
public static final StringRepresentable.EnumCodec<DisplaySlot> CODEC = StringRepresentable.fromEnum(DisplaySlot::values);
public static final IntFunction<DisplaySlot> BY_ID = ByIdMap.continuous(DisplaySlot::id, values(), OutOfBoundsStrategy.ZERO);
private final int id;
private final String name;
private DisplaySlot(final int id, final String name) {
this.id = id;
this.name = name;
}
public int id() {
return this.id;
}
@Override
public String getSerializedName() {
return this.name;
}
@Nullable
public static DisplaySlot teamColorToSlot(ChatFormatting formatting) {
return switch (formatting) {
case BLACK -> TEAM_BLACK;
case DARK_BLUE -> TEAM_DARK_BLUE;
case DARK_GREEN -> TEAM_DARK_GREEN;
case DARK_AQUA -> TEAM_DARK_AQUA;
case DARK_RED -> TEAM_DARK_RED;
case DARK_PURPLE -> TEAM_DARK_PURPLE;
case GOLD -> TEAM_GOLD;
case GRAY -> TEAM_GRAY;
case DARK_GRAY -> TEAM_DARK_GRAY;
case BLUE -> TEAM_BLUE;
case GREEN -> TEAM_GREEN;
case AQUA -> TEAM_AQUA;
case RED -> TEAM_RED;
case LIGHT_PURPLE -> TEAM_LIGHT_PURPLE;
case YELLOW -> TEAM_YELLOW;
case WHITE -> TEAM_WHITE;
case BOLD, ITALIC, UNDERLINE, RESET, OBFUSCATED, STRIKETHROUGH -> null;
};
}
}