プレイヤーに参加させるItemStackを作成しましたが、期待通りに動作しません。プレイヤーが参加したときにサーバがItemStackを与えない
は、ここに私の試みです:
public class Main extends JavaPlugin implements Listener{
public void onEnable(){
Bukkit.getServer().getPluginManager().registerEvents(this, this);
registerListeners();
}
private void registerListeners() {
PluginManager pm = Bukkit.getPluginManager();
}
public static void giveItems(Player p) {
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent e) {
Player p = e.getPlayer();
ItemStack t = new ItemStack(Material.TNT, 1);
ItemMeta tmeta = t.getItemMeta();
tmeta.setDisplayName("§cTNT §7(Right click to use)");
t.setItemMeta(tmeta);
for(Player pl : Bukkit.getOnlinePlayers()){
p.getInventory().setItem(4, t);
p.getInventory().addItem(t);
}
}
@SuppressWarnings("deprecation")
@EventHandler
public void onRightClick(PlayerInteractEvent e) {
if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
if(e.getItem() != null && e.getItem().getType() == Material.TNT) {
Player p = e.getPlayer();
TNTPrimed tnt = (TNTPrimed) p.getWorld().spawn(p.getLocation(), TNTPrimed.class);
tnt.setVelocity(p.getLocation().getDirection().normalize().multiply(1));
p.updateInventory();
そして、それは失敗しました。 サーバーに参加した際に、どのようにItemStacksをPlayerに渡すことができますか?
問題は何ですか?エラーメッセージはありますか?また、誰かがあなたのサーバに参加した場合、そのサーバ上の誰もが何をしていてもアイテムを取得していることに注意してください。色のために§を使う代わりに、例えば 'ChatColor.RED'を使います。 – Squiddie