掉落物品龙头
Drop item spigot
我正在为我的 minecraft 服务器制作一个 bedwars 插件,实际上我必须每 1 秒为掉落物品编写一个生成器,我不知道如何制作,我已经通过互联网完成了这段代码:
while(true) {
task = Bukkit.getServer().getScheduler().runTaskTimer(Main.plugin, () -> {
World w = null;
for(Player p : Bukkit.getServer().getOnlinePlayers()) {
w = p.getWorld();
}
String[] pos = Main.blue_spawn.split("\*");
Location loc = new Location(w, Double.parseDouble(pos[0]), Double.parseDouble(pos[1]), Double.parseDouble(pos[2]));
w.dropItemNaturally(loc, new ItemStack(1));
}, 20, 20);
}
但是我不知道怎么掉铁锭,因为做 new ItemStack(Material.IRON_INGOT) 就报错
请帮忙
你不应该在我的世界中使用 while(true)
循环。它会阻塞线程,这似乎是主服务器线程。调度程序足以保持 运行.
那么,获取世界的玩家循环不是一个好主意。如果有人在下界什么的,那是行不通的。您可以使用 Bukkit.getServer().getWorlds()[0]
或 Bukkit.getServer().getWorld("world")
.
另外,new ItemStack(Material.IRON_INGOT)
应该可以。 Documentation 关于它。
最后,dropItemNaturally
这个方法还是不错的。您可以查看文档 here
我正在为我的 minecraft 服务器制作一个 bedwars 插件,实际上我必须每 1 秒为掉落物品编写一个生成器,我不知道如何制作,我已经通过互联网完成了这段代码:
while(true) {
task = Bukkit.getServer().getScheduler().runTaskTimer(Main.plugin, () -> {
World w = null;
for(Player p : Bukkit.getServer().getOnlinePlayers()) {
w = p.getWorld();
}
String[] pos = Main.blue_spawn.split("\*");
Location loc = new Location(w, Double.parseDouble(pos[0]), Double.parseDouble(pos[1]), Double.parseDouble(pos[2]));
w.dropItemNaturally(loc, new ItemStack(1));
}, 20, 20);
}
但是我不知道怎么掉铁锭,因为做 new ItemStack(Material.IRON_INGOT) 就报错
请帮忙
你不应该在我的世界中使用 while(true)
循环。它会阻塞线程,这似乎是主服务器线程。调度程序足以保持 运行.
那么,获取世界的玩家循环不是一个好主意。如果有人在下界什么的,那是行不通的。您可以使用 Bukkit.getServer().getWorlds()[0]
或 Bukkit.getServer().getWorld("world")
.
另外,new ItemStack(Material.IRON_INGOT)
应该可以。 Documentation 关于它。
最后,dropItemNaturally
这个方法还是不错的。您可以查看文档 here