Java Spigot

Spigot ブロックを置くコード 1.18.2

ブロックを置きたいときに使えます。

基本的にはおきたい座標のブロックを新しいブロックに置換するような処理になります。

テストコードなのでコマンドで実行できるようにします。

コマンドの登録

テスト用にコマンドを実行したときにブロックを置くようにしたいので、コマンドの登録をします。

src/main/resources/plugin.yml

こちらのファイルに以下のコードを追加します。

name: testProject
version: '${project.version}'
main: testproject.testproject.TestProject
api-version: 1.18
authors: [ Chobi ]
description: test code


//ここから追加
commands:
  test:
    description: place a block command
    aliases: [t, d]

メインコード

下記は全体のコードです。その下に解説します。

package testproject.testproject;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.data.BlockData;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;

public final class TestProject extends JavaPlugin {

    @Override
    public void onEnable() {
        // Plugin startup logic

    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (label.equalsIgnoreCase("test")) {
            sender.sendMessage("コマンドが実行されました");

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

        return true;
    }
}

置く処理

ブロックIDはこちらのようなサイトなどで検索できます。

https://minecraftitemids.com/

World world = Bukkit.getWorld("world"); //ここでワールドをゲット、違う世界(ネザー等)なら名前を変更する
Block b = world.getBlockAt(200,70,-126); //ここで座標のブロックをゲット、置きたい座標に自分で変えてください。(x,y,z)
BlockData block = Material.getMaterial("OAK_WOOD").createBlockData(); //ここで置きたいブロックをゲット。アイテムをSTRINGでゲットできるので便利。
b.setBlockData(block); //ここでブロックを置く

ほかのブロックも置いてみる

もちろん階段や松明も設置できます

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

            b = world.getBlockAt(200,70,-127);
            block = Material.getMaterial("TORCH").createBlockData();
            b.setBlockData(block);

            b = world.getBlockAt(200,70,-128);
            block = Material.getMaterial("OAK_STAIRS").createBlockData();
            b.setBlockData(block);

ブロックのオプション

ブロックの形や方向を指定して設置する方法はこちら↓

Java Spigot

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

2022/5/6  

プラグインでブロックを設置するときに向きを設定する方法です。 マイクラのバージョンは1.18.2です。 ブロックを設置するコードはこちらの記事を参考にしてください。 方向を設定 blockをMater ...

-Java, Spigot