- Баллы
- 66
- Имя в Minecraft
- Relion128
Мне нужно дабы код:
выполнялась с другой задержкой, т.е эта часть кода находится в цикле (ниже фул код), и нужно чтобы конкретно этот код что указан выше работал с другой задержкой, допустим выполнился цикл фул кода, но т.к у кода выше другая задержка он не запускается вплодь до тех пор пока не закончится его цикл, ну или просто сделать задержку...
Я пытался делить на классы, но суть такова, что код выше в любом случае обращается каждые 3 секунды, хотя мне нужно чтобы он делал это с задержкой в 60 секунд.
Для примера tested к которому обращается код выше:
Ах да, почему я просто не укажу основному циклу 60 секунд? Да просто потому, что он каждые 3 секунды ищет игрока, и если находит то должен выполнять действие с задержкой, например запускается песня, и дабы это песня каждые 3 секунды снова - снова - снова не включалась, нужно чтобы была задержка в цикле.
Код:
if (b.getX() > valueX[rec] && b.getX() < valueXX[rec]) {
if (b.getY() > valueY[rec] && b.getY() < valueYY[rec]) {
if (b.getZ() > valueZ[rec] && b.getZ() < valueZZ[rec]) {
tested(event, array[rec]);
}
}
rec++;
}
выполнялась с другой задержкой, т.е эта часть кода находится в цикле (ниже фул код), и нужно чтобы конкретно этот код что указан выше работал с другой задержкой, допустим выполнился цикл фул кода, но т.к у кода выше другая задержка он не запускается вплодь до тех пор пока не закончится его цикл, ну или просто сделать задержку...
Код:
int timer = Integer.parseInt(getConfig().getString("array.time")) * 20;
new BukkitRunnable() {
int rec = 0;
int rec3 = Integer.parseInt(getConfig().getString("array.value"));
List<String> list = config.getStringList("array.dir");
String[] array = list.toArray(new String[0]);
@Override
public void run() {
if (rec == rec3 || rec > rec3) {
rec = 0;
} else {
// Позиция 1
int[] valueX = new int[rec3];
valueX[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".x: " + "pos1"));
int[] valueY = new int[rec3];
valueY[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".y: " + "pos1"));
int[] valueZ = new int[rec3];
valueZ[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".z: " + "pos1"));
// Позиция 2
int[] valueXX = new int[rec3];
valueXX[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".x: " + "pos2"));
int[] valueYY = new int[rec3];
valueYY[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".y: " + "pos2"));
int[] valueZZ = new int[rec3];
valueZZ[rec] = Integer.parseInt(getConfig().getString("swarp." + array[rec] + ".z: " + "pos2"));
Location b = player.getLocation();
if (b.getX() > valueX[rec] && b.getX() < valueXX[rec]) { //От сюда
if (b.getY() > valueY[rec] && b.getY() < valueYY[rec]) {
if (b.getZ() > valueZ[rec] && b.getZ() < valueZZ[rec]) {
tested(event, array[rec]);
}
}
rec++;
} //До сюда нужно делать задержку, дабы он работал с другой задержкой... Эта работает раз в 60 секунд..
}
}
}.runTaskTimer(this, 0L, timer); //Эта допустим работает раз в 3 секунды..
Для примера tested к которому обращается код выше:
Код:
public void tested(PlayerJoinEvent event, String vois) {
Player player = event.getPlayer();
player.sendMessage(ChatColor.BLUE + "[DCore]: Вы на территорий: " + vois);
}
Ах да, почему я просто не укажу основному циклу 60 секунд? Да просто потому, что он каждые 3 секунды ищет игрока, и если находит то должен выполнять действие с задержкой, например запускается песня, и дабы это песня каждые 3 секунды снова - снова - снова не включалась, нужно чтобы была задержка в цикле.
