minecraft-src/net/minecraft/server/commands/VersionCommand.java
2025-09-18 12:27:44 +00:00

38 lines
2.2 KiB
Java

package net.minecraft.server.commands;
import com.mojang.brigadier.CommandDispatcher;
import java.util.function.Consumer;
import net.minecraft.SharedConstants;
import net.minecraft.WorldVersion;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
import net.minecraft.network.chat.Component;
import net.minecraft.server.packs.PackType;
public class VersionCommand {
private static final Component HEADER = Component.translatable("commands.version.header");
private static final Component STABLE = Component.translatable("commands.version.stable.yes");
private static final Component UNSTABLE = Component.translatable("commands.version.stable.no");
public static void register(CommandDispatcher<CommandSourceStack> dispatcher, boolean isDedicatedServer) {
dispatcher.register(Commands.literal("version").requires(Commands.hasPermission(isDedicatedServer ? 2 : 0)).executes(commandContext -> {
CommandSourceStack commandSourceStack = commandContext.getSource();
commandSourceStack.sendSystemMessage(HEADER);
dumpVersion(commandSourceStack::sendSystemMessage);
return 1;
}));
}
public static void dumpVersion(Consumer<Component> output) {
WorldVersion worldVersion = SharedConstants.getCurrentVersion();
output.accept(Component.translatable("commands.version.id", worldVersion.id()));
output.accept(Component.translatable("commands.version.name", worldVersion.name()));
output.accept(Component.translatable("commands.version.data", worldVersion.dataVersion().version()));
output.accept(Component.translatable("commands.version.series", worldVersion.dataVersion().series()));
output.accept(Component.translatable("commands.version.protocol", worldVersion.protocolVersion(), "0x" + Integer.toHexString(worldVersion.protocolVersion())));
output.accept(Component.translatable("commands.version.build_time", Component.translationArg(worldVersion.buildTime())));
output.accept(Component.translatable("commands.version.pack.resource", worldVersion.packVersion(PackType.CLIENT_RESOURCES)));
output.accept(Component.translatable("commands.version.pack.data", worldVersion.packVersion(PackType.SERVER_DATA)));
output.accept(worldVersion.stable() ? STABLE : UNSTABLE);
}
}