Quantcast
Channel: ひでぼ~blog
Viewing all articles
Browse latest Browse all 40

MinecraftConnectionを試す

$
0
0

C#でマイクラがアツイという噂を聞いたので試してみます。

準備

サーバー

マインクラフトのサーバーをあらかじめ用意しておきます。 Dockerで動かすのが一番ラクそうだったのでこちらのDockerイメージを使ってサーバーを動かしました。

hub.docker.com

docker runする際に25565に加えて25575のポートも使えるようにしておきます。このポートはこの後つくるC#プログラムからマイクラサーバと通信するために使います。

docker run -e EULA=TRUE -d -p 25565:25565 -p 25575:25575 --name mc itzg/minecraft-server

クライアント

MinecraftJava Editionを使います。バージョンは1.92.2です。

ライブラリ

C#でマイクラサーバーをいじれるMinecraftConnectionというライブラリを使います。 Nugetパッケージが公開されているのでインストールしておきます。

www.nuget.org

その他

次のような環境でプログラムを書きます。

Hello Worldする

サーバーとの疎通確認も兼ねて、画面にHello World!と表示させてみます。passはRCON用のパスワードでserver.propertiesに記載があります。

using MinecraftConnection;

var address ="127.0.0.1";
ushort port =25575;
var pass ="minecraft";
var command =new MinecraftCommands(address, port, pass);

command.DisplayTitle("Hello, Minecraft!");

大雨の中ですが表示できました。

花火を打ち上げてみる

花火を打ち上げるAPIがあったので打ち上げてみました。 打ち上げる位置はPositionというクラスにx, y, zの座標を渡してnewします。

using MinecraftConnection;
using MinecraftConnection.Entity;

var address ="127.0.0.1";
ushort port =25575;
var pass ="minecraft";
var command =new MinecraftCommands(address, port, pass);

var position =new Position(-101.5, 66.0, -51.5);
var fireworks =new Fireworks()
{
    LifeTime =30,
    Type = FireworkType.LargeBall,
    Colors = FireworkOption.RandomColor(),
    FadeColors =new List<FireworkColors> { FireworkColors.WHITE },
};

command.SetOffFireworks(position, fireworks);

花火が打ちあがりました。エモいですね。


Viewing all articles
Browse latest Browse all 40

Trending Articles