右クリックをするとアイテムがインベントリに追加されるプラグインを作れない

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.318997)

右クリックをするとアイテムがインベントリに追加されるプラグインを作れない

投稿記事by cellphonium » 2018年8月12日(日) 09:32

武器プラグインを作る練習として、空中をクリックをするとダイヤモンドが手に入るプラグインを作りたいと思っています。しかし、実際にはプラグインがちゃんと読み込まれてplコマンドでも存在が確認できるにもかかわらず、プレイヤーがゲーム内で空中やブロックを左右クリックしても何も起こりません。(アイテムを持った状態でも持ってない状態でも試しています。)SpigotのJavaDocとも照らし合わせているのですが、なぜこれで動作しないのかがよくわからないのです。どなたかご指南いただけると幸いです。
ソースコードはzipで添付もしております。
動作環境

Windows10 Pro
Eclipse Java EE IDE for Web Developers.
Version: Oxygen.3a Release (4.7.3a)

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) Client VM (build 25.181-b13, mixed mode, sharing)

spigot-1.12.2

SpigotPlTest.java
コード: 全て選択
package com.plotterServer.play.spigotPlugtest;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class SpigotPlTest extends JavaPlugin implements Listener {
   @Override
   public void onEnable() {

   }
   @Override
   public void onDisable() {

   }

   @EventHandler
   public void useWeapon(InventoryClickEvent e) {      //クリックしたときに実行させたい
      Player p = (Player)e.getWhoClicked();            //誰がクリックしたのかを取得したい
      ItemStack item = new ItemStack(Material.DIAMOND);   //追加するアイテムを指定したい。
      p.getInventory().addItem(item);                  //先ほどクリックしたプレイヤーのインベントリにアイテムを追加したい
   }
}


plugin.yml
コード: 全て選択
name: SpigotPlTest
main: com.plotterServer.play.spigotPlugtest.SpigotPlTest
version: 2.0
api-version: 1.3
command:
添付ファイル
SpigotPlugTest.zip
(4.23 KiB) ダウンロード数: 4 回
cellphonium
ID:6866011f
水から上がったとこ
 
記事: 2
登録日時: 2018年8月11日(土) 12:02

  • (PostNo.319032)

Re: 右クリックをするとアイテムがインベントリに追加されるプラグインを作れない

投稿記事by ゲスト » 2018年8月12日(日) 18:20

イベントリスナーのインスタンスがbukkit側に登録されていないためと思われます。起動時など適当なタイミングで https://www.spigotmc.org/wiki/using-the-event-api/ の1.4を参考に登録してあげてください。
また、plugin.yml の api-version 項は https://www.spigotmc.org/threads/bukkit ... ds.328883/ の通り、1.13への対応を示すものです。今回は 1.12.2のspigotに対応するプラグインを作るようですから、これは不要です(細かい話ですが1.13が1.3になっています)。
ゲスト
ID:6e4e2454
 

  • (PostNo.319342)

Re: 右クリックをするとアイテムがインベントリに追加されるプラグインを作れない

投稿記事by cellphonium » 2018年8月19日(日) 09:25

ありがとうございます。解決いたしました。
cellphonium
ID:6866011f
水から上がったとこ
 
記事: 2
登録日時: 2018年8月11日(土) 12:02


Return to 質問:開発・制作関連

x