RCON commands lib for Minecraft Java edition.
$ dotnet add package RCON.Net.Commands.Minecraft.JavaMinecraft Java Edition-specific RCON commands with full response parsing and typed result models.
RCON.Net.Commands.Minecraft.Java provides a comprehensive set of pre-built commands for interacting with Minecraft Java Edition servers:
Install via NuGet:
dotnet add package RCON.Net.Commands.Minecraft.Java
using RCON.Core;
using RCON.Commands.Minecraft.Java;
// Create and connect client
var client = RconClientBuilder.Create()
.WithHost("127.0.0.1")
.WithPort(25575)
.WithPassword("your-password")
.Build();
await client.ConnectAsync();
// Get server version
var versionCommand = ServerCommands.GetVersion();
var versionResponse = await client.ExecuteAsync(versionCommand.Build());
var version = versionCommand.Parse<VersionResult>(versionResponse);
// Get player list
var listCommand = PlayerCommands.GetList();
var listResponse = await client.ExecuteAsync(listCommand.Build());
var playerList = listCommand.Parse<PlayerListResult>(listResponse);
Console.WriteLine($"Players online: {playerList?.OnlineCount}/{playerList?.MaxCount}");
foreach (var player in playerList?.Players ?? Array.Empty<Player>())
{
Console.WriteLine($" - {player.Name} ({player.Uuid})");
}
await client.DisconnectAsync();
PlayerCommands)// Get online players
var cmd = PlayerCommands.GetList();
var result = cmd.Parse<PlayerListResult>(response);
// Kick a player
var cmd = PlayerCommands.Kick("PlayerName", "reason");
// Teleport a player
var cmd = PlayerCommands.Teleport("PlayerName", 100, 64, -200);
// Kill a player
var cmd = PlayerCommands.Kill("PlayerName");
WhitelistCommands)// Add player to whitelist
var cmd = WhitelistCommands.AddPlayer("PlayerName");
// Remove player from whitelist
var cmd = WhitelistCommands.RemovePlayer("PlayerName");
// List whitelisted players
var cmd = WhitelistCommands.GetList();
var result = cmd.Parse<ListResult>(response);
// Enable/disable whitelist
var cmd = WhitelistCommands.EnableWhitelist();
var cmd = WhitelistCommands.DisableWhitelist();
// Reload whitelist
var cmd = WhitelistCommands.Reload();
BanCommands)// Ban a player
var cmd = BanCommands.BanPlayer("PlayerName", "reason");
// Pardon a player
var cmd = BanCommands.PardonPlayer("PlayerName");
// Ban an IP address
var cmd = BanCommands.BanIp("192.168.1.1", "reason");
// Pardon an IP address
var cmd = BanCommands.PardonIp("192.168.1.1");
// List banned players
var cmd = BanCommands.GetBannedPlayers();
var result = cmd.Parse<BanListResult>(response);
// List banned IPs
var cmd = BanCommands.GetBannedIps();
var result = cmd.Parse<BanListResult>(response);
OpCommands)// Grant operator status
var cmd = OpCommands.GiveOp("PlayerName");
// Revoke operator status
var cmd = OpCommands.RemoveOp("PlayerName");
DifficultyCommands)// Set difficulty
var cmd = DifficultyCommands.SetDifficulty(DifficultyLevel.Hard);
// Available levels: Peaceful, Easy, Normal, Hard
ServerCommands)// Get server version
var cmd = ServerCommands.GetVersion();
var result = cmd.Parse<VersionResult>(response);
Commands automatically parse responses into strongly-typed models:
public class PlayerListResult
{
public int OnlineCount { get; set; }
public int MaxCount { get; set; }
public Player[] Players { get; set; }
}
public class Player
{
public string Name { get; set; }
public string Uuid { get; set; }
}
public class BanListResult
{
public string[] Entries { get; set; }
}
public class ListResult
{
public string[] Players { get; set; }
}
public class OpResult
{
public string PlayerName { get; set; }
public OpStatus Status { get; set; }
}
public enum OpStatus
{
Granted,
Revoked
}
public class DifficultyResult
{
public DifficultyLevel Level { get; set; }
}
public enum DifficultyLevel
{
Peaceful = 0,
Easy = 1,
Normal = 2,
Hard = 3
}
public class VersionResult
{
public string Version { get; set; }
public int Protocol { get; set; }
}
Commands validate inputs and throw ArgumentException for invalid arguments:
try
{
var cmd = PlayerCommands.Kick(null!); // Throws ArgumentException
}
catch (ArgumentException ex)
{
Console.WriteLine($"Invalid argument: {ex.Message}");
}
✅ Comprehensive Minecraft command library
✅ Type-safe response parsing
✅ Strongly-typed result models
✅ Input validation
✅ Async/await support
✅ Well-documented API
Commands are based on official Minecraft server commands:
MIT License - See LICENSE file for details.