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

Java - Anulowanie taska przy teleportacji


NexTowsky

Rekomendowane odpowiedzi

Opublikowano


	

	@EventHandler
	public void onMove(PlayerMoveEvent e){
		Location to = e.getTo();
		Location from = e.getFrom();
		Bukkit.broadcastMessage("debug1");
			if(tp.containsKey(e.getPlayer().getName())){
				Bukkit.broadcastMessage("debug3");
				((BukkitTask)SpawnCommand.tp.remove(e.getPlayer().getName())).cancel();
				e.getPlayer().sendMessage("§cTeleportacja anulowana!");
				Bukkit.broadcastMessage("debug4");
			}
		
	}
	
	
	public static Map<String, BukkitTask> tp = new HashMap<String, BukkitTask>();
	@Override	
	public boolean onCommand(CommandSender sender, Command cmd, String l, String[] args) {
		final Player p = (Player) sender;
		if(cmd.getName().equals("setspawn")){
			if(!(sender instanceof Player)){
				p.sendMessage("jestes konsola");
				return false;
			}
			if(!p.hasPermission("supereasy.setspawn")){
				p.sendMessage(ChatColor.DARK_GREEN + "Brak uprawnien..." + ChatColor.GRAY + " supereasy.setspawn");
				return false;
			}
			Location ustawiajacy = p.getLocation();
			Main.getInst().getConfig().set("spawnLocX", ustawiajacy.getX());
			Main.getInst().getConfig().set("spawnLocY", ustawiajacy.getY());
			Main.getInst().getConfig().set("spawnLocZ", ustawiajacy.getZ());
			Main.getInst().getConfig().set("spawnLocWorld", ustawiajacy.getWorld().getName());
			Main.getInst().saveConfig();
			p.sendMessage("§6Ustawiles miejsce spawnu: §cw miejscu gdzie stoisz" );
			return true;
		}
		if(cmd.getName().equals("spawn")){
			if(!(sender instanceof Player)){
				p.sendMessage("jestes konsola");
				return false;
			}
			double x = Main.getInst().getConfig().getDouble("spawnLocX");
			double y = Main.getInst().getConfig().getDouble("spawnLocY");
			double z = Main.getInst().getConfig().getDouble("spawnLocZ");
			String wName =  Main.getInst().getConfig().getString("spawnLocWorld");
			final Location ustawiajacy = new Location(Bukkit.getWorld(wName),x,y,z);
			if(!p.hasPermission("supereasy.spawnbypass")){
			if(tp.containsKey(p.getName())){
				((BukkitTask)tp.remove(p.getName())).cancel();
			}
			p.sendMessage("§6Teleportacja nastapi za §c5 §6sekund");
			BukkitTask bt = Bukkit.getScheduler().runTaskLater(Main.getInst(), new Runnable(){
				public void run(){
					p.teleport(ustawiajacy);
					((BukkitTask)tp.remove(p.getName())).cancel();
					p.sendMessage("§6Zostales przeteleportowany na §cspawn !");
				}
			}, 5*20);
			tp.put(p.getName(), bt);
			}
			return true;
		}
		
		return false;
		
	}

@OldisPL

@matixd3

;d

Opublikowano

Sprawdź bezpośrednio przed teleportacją, czy dalej istnieje taki klucz.

Opublikowano

Z telefonu dużo nie sprawdzę a kod jest rozjechany ale:

1. Jeśli coś się stanie przykładowo gracz nie posiada permisji i wysyłasz mu wiadomość to pamiętaj o tym by dać RETURN. W przeciwnym wypadku nawet jeśli nie ma tej permisji to kod poleci dalej i się wykona.

2. Nie za bardzo wiem co chcesz zrobić ale jeśli anulować przy ruchu to zapisz jego lokacje na początku wykonania komendy i w tasku porównuj, jeśli jest różna to return.

 

Jeśli będziesz miał jakieś pytanie lub więcej rzeczy, których nie rozumiesz to możesz zawsze napisać do mnie na PW a nie oznaczać. Pomogę tak czy siak ;d

784091427630431250239.png

Regulamin sygnatur

Opublikowano

Nikt za ciebie nie przepisze kodu i go nie poprawi.

 

1) wrzuć błędy przy kompilacji / stacktraces z konsoli

2) opisz dokładnie swój problem

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...