【Spigot】Bukkitプラグインの作り方講座
今回は、プレイヤーの移動と回転を検出する方法を紹介します。 ※バージョン1.16時点の情報です。異なるバージョンでは対応できない場合があります。 PlayerMoveEvent できること プレイヤーの移動と回転をキャンセルする 移動だけできないようにする(回転は…
今回は実際に簡単なプラグインを作成します。 この作業はプラグインごとに行いますので、覚えてください。 プロジェクトの作成 ビルド設定 プラグインの設定 Jarファイルを作成する Gradleを日本語のコードに対応する プラグインを導入する プロジェクトの作…
今回はIntelliJ IDEAを使った開発環境の IntelliJ IDEA のダウンロード、インストール Minecraft Development のインストール Spigotサーバーを立てる Spigotサーバーをダウンロード サーバーをたてる準備 batファイルを作成する サーバーを起動する Intelli…
サーバー オフラインプレイヤーとオンラインプレイヤー BANリスト サーバーの情報 ConsoleCommandSender サーバー サーバーはJavaPluginのgetServer()で取得できます。 getServer().addRecipe(Recipe)でレシピを追加したり、 getServer().banIP("192.168.1.1…
メッセージに色や装飾を付けるChatColor @EventHandler public void onEntityDamageByEntity(EntityDamageByEntityEvent e) { e.getDamager().sendMessage(ChatColor.RED + "いたいよ~"); } 以上のコードでは、エンティティがエンティティにダメージを与え…
外部プラグインとの連携 IntelliJ IDEAでの設定(Gradle) 必須プラグインの設定 プラグインを読み込む順序 外部プラグインとの連携 例えば、「経済プラグインと連携したい」と言った場合など、 プラグインなどをAPIとして利用して連携したい場合があります…
CraftBukkitの利用と複数のバージョンに対応させる方法 ここらへんは少し難しい話になります。 Bukkit、Spigotではクラスではなくインターフェースが多用されていますが、 インターフェースということはそれを実装するクラスがあるということです。 実はそれ…
ブロックのワールドを取得 ワールドの任意の場所のブロックを取得 ブロックの破壊 ブロックのワールドを取得 ブロックのワールドを取得します ワールドの任意の場所のブロックを取得 ワールドの任意の場所のブロックを取得します。 world.getBlockAt(x,y,z) …
インベントリを持っているエンティティにはInventoryHolderインターフェースが継承されています。 InventoryHolderインターフェースを持っているのはエンティティだけではなく、チェストなどのブロックにもあります。 ``` @EventHandler public void onInven…
Bukkitプラグインとは Bukkitとは、ゲーム「Minecraft」のサーバーModの一つ。 Bukkitには、プラグインを入れることで通常の「バニラサーバー」では出来ない機能を追加できる。 プラグインはModのようにブロックやアイテムを追加することは出来ない。 2017年…
今回は、エンティティを移動します。 エンティティをテレポートさせる ベクトルを操作して、移動させる エンティティをテレポートさせる エンティティをテレポートさせるには、 entity.teleport(entity) entity.teleport(location) を使います。 引数にEntit…
今回はEventシステムを使って、エンティティにダメージを与えます。 エンティティにダメージを与える エンティティにダメージを与える Entity entity = e.getEntity(); if (entity instanceof LivingEntity) { double damage = 1.0; ((LivingEntity) entity)…
今回はEventシステムを使って、エンティティのダメージを制御します。 エンティティのダメージを制御する エンティティのダメージを制御する @EventHandler public void onEntityDamage(EntityDamageEvent e) { double damage = e.getDamage(); e.setDamage(…
Eventシステムとは、「プレイヤーがログインした」、「ブロックが破壊された」、「エンティティがダメージを受けた」などといったイベント発生時に行う処理を記載できます。 Eventシステムを使う Eventシステムの活用 Eventシステムを使う まず、org.bukkit.…
こんにちは、Densyakunです。 いつも見ていただきありがとうございます。 Bukkitプラグインの作り方講座では、 Bukkitプラグイン(以下、プラグイン)の作り方について、 初心者に分かりやすく解説しています。 記事一覧 基礎編 はじめに 開発環境の構築(In…
Bukkitプラグインを作る プロジェクトの作成 ビルドパスの設定 パッケージの作成 クラスの作成 plugin.ymlの作成 Jarファイルの作成 プラグインを動かす おわりに Bukkitプラグインを作る 次に、実際に「Bukkitプラグイン」を作っていきます。 この手順はプ…
こんにちは、電車君です。 Bukkitプラグインの作り方講座ですが、 今まで「第n回」という形式でやっておりましたが、内容ごとに記事を分けることにしました。 2年ほど前から第3回で止まっており、第5回まで下書きにずっとあったのですが、 放置していました…
エンティティの種類 エンティティには種類があり、用途やバージョンによって使い方が異なる場合があるため、注意が必要です。 エンティティは全て、Entityインターフェース(org.bukkit.entity.Entity)とそれを継承したインターフェースです。 また、Entity…
コマンドの追加 プラグインの権限 コマンドの処理 CommandExecutorを使った場合 メインクラスにonCommandを書く場合 コマンド以外の権限について コマンドの追加 コマンドを追加する方法は二種類あります。 plugin.ymlを編集する方法と、プログラムで動的に…
今回は最初に、Bukkitプラグインの開発環境を構築します。 Bukkitプラグインはプログラミング言語「Java」で出来ています。 今回は、Javaの統合開発環境(IDE)で有名な「Eclipse」を使用します。 注意 この講座ではWindowsでの方法について解説しています。…