minecraft-src/net/minecraft/server/rcon/RconConsoleSource.java
2025-07-04 01:41:11 +03:00

61 lines
1.5 KiB
Java

package net.minecraft.server.rcon;
import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.network.chat.Component;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.phys.Vec2;
import net.minecraft.world.phys.Vec3;
public class RconConsoleSource implements CommandSource {
private static final String RCON = "Rcon";
private static final Component RCON_COMPONENT = Component.literal("Rcon");
private final StringBuffer buffer = new StringBuffer();
private final MinecraftServer server;
public RconConsoleSource(MinecraftServer server) {
this.server = server;
}
/**
* Clears the RCon log
*/
public void prepareForCommand() {
this.buffer.setLength(0);
}
/**
* Gets the contents of the RCon log
*/
public String getCommandResponse() {
return this.buffer.toString();
}
public CommandSourceStack createCommandSourceStack() {
ServerLevel serverLevel = this.server.overworld();
return new CommandSourceStack(
this, Vec3.atLowerCornerOf(serverLevel.getSharedSpawnPos()), Vec2.ZERO, serverLevel, 4, "Rcon", RCON_COMPONENT, this.server, null
);
}
@Override
public void sendSystemMessage(Component component) {
this.buffer.append(component.getString());
}
@Override
public boolean acceptsSuccess() {
return true;
}
@Override
public boolean acceptsFailure() {
return true;
}
@Override
public boolean shouldInformAdmins() {
return this.server.shouldRconBroadcast();
}
}