You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spigot插件开发:Bedwars物品生成器掉落铁锭报错求助

问题排查与解决方法

1. 首要严重问题:无限循环创建定时任务

你外层套的while(true)会不断重复创建20tick间隔的定时任务,运行几秒后服务器就会因为任务过载崩溃,必须直接去掉这个外层循环,只需要调用一次runTaskTimer就能实现周期性执行的效果。

2. Material.IRON_INGOT报错的解决方案

报错通常是两个原因:

  • 没有导入对应的Material类,在代码头部添加导入语句:import org.bukkit.Material;
  • 如果你使用的是非常旧的Bukkit/Spigot核心版本,确认核心版本对应API的铁锭枚举名就是IRON_INGOT即可

3. 额外空指针风险修复

你当前获取世界的逻辑在没有玩家在线时会得到null,触发空指针异常,建议直接根据生成器绑定的世界名获取世界,提前做非空校验。

修正后的可用代码

// 只需要执行一次即可启动周期性生成任务
task = Bukkit.getServer().getScheduler().runTaskTimer(Main.plugin, () -> {
    // 替换为你实际的地图世界名称
    World w = Bukkit.getWorld("world");
    if (w == null) return;
    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(Material.IRON_INGOT, 1));
}, 20, 20);

内容的提问来源于stack exchange,提问作者Sysy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:36:03