-
Ilość zawartości
2042 -
Rejestracja
-
Wygrane w rankingu
18
Treść opublikowana przez Ixidi
-
Czy ten sposob na cooldown jest dobry czy lepiej uzyc HashMapy ?
Ixidi odpowiedział(a) na kerpson pytanie w Pytania i problemy
Ja bym zrobił mapę, w której kluczem jest np. UUID, a wartością ostatni czas użycia w milisekundach. No i potem sprawdzasz czy mapa zawiera dane UUID, jeśli tak to porównujesz różnice między aktualnym czasem, a tamtym z np 5000 (5 sekund). Jeśli jest większe lub równe, to może użyć, wykonujesz dany kod i dodajesz aktualny czas dla danego UUID, jeśli jest mniejsze to wyświetlacz jakąś wiadomość czy coś. -
https://www.spigotmc.org/resources/protocollib.1997/
-
To zrób tak: on right click: if player is holding {_type}: //lub if player's tool is {_type}:
-
set {_type} to yaml value "narzedzieid" from "costam/config.yml" parsed as itemtype set {_name} to yaml value "narzedzie" from "costam/config.yml" give {_type} named {_name} to player
-
Problem został rozwiązany.
-
Statyczne pola inicjują się przed wykonaniem metody onEnable.
-
Programista Java na Twój serwer Minecraft!
Ixidi odpowiedział(a) na xCreepeTM temat w Archiwum współpracy
Ten temat został przeniesiony. -
Jestem tu dłużej od niego A ciebie?
-
Bo jeszcze nie umarłem. Dlaczego używasz internetu?
-
To zależy od jakiego bloku chcesz go tworzyć (środka, krańca, środka ściany etc.). Załóżmy, że chcesz stworzyć prostopadłościan "do okoła" danego bloku o krawędziach podstawy 21 i 31 oraz wysokości od Y = 0 do Y = 200. Będzie to wyglądać mniej więcej tak Block block; //Twój wyjściowy blok. Location location = block.getLocation(); //Na początek musimy wyznaczyć dwa krańce po przekątnych (pamiętajmy o wymiarach 31, 21), uwzględniając wysokość (0 - 200). Location upper = location.add(10, 0, 15); Location lower = location.subtract(10, 0, 15) upper.setY(200); lower.setY(0); //Teraz które koordynaty są większe, a które mniejsze. int lowerX, lowerY, lowerZ, upperX, upperY, upperZ; //Tutaj warto napisać sobie jakąś metodę/klasę, aby nie powtarzać kodu, ja tego nie zrobie. if (upper.getBlockX() > lower.getBlockX()) { lowerX = lower.getBlockX(); upperX = upper.getBlockX(); } else { upperX = lower.getBlockX(); lowerX = upper.getBlockX(); } if (upper.getBlockY() > lower.getBlockY()) { lowerY = lower.getBlockY(); upperY = upper.getBlockY(); } else { upperY = lower.getBlockY(); lowerY = upper.getBlockY(); } if (upper.getBlockZ() > lower.getBlockZ()) { lowerZ = lower.getBlockZ(); upperZ = upper.getBlockZ(); } else { upperZ = lower.getBlockZ(); lowerZ = upper.getBlockZ(); } //Teraz tworzymy sobie liste lokalizacj. List<Location> locations = new ArrayList<>(); //I wreszcie zapętlamy bloki for (int x = lowerX; x <= upperX; x++) { for (int y = lowerY; y <= upperY; y++) { for (int z = lowerZ; z <= upperZ; z++) { locations.add(new Location(location.getWorld(), x, y, z)); } } } Wszystkie lokalizacje w obszarze masz w locations, możesz sobie je zamienić na bloki, czy co tam chcesz. Pisane na szybko, mam nadzieję, że się nie pomyliłem i pomogłem
-
Ogólnie to polecam do tworzenia itemstacków napisać sobie jakiegoś buildera, bo potem wychodzi takie coś i powtarzanie kodu milion razy. No i jeszcze itemshop.setItem(0, glass); możesz po prostu zrobić pętlą zamiast kopiować i wklejać tyle razy
-
Problem został rozwiązany.
-
Możesz użyć do tego jakiejś biblioteki np. https://www.spigotmc.org/resources/gui-api.45799/ Jeśli nie chcesz, to tutaj masz poradnik przykładowy https://www.spigotmc.org/threads/tutorial-how-to-create-a-gui.280215/, tego na necie jest pełno.
-
Namieszałeś, this odnosi się do instancji, nie do statycznych pól.
-
Jaki ranking?
-
Ten temat został przeniesiony do kosza!
-
Forum nie wspiera takich rzeczy.
-
Problem został rozwiązany.
-
Widzę, że próbowałeś zapisać plik z licencja w formacie JSON, nie jest to jednak zrobione poprawnie. Plik może wyglądać np. tak: { "servers": [ "jakiserwser.pl", "serwer.com" ] } Należy teraz odpowiednio zinterpretować format JSON. Najlepiej użyć do tego jednej z wielu bibliotek, pokaże Ci to przy użyciu tego. No więc tak załóżmy, że masz przeczytany plik z licencją do zmiennej jsonString. Kod będzie wyglądał mniej więcej tak: String jsonString; //licencja String serverName; //nazwa serwera wpisana w licencji JSONObject json = new JSONObject(jsonString); JSONArray array = json.getJSONArray("servers"); boolean exists = false; int length = array.length(); if (length > 0) { for (int i = 0; i < length; i++) { if (array.getString(i).equals(serverName)) { exists = true; break; } } } if (!exists) { // licencja nie zawiera serwera return; } // licencja zawiera serwer
-
Ogólnie nie jest to bug, bo item znika po próbie użycia go, ale mniejsza. Musisz najpierw zrozumieć czym są eventy. Jak sama nazwa wskazuje są to po prostu zdarzenia. Śmierć, postawienie bloku, zniszczenie bloku, złowienie ryby, każde wydarzenie. Aby wywołać dany kod podczas danego eventu, należy go nasłuchiwać. Służy do tego "słuchacz" Listener. Dlatego właśnie nie może istnieć event, który sprawdza co gracz ma w eq, nie jest to wydarzenie. Logiczne, prawda? Ekwipunek gracza przechowuje kolekcja, którą możesz pobrać przez player.getInventory(); Mam nadzieję, że pomogłem
-
Nie testowałem ale powinno być ok.
-
Jaki bug I o jaki event dokładnie Ci chodzi, bo nie rozumiem.
-
Nowe tytuły: Administrator @xVendrome - do 15.10.2019
-
Zarządzenie @Ixidi 01/15.10.2018: @xVendrome rezygnuje z rangi administratora oraz moderatora.
-
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/EventPriority.html
