Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java/bukkit:Run;至于;方法1在runnable中运行一次?_Java_Minecraft_Bukkit - Fatal编程技术网

Java/bukkit:Run;至于;方法1在runnable中运行一次?

Java/bukkit:Run;至于;方法1在runnable中运行一次?,java,minecraft,bukkit,Java,Minecraft,Bukkit,所以我有这个代码: ProtectedRegion region = WGBukkit.getRegionManager(p.getWorld()).getRegion("afk1mine"); Vector max = region.getMaximumPoint(); Vector min = region.getMinimumPoint();

所以我有这个代码:

                           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); 
                                   }
                                 }
                               }   
ProtectedRegion region=WGBukkit.getRegionManager(p.getWorld()).getRegion(“afk1mine”);
向量最大值=区域。getMaximumPoint();
Vector min=region.getMinimumPoint();

对于(int i=min.getBlockX();i您需要增加
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);

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

在循环中构造整个消息,然后发送一次(在循环之后)?这个问题不明确。是否只想发送第一个块的消息?如果是,可以设置一个布尔标志,或者在进入循环之前检索第一个块并发送。@bcsb1001是的,我只想发送第一个块的消息,然后在1秒内重复runnable并发送第二个块的消息,等等。T汉克斯!@RokasŠesnavičius请回答你的问题。谢谢@ElliottFrisch,完成了。我爱你!谢谢,这真的帮了我的忙!