Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Tepanie czasowe wyskakuje błąd.


Rekomendowane odpowiedzi

Opublikowano

Witam robie tp czasowe ze trzeba czekac i wyskakuje mi blad 

moj kod:

 
public class Spawn implements CommandExecutor, Listener {
 
public static Map<String, BukkitTask> tp = new HashMap<String, BukkitTask>();
 
public Spawn(Main instance){
}
 
public static void tpDelay(int delay, final Player p, final Location l){
final String p2 = p.getName();
if(tp.get(p2) !=null){
((BukkitTask)tp.remove(p2)).cancel();
}
p.sendMessage(ChatColor.GOLD + "Teleportacja nastapi za "+ delay +" sekund! Nie ruszaj sie!");
BukkitTask task = Bukkit.getScheduler().runTaskLater(Main.instance, new Runnable(){
public void run(){
if(p.isOnline()){
p.teleport(l, TeleportCause.COMMAND);
p.sendMessage(ChatColor.GOLD + "Zostales przeteleportowany!");
tp.remove(p2);
}
}
}, delay*20);
tp.put(p2, task);
}
 
    public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args){
if(commandLabel.equalsIgnoreCase("spawn")){
Player p = (Player) sender;
Location loc = Bukkit.getServer().getWorlds().get(0).getSpawnLocation();  
tpDelay(5, p, loc);
}
     return false;
    }
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled=true)
    public void onMove(PlayerMoveEvent e){
     Location from = e.getFrom();
     Location to = e.getTo();
     
     if((from.getBlockX() != to.getBlockX()) || (from.getBlockY() != to.getBlockY()) || (from.getBlockZ() != to.getBlockZ())){
     String p2 = e.getPlayer().getName();
     if(tp.get(p2) !=null){
     ((BukkitTask)tp.remove(p2)).cancel();
     e.getPlayer().sendMessage(ChatColor.RED + "Poruszyles sie! Teleportacja zostala anulowna!");
     }
     }
    }
    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled=true)
    public void onDamage(EntityDamageEvent e){
     if(e.getEntity() instanceof Player){
     String p2 = ((Player)e.getEntity()).getName();
     if(tp.get(p2) !=null){
     ((BukkitTask)tp.remove(p2)).cancel();
     ((Player)e.getEntity()).sendMessage(ChatColor.RED + "Poruszyles sie! Teleportacja zostala anulowna!");
     }
     }
    }
}

//nie umieszczamy reklam w sygnaturach

  • 3 tygodnie później...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...