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

Pomoc z WorldEdit API


Ekrahb

Rekomendowane odpowiedzi

Opublikowano

Mam problem, otóż próbuję użyć do mego pluginu innego pluginu, tego w temacie, jako API, dzięki któremu mógłbym wyciągnąć wszystkie lokacje bloków z danego regionu, podając jedynie koordynaty dwóch lokacji, niestety nie wiem, jak to zrobić, gdyż wszystko co robię ogranicza się do regionów z WorldGuarda.

Pozdrawiam!

Opublikowano

Możesz to zrobić równie dobrze bez API. Jeśli masz koordynaty dwóch rogów regionu to możesz napisać coś takiego.

List<Location> locs = new ArrayList<Location>();

World w = Bukkit.getServer().getWorld("world");
Location p1 = new Location(w, 0, 70, 0);
Location p2 = new Location(w, 50, 80, 50);

for(int x = Math.min(p1.getX(), p2.getX()); x < Math.max(p1.getX(), p2.getX()); x++) {
  for(int z = Math.min(p1.getZ(), p2.getZ()); z < Math.max(p1.getZ(), p2.getZ()); z++) {
    for(int y = Math.min(p1.getY(), p2.getY()); y <  Math.max(p1.getY(), p2.getY()); y++) {
      Location loc = new Location(w, x, y, z);
      locs.add(loc);
    }
  }
}

I w zmiennej locs masz wszystkie koordynaty bloków w przedziale tych dwóch punktów.

Opublikowano
6 godzin temu, blinkz8 napisał:

Możesz to zrobić równie dobrze bez API. Jeśli masz koordynaty dwóch rogów regionu to możesz napisać coś takiego.

 


List<Location> locs = new ArrayList<Location>();

 

World w = Bukkit.getServer().getWorld("world");

Location p1 = new Location(w, 0, 70, 0);

Location p2 = new Location(w, 50, 80, 50);

 

for(int x = Math.min(p1.getX(), p2.getX()); x < Math.max(p1.getX(), p2.getX()); x++) {

  for(int z = Math.min(p1.getZ(), p2.getZ()); z < Math.max(p1.getZ(), p2.getZ()); z++) {

    for(int y = Math.min(p1.getY(), p2.getY()); y <  Math.max(p1.getY(), p2.getY()); y++) {

      Location loc = new Location(w, x, y, z); locs.add(loc);

    }

  }

}

 

I w zmiennej locs masz wszystkie koordynaty bloków w przedziale tych dwóch punktów.

Dziękuję bardzo, rozwiązane!

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...