From 6757445814e306ebb844200054a17d940b987c19 Mon Sep 17 00:00:00 2001 From: Bjorn Beishline <75190918+BjornTheProgrammer@users.noreply.github.com> Date: Wed, 28 Jan 2026 02:01:51 -0700 Subject: [PATCH] Add back ServerBuildInfo --- .../PatchBukkitServerBuildInfo.java | 102 ++++++++++++++++++ .../services/io.papermc.paper.ServerBuildInfo | 1 + 2 files changed, 103 insertions(+) create mode 100644 java/patchbukkit/src/main/java/org/patchbukkit/PatchBukkitServerBuildInfo.java create mode 100644 java/patchbukkit/src/main/resources/META-INF/services/io.papermc.paper.ServerBuildInfo diff --git a/java/patchbukkit/src/main/java/org/patchbukkit/PatchBukkitServerBuildInfo.java b/java/patchbukkit/src/main/java/org/patchbukkit/PatchBukkitServerBuildInfo.java new file mode 100644 index 0000000..36905c6 --- /dev/null +++ b/java/patchbukkit/src/main/java/org/patchbukkit/PatchBukkitServerBuildInfo.java @@ -0,0 +1,102 @@ +package org.patchbukkit; + +import io.papermc.paper.ServerBuildInfo; +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.Optional; +import java.util.OptionalInt; +import net.kyori.adventure.key.Key; +import org.jetbrains.annotations.NotNull; + +public final class PatchBukkitServerBuildInfo implements ServerBuildInfo { + + Key brandId; + Instant startTime = Instant.now(); + private static final String BUILD_DEV = "DEV"; + + @Override + public Key brandId() { + this.brandId = Key.key("pumpkinmc:paper"); + return brandId; + } + + @Override + public boolean isBrandCompatible(Key brandId) { + return ( + brandId.equals(this.brandId) || + brandId.equals(Key.key("papermc:paper")) + ); + } + + @Override + public String brandName() { + return "Pumpkin"; + } + + @Override + public String minecraftVersionId() { + return "1.21.10"; + } + + @Override + public String minecraftVersionName() { + return "1.21.10"; + } + + @Override + public OptionalInt buildNumber() { + return OptionalInt.empty(); + } + + @Override + public Instant buildTime() { + return this.startTime; + } + + @Override + public Optional gitBranch() { + return Optional.empty(); + } + + @Override + public Optional gitCommit() { + return Optional.empty(); + } + + @Override + public @NotNull String asString( + final @NotNull StringRepresentation representation + ) { + final StringBuilder sb = new StringBuilder(); + sb.append(this.minecraftVersionId()); + sb.append('-'); + if (this.buildNumber().isPresent()) { + sb.append(this.buildNumber().getAsInt()); + } else { + sb.append(BUILD_DEV); + } + final boolean hasGitBranch = this.gitBranch().isPresent(); + final boolean hasGitCommit = this.gitCommit().isPresent(); + if (hasGitBranch || hasGitCommit) { + sb.append('-'); + } + if ( + hasGitBranch && representation == StringRepresentation.VERSION_FULL + ) { + sb.append(this.gitBranch().get()); + if (hasGitCommit) { + sb.append('@'); + } + } + if (hasGitCommit) { + sb.append(this.gitCommit().get()); + } + if (representation == StringRepresentation.VERSION_FULL) { + sb.append(' '); + sb.append('('); + sb.append(this.buildTime().truncatedTo(ChronoUnit.SECONDS)); + sb.append(')'); + } + return sb.toString(); + } +} diff --git a/java/patchbukkit/src/main/resources/META-INF/services/io.papermc.paper.ServerBuildInfo b/java/patchbukkit/src/main/resources/META-INF/services/io.papermc.paper.ServerBuildInfo new file mode 100644 index 0000000..7ff0582 --- /dev/null +++ b/java/patchbukkit/src/main/resources/META-INF/services/io.papermc.paper.ServerBuildInfo @@ -0,0 +1 @@ +org.patchbukkit.PatchBukkitServerBuildInfo