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

Teleport na warp


Ziomkeee

Rekomendowane odpowiedzi

Opublikowano

Cześć, mam problem ponieważ nie wiem jak teleportować gracza na warp :/

 

Stworzyłem już sobie kod, do tworzenia warpów:

				if(args.length == 1) {
					if(config.getConfig("warps").get(args[0]) !=null) {
						return true;
					}
					Player p = (Player) sender;
					Location loc = p.getLocation();
					
					config.getConfig("warps").set(args[0] + ".world", loc.getWorld().getName());
					config.getConfig("warps").set(args[0] + ".x", loc.getX());
					config.getConfig("warps").set(args[0] + ".y", loc.getY());
					config.getConfig("warps").set(args[0] + ".z", loc.getZ());
					config.getConfig("warps").set(args[0] + ".yaw", loc.getYaw());
					config.getConfig("warps").set(args[0] + ".pitch", loc.getPitch());
					config.save("warps");
					
					p.sendMessage(config.getConfig("message").getString("tag")
							+ " " + config.getConfig("message").getString("cr-warp").replaceAll("%warp%", args[0]));
				}

 

No i teraz nie wiem jak teleporotwać gracza na ten warp :/ w sensie chodzi o if bo resztę mam:

 

					Player p = (Player) sender;
					
					
					String worldTP = config.getConfig("warps").getString(".world");
					double x = config.getConfig("warps").getDouble(".x");
					double y = config.getConfig("warps").getDouble(".y");
					double z = config.getConfig("warps").getDouble(".z");
					float yaw = (float) config.getConfig("warps").getDouble(".yaw");
					float pitch = (float) config.getConfig("warps").getDouble(".pitch");
					
					Location warp = new Location(Bukkit.getWorld(worldTP),x,y,z,yaw,pitch);
					
					p.teleport(warp);
					p.sendMessage(config.getConfig("message").getString("tag")
							+ " " + config.getConfig("message").getString("tp-warp").replaceAll("%warp%", args[0]));

 

Z góry dzięki za pomoc ;)

Opublikowano

Ty chcesz ifem teleportować gracza czy jak? W kodzie masz teleportowanie na stworzonego warpa, więc w czym problem?

Opublikowano

No chodzi o to, że jeśli warp znajduje się w pliku, no to teleportuje.

 

No bo tak jak jest przy tworzeniu if(config.getConfig("warps").get(args[0]) !=null) no to nie wiem jak nazwę warpa pobrać w sensie /warp sklep.. No bo tak kod nie wie które kordy.. Więc chodzi o if

[eh, nie umiem tłumaczyć]

Opublikowano

Żeby sprawdzić czy coś jest w configu to lepiej użyć metody isSet. Z tego co wywnioskowałem nazwa twojego warpa do którego chcesz teleportować gracza to args[0] więc:
 

if (!config.getConfig("warps").isSet(args[0])) {
  // warp nie istnieje
}

String warpName = args[0];

// i teraz pobierasz z configu config.getConfig("warps").getString(warpName + ".world"); itd.

 

Opublikowano
      if (!config.getConfig().isSet("warps." + args[0]))
      {
        player.sendMessage("Ten warp nie istnieje");
        return true;
      }
	final String name = args[0];
      final int yaw = config.getInt("warps." + name + ".yaw");
      int pitch = config.getInt("warps." + name + ".pitch");
      final double z = config.getDouble("warps." + name + ".z");
      final double x = config.getDouble("warps." + name + ".x");
      double y = config.getDouble("warps." + name + ".y");
      player.sendMessage("Teleportuje..");
      Location l = new Location(Bukkit.getWorld(config.getString("warps." + name + ".world")), x, y, z);
      l.setPitch(pitch);
      l.setYaw(yaw);
      player.teleport(l);

 

+ czemu ty tak dziwnie to robisz xD

+ " " + config.getConfig("message").getString("tp-warp").replaceAll("%warp%", args[0]));

powinno byc tak

+ " " + config.getConfig().getString("tp-warp.messae").replace("%warp%", args[0]));

chyba ze ty jakos dziwnie robisz ten config, to zostawiasz

 

 

JAVA <3

 

Opublikowano
1 godzinę temu, Entify napisał:

      if (!config.getConfig().isSet("warps." + args[0]))
      {
        player.sendMessage("Ten warp nie istnieje");
        return true;
      }
	final String name = args[0];
      final int yaw = config.getInt("warps." + name + ".yaw");
      int pitch = config.getInt("warps." + name + ".pitch");
      final double z = config.getDouble("warps." + name + ".z");
      final double x = config.getDouble("warps." + name + ".x");
      double y = config.getDouble("warps." + name + ".y");
      player.sendMessage("Teleportuje..");
      Location l = new Location(Bukkit.getWorld(config.getString("warps." + name + ".world")), x, y, z);
      l.setPitch(pitch);
      l.setYaw(yaw);
      player.teleport(l);

 

+ czemu ty tak dziwnie to robisz xD


+ " " + config.getConfig("message").getString("tp-warp").replaceAll("%warp%", args[0]));

powinno byc tak


+ " " + config.getConfig().getString("tp-warp.messae").replace("%warp%", args[0]));

chyba ze ty jakos dziwnie robisz ten config, to zostawiasz

 

no jak... config.getConfig("message") bo config nazywa się message a dokładnie to message.yml... musiałbym Ci pokazać jak u mnie configi wyglądają xD

Opublikowano
3 minuty temu, Ziomkeee napisał:

 

no jak... config.getConfig("message") bo config nazywa się message a dokładnie to message.yml... musiałbym Ci pokazać jak u mnie configi wyglądają xD

a dobraa, myslalem ze ty robisz to w config.yml xD 

napisalem ci polowe kodu, przerób pod siebie i tyle xD 

 

 

JAVA <3

 

Opublikowano
44 minuty temu, Entify napisał:

a dobraa, myslalem ze ty robisz to w config.yml xD 

napisalem ci polowe kodu, przerób pod siebie i tyle xD 

 

Dzięki <3 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...