MinecraftConnection 2.1.0

dotnet add package MinecraftConnection --version 2.1.0                
NuGet\Install-Package MinecraftConnection -Version 2.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MinecraftConnection" Version="2.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MinecraftConnection --version 2.1.0                
#r "nuget: MinecraftConnection, 2.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install MinecraftConnection as a Cake Addin
#addin nuget:?package=MinecraftConnection&version=2.1.0

// Install MinecraftConnection as a Cake Tool
#tool nuget:?package=MinecraftConnection&version=2.1.0                

MinecraftConnection

alternate text is missing from this package README image

Nuget (with prereleases) Nuget alternate text is missing from this package README image GitHub

日本語版はこちら

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.

1. Preparation

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. </br>

2. Create Project

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

3. Sample programs

To run the program, start Minecraft Server and Minecraft itself (already logged in to the server). </br> Top-level statements are used here.

3.1 Set the time to 0

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);

3.2 Set off fireworks

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 :

alternate text is missing from this package README image

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

3.3 Sorting items in a chest

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:

alternate text is missing from this package README image

3.4 Play sound

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

4. Caution

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/

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.1.0 981 8/25/2023
2.0.2 425 4/9/2023
2.0.1 698 8/20/2022
2.0.0 494 8/20/2022
2.0.0-preview1 315 6/6/2022
1.1.1 701 2/15/2022
1.1.0 530 8/10/2021
1.0.1 424 8/9/2021
1.0.0 424 8/3/2021
1.0.0-beta2 330 7/18/2021
1.0.0-beta1 382 6/29/2021

Version 2.1.0

- Add PlaySound() method and "Minecraft block note" sounds
- Add Teleport() method
- Fixed a misspelling of "Position" in LivingEntity class