gpt4 book ai didi

java - 当玩家加入时服务器不会提供 ItemStack

转载 作者:行者123 更新时间:2023-12-01 09:14:47 24 4
gpt4 key购买 nike

我创建了一个 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();

但它失败了。当玩家加入服务器时,如何成功地将元素堆提供给他们?

最佳答案

呃,当您已经在变量 p 中拥有想要向其提供元素的玩家时,为什么还要循环遍历服务器中的所有玩家呢?您也没有使用正确的聊天颜色代码。

改用这个:

// Imports and other code here...

@EventHandler
public void onPlayerJoin(PlayerJoinEvent e){
Player p = e.getPlayer();
ItemStack t = new ItemStack(Material.TNT);
ItemMeta tmeta = t.getItemMeta();
tmeta.setDisplayName(ChatColor.RED + "TNT " + ChatColor.GRAY + "(Right click to use)");
t.setItemMeta(tmeta);
p.getInventory().addItem(t);
}

除此之外,我没有发现您的设置有任何问题。

关于java - 当玩家加入时服务器不会提供 ItemStack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40641985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com