gpt4 book ai didi

Java/bukkit : Run "For" method 1 time in runnable?

转载 作者:行者123 更新时间:2023-12-02 11:47:00 25 4
gpt4 key购买 nike

所以我有这个代码:

                           ProtectedRegion region = WGBukkit.getRegionManager(p.getWorld()).getRegion("afk1mine");
Vector max = region.getMaximumPoint();
Vector min = region.getMinimumPoint();
for (int i = min.getBlockX(); i <= max.getBlockX();i++) {
for (int j = min.getBlockY(); j <= max.getBlockY(); j++) {
for (int k = min.getBlockZ(); k <= max.getBlockZ();k++) {
final Block kasamas = Bukkit.getServer().getWorld("paradise").getBlockAt(i,j,k);
//Bukkit.getPluginManager().callEvent(new BlockBreakEvent(kasamas, p));
p.sendMessage(" kitas: " + kasamas);
}
}
}

我确实只想发送第一个 block 的消息,然后在 1 秒内重复可运行并发送第二个 block 的消息等。

最佳答案

您需要增加 BukkitRunnable 中的坐标。像这样的东西会起作用,尽管我承认它看起来不太好。

BukkitRunnable sendMessage = new BukkitRunnable() {
final int minI = min.getBlockX(), minJ = min.getBlockY(), minK = min.getBlockZ();
final int maxI = max.getBlockX(), maxJ = max.getBlockY(), maxK = max.getBlockZ();
int i = minI, j = minJ, k = minK;

@Override
public void run() {
final Block kasamas = Bukkit.getServer().getWorld("paradise").getBlockAt(i, j, k);
p.sendMessage(" kitas: " + kasamas);
if (k > maxK) {
if (j > maxJ) {
if (i > maxI) {
cancel();
} else {
i++;
j = minJ;
k = minK;
}
} else {
j++;
k = minK;
}
} else {
k++;
}
}
};
sendMessage.runTaskTimer(plugin, 0, 20);

这假设peffectively final ;否则,您可能需要创建一个有效的最终变量来捕获它。将 plugin 替换为您的插件类的实例。

关于Java/bukkit : Run "For" method 1 time in runnable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48129882/

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