OK、MinecraftBukkitItemStackにデータを添付しようとしています。ドロップするエンティティにもそれがあるようにしたいと思いますが、それはオプションです。これを直接行うことができない場合、アイテムがプレーヤーとそのインベントリスロットを移動するときに、アイテムと一緒にデータ(java int、java string)を保持できる他の方法はありますか?ありがとう!
編集:これがコード例です。
package path.to.the.package;
import org.bukkit.event.*;
import org.bukkit.event.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
public ExamplePlugin extends JavaPlugin
{
public List<ItemStack> stacks = new ArrayList<ItemStack>();
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
if(cmd.getName().equalsIgnoreCase("tester123"))
{
ItemStack stack = new ItemStack(272, 0, (byte)0);
Player p = (Player)sender;
stacks.add(stack);
p.getLocation().getWorld().dropItem(player.getLocation(), stack);
}
return true;
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemStackRightClick(PlayerInteractEvent e)
{
Player player = e.getPlayer();
for(ItemStack item : items)
{
if(player.getItemInHand() == item)
{
//What I DO want is something like: if(item.getPluginData(this, "KEY") == "SPECIAL")
//And I would have set it like: item.setPluginData(this, "KEY", "SPECIAL");
player.sendMessage("You got one of our SPECIAL stone swords!!!!");
}
}
}
}
この例を作成しましたが、1本の特殊な剣で右クリックすると機能しません。