日本語版はこちら
MinecraftConnection is a library for sending commands via RCON using C# to help you learn and automate your programming. It can be run on a vanilla server as well as a Spigot server, including plugins. Before running the program, you need to start a Minecraft server that allows RCON connections.
First, download the Minecraft Server software and run it in any game directory. A server configuration file called server.properties
will be created. Specify the password and port number for the RCON connection, and enable the connection.
Configuration example :
rcon.port=25575
rcon.password=minecraft
enable-rcon=true
After adding it save the file and restart the server. Launch Minecraft launcher and log in to the server.
This library is intended for .NET Standard 2.1
and above. This section describes how to create a .NET 6 console application.
Install MinecraftConnection
with the NuGet package manager, or run the following command in the package manager console.
Install-Package MinecraftConnection
dotnet command:
dotnet add package MinecraftConnection
Detail:https://www.nuget.org/packages/MinecraftConnection
To run the program, start Minecraft Server and Minecraft itself (already logged in to the server).
Top-level statements are used here.
using MinecraftConnection;
// IP address or DNS name.
string address = "127.0.0.1";
ushort port = 25575;
string pass = "minecraft";
MinecraftCommands command = new MinecraftCommands(address, port, pass);
command.TimeSet(0);
using MinecraftConnection;
using MinecraftConnection.Entity;
string address = "127.0.0.1";
ushort port = 25575;
string pass = "minecraft";
MinecraftCommands command = new MinecraftCommands(address, port, pass);
// Define the coordinates at which you want to launch
Position pos = new Position(-516, 64, -205);
// Make a fireworks
Fireworks fireworks = new Fireworks()
{
LifeTime = 30, // Time to explosion
Type = FireworkType.LargeBall, // Fireworks type
Colors = FireworkOption.RandomColor(), // Fireworks color (RandomColor() is get random color)
FadeColors = new List<FireworkColors> { FireworkColors.WHITE }, // after explosion color
};
// Set off fireworks at defined position
command.SetOffFireworks(pos, fireworks);
Result :
Various fireworks can be set off depending on your ingenuity. If you would like to try it, please refer to this page.
https://zenn.dev/takunology/scraps/9462b03d13dd0a
You can retrieve items in a chest and sort them by ID or by count.
The following source code allows you to sort items by name by using the SortById()
method on the retrieved item data. The MinecraftConnection.Extends
directive declaration is required to use the sorting method.
using MinecraftConnection;
using MinecraftConnection.Extends;
string address = "127.0.0.1";
ushort port = 25575;
string pass = "minecraft";
MinecraftCommands command = new MinecraftCommands(address, port, pass);
// Declare the coordinates of the "Chest block" or "Shulker box".
var pos = new Position(-502, 63, -213);
// Get the items in the chest.
var chestitems = command.GetChestItems(pos);
// Sort the acquired items and overwrite them in the chest again.
command.SetChestItems(pos, chestitems.SortByIdDescending());
Result:
The PlaySound()
method can be used to play Minecraft sound effects. Sound effects are stored in the Sound
enumeration.
ushort sub = 230;
ushort main = 230;
for(int i = 0; i < 3; i++)
{
command.PlaySound(Sound.Bell);
command.Wait(430);
}
command.PlaySound(Sound.CowBell);
command.Wait(430);
for (int i = 0; i < 4; i++)
{
command.PlaySound(Sound.BaseDrum);
command.Wait(sub);
command.PlaySound(Sound.Hat);
command.Wait(main);
command.PlaySound(Sound.BaseDrum);
command.PlaySound(Sound.Snare);
command.Wait(sub);
command.PlaySound(Sound.Hat);
command.Wait(main);
command.PlaySound(Sound.BaseDrum);
command.Wait(sub);
command.PlaySound(Sound.Hat);
command.Wait(main);
command.PlaySound(Sound.BaseDrum);
command.PlaySound(Sound.Snare);
command.Wait(sub);
command.PlaySound(Sound.Hat);
command.Wait(main);
}
Running example at X (Twitter)
https://twitter.com/takunology_net/status/1695049583615963590?s=20
The stop command is disabled due to the risk of stopping the server by RCON remote control. Executing the stop command in SendCommand method will raise an exception.
Project Detail: https://www.mcwithcode.com/