package net.glowstone.net.message.play.scoreboard; import com.flowpowered.networking.Message; import lombok.AccessLevel; import lombok.Data; import lombok.RequiredArgsConstructor; import org.bukkit.scoreboard.RenderType; @Data @RequiredArgsConstructor(access = AccessLevel.PRIVATE) public final class ScoreboardObjectiveMessage implements Message { public final String name; public final String displayName; public final int action; public final RenderType renderType; public enum Action { CREATE, REMOVE, UPDATE } public static ScoreboardObjectiveMessage create(String name, String displayName) { return new ScoreboardObjectiveMessage(name, displayName, Action.CREATE.ordinal(), RenderType.INTEGER); } public static ScoreboardObjectiveMessage create(String name, String displayName, RenderType renderType) { return new ScoreboardObjectiveMessage(name, displayName, Action.CREATE.ordinal(), renderType); } public static ScoreboardObjectiveMessage remove(String name) { return new ScoreboardObjectiveMessage(name, null, Action.REMOVE.ordinal(), null); } public static ScoreboardObjectiveMessage update(String name, String displayName) { return new ScoreboardObjectiveMessage(name, displayName, Action.UPDATE.ordinal(), RenderType.INTEGER); } public static ScoreboardObjectiveMessage update(String name, String displayName, RenderType renderType) { return new ScoreboardObjectiveMessage(name, displayName, Action.UPDATE.ordinal(), renderType); } }