Java Spigot

Spigot ブロックの方向を設定し設置する

プラグインでブロックを設置するときに向きを設定する方法です。

マイクラのバージョンは1.18.2です。

ブロックを設置するコードはこちらの記事を参考にしてください。

方向を設定

blockをMaterialクラスからつくときにはoptionで方向や形などを設定できます。

今回は階段ブロックの向きをEASTに向けて設置します。

方向の種類はドキュメントに書かれています。

            String options = "[facing=east]";

            World world = Bukkit.getWorld("world");
            Block b = world.getBlockAt(200,70,-126);
            BlockData block = Material.getMaterial("OAK_STAIRS").createBlockData(options);

            b.setBlockData(block);

ドキュメントにはこのような書き方がされています。

            String dataString = "minecraft:oak_stairs[facing=east]";
            BlockData data = Bukkit.createBlockData(dataString);
            b.setBlockData(data);

形を変更

階段の形を変更して設置します。
形の種類はこちら

            String options = "[facing=east,shape=inner_right]";

            World world = Bukkit.getWorld("world");
            Block b = world.getBlockAt(200,70,-126);
            BlockData block = Material.getMaterial("OAK_STAIRS").createBlockData(options);

            b.setBlockData(block);

実際のブロックの情報を見る

置きたいブロックのオプションなど毎回、ドキュメントを見て書くのはめんどくさいので、実際に置いてあるブロックを壊したときにそのブロックの情報を見れるようにします。

メインクラスにイベントリスナーを継承し、onEnable()に下記コードを追加します。

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("plugin has started");
    }

このようにメインクラスに継承します

public final class TestProject extends JavaPlugin implements Listener {
}

ブロックの情報を表示

onBreakイベントでブロックデータをログに出力します

    @EventHandler
    public void onBreak(BlockBreakEvent e) {
        getLogger().info(e.getBlock().getBlockData().toString());
    }

-Java, Spigot