1
안녕하세요 어떤 아이디어로 scheduleSyncDelayedTask를 만드는 방법으로 이전 작업을 취소하고 다시 실행 취소해야합니까?Bukkit runnable tips
for(int x = 0; x < 8; x++){
int taskID = Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {
@Override
public void run() {
CreateItems.createItemsOnStand2(player, bedna, listitems);
}
}, 30*x , 2+x);
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.getPlugin(), new Runnable() {
public void run() {
Bukkit.getScheduler().cancelTask(taskID);
}
}, (x==0) ? 30 : 30*x);
}
당신이 조금 더 질문을 설명 할 수 있습니까? 지금 당장은 2 개의 작업이 생성되고, 후자는 이전 작업을 취소하는 것처럼 보입니다. 그게 네가 원하는게 아니야? –
기본적으로 나는 여러 시작 시간에 여러 가지 작업을 계획하고 싶습니다. 따라서이를 취소해야합니다. 하지만 현재 첫 번째 scheduleSyncDelayedTask 완전히 다른 scheduleSyncRepeatingTask를 중지하면 타이머를 안타 때, 나는 그 taskID 새로운 것들에 재 할당되고 있기 때문에, 나는 많은 방법을 shedule 많은 작업을하고 scheduleSyncDelayedTask 나중에 사용하여 그들을 막을 방법이 있는지 묻는 오전 것 같아요. – elving
이 코드가 올바르게 컴파일 되었습니까? 내가 볼 수있는 것부터, final이 아닌 taskID에 대한 컴파일러 오류가 발생해야합니다. –