Skocz do zawartości

GotoFinal

Użytkownik
  • Ilość zawartości

    284
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    5

Treść opublikowana przez GotoFinal

  1. to znaznacz to ostatnie, to mniej-więcej to samo, bo zakłada właśnie dobre współgranie niezależnie od użytych pluginów.
  2. Z tymi pluginami to trochę bezsensowne pytanie, liczy się to czy pluginy dobrze ze sobą współgrają, masa większych serwerów światowych ma sporo pluginów z spigota, ale czasami je delikatnie edytujemy lub dodajemy własne które lepiej kontrolują istniejące, tak by dopasować je do naszych potrzeb, a jednocześnie nie pisać całego od nowa, bo to nie ma sensu, szczególnie jak są pluginy typu WE, WG czy citizens, których napisanie lepiej, zwyczajnie potrwa wiele tygodni ciężkiej pracy. EDIT: no i tak jak niżej, czemu mam odpowiadać o wielkości gildii jeśli ja nie chce gildii ;/
  3. Nie porównuj DisplayName do materiału: if(e.getCurrentItem().getItemMeta().getDisplayName().equals(Material.STONE)){ To są inne typy, IDE powinno ci to oznaczyć jako potencjalny błąd. Typ itemu pobierasz za pomocą .getType, więc zmień te .getItemMeta().getDisplayName().equals(Material.STONE) na proste .getType() == Material.STONE I co ma robić te dziwne sprawdzenie? if(!inve.getName().equals(inve.getTitle())){ return; }
  4. no to wtedy najłatwiej po stronie serwera zrobić listener od zmiany rangi gracza i już po stronie serwera sobie te komendy wykonać,łatwiej, prościej, bez masy kodu.
  5. weź normlany plugin na pexy https://www.spigotmc.org/resources/luckperms-an-advanced-permissions-plugin.28140/ Masz wtedy normlane api pod bungee i każdy serwer i możesz tworzyć osobne grupy na każdy serwer.
  6. zadałem pytanie.... jak mam ci pomóc skoro nie wiem czego dokładnie oczekujesz, nie będę się rozpisywał na 300 możliwych sposobów licząc że jeden z nich to ten który potrzebujesz... A tak bardziej na poważnie, czego dokładnie potrzebujesz, bo jest kilka możliwość w zależności od potrzeb, chcesz ten item dodać tylko jeśli się mieści? czy coś innego? i czy chodzi konkretnie o item z ilością 1, czy więcej go może być?
  7. A nie jakieś porady życiowe Moim zdaniem to nie ma tak, że dobrze albo że nie dobrze. Gdybym miał powiedzieć, co cenię w życiu najbardziej, powiedziałbym, że ludzi. Ekhm... Ludzi, którzy podali mi pomocną dłoń, kiedy sobie nie radziłem, kiedy byłem sam. I co ciekawe, to właśnie przypadkowe spotkania wpływają na nasze życie. Chodzi o to, że kiedy wyznaje się pewne wartości, nawet pozornie uniwersalne, bywa, że nie znajduje się zrozumienia, które by tak rzec, które pomaga się nam rozwijać. Ja miałem szczęście, by tak rzec, ponieważ je znalazłem. I dziękuję życiu. Dziękuję mu, życie to śpiew, życie to taniec, życie to miłość. Wielu ludzi pyta mnie o to samo, ale jak ty to robisz?, skąd czerpiesz tę radość? A ja odpowiadam, że to proste, to umiłowanie życia, to właśnie ono sprawia, że dzisiaj na przykład buduję maszyny, a jutro... kto wie, dlaczego by nie, oddam się pracy społecznej i będę ot, choćby sadzić... znaczy... marchew. A tak bardziej na poważnie, czego dokładnie potrzebujesz, bo jest kilka możliwość w zależności od potrzeb, chcesz ten item dodać tylko jeśli się mieści? czy coś innego? i czy chodzi konkretnie o item z ilością 1, czy więcej go może być?
  8. GotoFinal

    Max 1 String

    To ci nie zadziała bo wczytujesz dane z configu zanim go załadujesz, kod zmiennych klasy (np jak masz te String prefix = ....) wywoluje się wraz z stworzeniem instancjo pluginu, a config ładujesz dopiero w onEnable i w saveDefaultConifg, więc ladowanie tych wiadomości musisz też dać tam, zmienne zostawiasz, czyli String prefix;, ale inicjujesz w onEnable pod ladowaniem, prefix = ...
  9. Przecież jest specjalna metoda do tego: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/inventory/meta/ItemMeta.html#hasEnchant-org.bukkit.enchantments.Enchantment-
  10. 1. Najlepiej nigdy, no ale są przypadki że się przydaje, np stałe: private/public static final SIZE_OF_GUI = 54; (wyjątkowo, w stałych, używamy wielkich liter i _) a stałymi powinno być wszystko co jest z dupy wpisane w kodzie, tak zwane magic numbers, czy czasem magic strings, czyli jak robisz taska co ma się odpalić za 10 sekund, i robisz bezpośrednio w odpalaniu że ma czekać 200 ticków, to źle, powinna być stała. (a najlepiej to w configu :P) Czasem też przechowuje się tam jakieś dane, ale to rzadko, do np jakiś singletonów, jak czesto pluginie robi się statyczne pole z instancją co by potem szybciej pobierać przez też statyczną metodę getInstance czy coś, ogólnie singletonów też się czesto unika, ale w przypadku pluginu jest to ok, bo bukkit i tak nie zezwala na 2 instancje tego samego pluginu. 2. To obszerny temat i wiąże się też z 3... lepiej wygoogluj coś po angielsku, ale w skrócie: są interfejsy i klasy abstrakcyjne, dana klasa może implementować wiele interfejsów i rozszerzać tylko 1 inną klasę. Datego zazwyczaj staramy używać się interfejsu do opisania jakiejś możliwości, tak jak np jest w bukkcie `CommandSender` każdy może to sobie zaimplementować do dowolnej klasy. Jednak czasem klasy abstrakcyjne przydają się bardziej, bo można w nich przechowywać pola, czy tworzyć metody o innej widoczności niż public, co pomaga lepiej kontrolować przepływ danych. Często używa się też obu... Np interface Job z metodą void giveSalary(Player), porem robisz sobie abstrakcyjną klasę z implementacją giveSalay(Player) która daje graczu tyle kasy ile zwróci metoda protected double calaculateSalary(Player player), i ta metoda będzie abstrakcyjna w tej klasie, czyli podobnie jak z interfejsem, potem klasa rozszerzająca musi ją zaimplementować, a sama klasą z tą metodą musi być abstrakcyjna - tak samo jak interfejs, sama nie definiuje jeszcze żadnego pełnego typu, nie można utworzyć nowej instancji takiej klasy (no bo nie wszystkie metody są zaimplementowane) 3. i właśnie protected sprawia że daną metodę/zmienną można użyć tylko z tego samego package (tak samo jest kiedy nie dasz żadnego modyfikatora) ORAZ z klas rozszerzających daną klasę. A tak to słabo googlujesz, i szukaj po angielsku, więcej znajdziesz. No i szukaj pod javę a nie bukkita
  11. i co z tymi like sobie zrobie? w dupe wsadzę? xD Czego jeszcze nie rozumiesz, dostałeś instrukcje jak to zrobić, tylko tylko 1 prosty event.
  12. nasłuchujesz do EntityExplosionEvent i wtedy jest metoda: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/EntityExplodeEvent.html#blockList-- I iterujesz po niej usuwając bloki których nie chcesz niszczyć, najlepiej za pomocą metody .removeIf z listy, bo wygodniej i szybciej.
  13. co to znaczy nie działa, jaki kod napisałeś, daj go, napisz co było nie tak itd itp...
  14. main: Main w pluin.yml musisz podać całą nazwę głównej klasy, razem z package: me.HvgdcGaming.youtube.Main Z innych uwag: - package nazywamy tylko małymi literkami, czyli powinno być me.hvgdcgaming - Główną klasę warto nazywać jakoś senowniej, np WorldGuardPlugin, ułatwia to potem odwoływanie sie do innych pluignów
  15. bierz community, jest darmowe i lżejsze, a wersja pełna jest przydatna tylko jak robisz strony oparte na javie
  16. no tlumaczylem w poprzednim temacie kilka razy, to też IDE do javy, tylko lepiej podpowiada Chyba muszę tu kiedyś napisać poradnik oblsugi xD
  17. i właśnie dlatego pisałem by nie używać eclipse tylko intellijki, eclispe ma taki dziwny nawyk zezwalania na stworzenie .jar nawet jak kod nie jest poprawny: Caused by: java.lang.Error: Unresolved compilation problem: String literal is not properly closed by a double-quote at me.HvgdcGaming.youtube.Main.onCommand(Main.java:20) ~[?:?] i masz tu opis błędu i gdzie wystąpił. sender.sendMessage("Witam cie); musisz zamykać stringi, + IDE przecież pokazuje w takich miejscach że jest błąd, jakoś podkreśla na czerwono czy coś. Ech, czemu wszyscy nowi wybierają eclipse, a po roku czy coś i tak każdy normalny przechodzi na intellij xD
  18. po 1 masz przykład, po 2 ja ci z eclipse nie pomogę bo od dawna nie uzywam
  19. API to skrót od Application Programming Interface, i ogólnie jest to tylko wydzielona część programu z funkcjami które umożliwiają rozszerzanie jego możliwości, czyli ogólnie starasz się używać tylko API, co niestety nie zawsze jest możliwe, ale na razie używaj tylko API.
  20. jak sie tak szybko poddajesz to powodzenia.
  21. http://bukkit.gamepedia.com/Plugin_Tutorial tutaj jest sensowny kod w większości, ale też używają niestety eclipse, ale jak wpiszesz bukkit tutorial intellij w google to znajdziesz sporo poradnikow o skonfigurowaniu środowiska
  22. Nie oglądaj, same złe praktyki, znajdz coś porządnego tekstowego, ale i tak jest mało porządnych poradników, no cóż, każdy uczy się sam.
  23. 90% poradników na YT dotyczących mc i javy to beznadziejne [ciach]o, pozostałe 10% to tylko zwykle [ciach]o, a tak jak pisałem bardziej polecam intellij
  24. napisałem że ja polecam intellij, ma zdecydowanie lepszy system podpowiadania i wbudowany dekompilator (możesz zerknąć do wnętrza kodu do którego się odwołujesz nawet jeśli nie ma źródeł) i masę innych atutów, ale na początku robią one małe znaczenie, ale potem się ich nauczysz więc ja zdecydowanie polecam intellij.
  25. Huh, metod nauki jest masa i każdy woli co innego, ja np szybo się zniechęcam typowymi książkowymi przykadami i poradnikami i ktorych uczą jak napisać kalkulator w jedyne 2000 stron Ja polecam poszukać dowolnego poradnika tekstowego który pokazuje jak stworzyć główną klasę, plugin.yml, komendę i listener, no i może taska. potem pobrać najlepsze dostępne IDE - Intellij (wersja community wystarczy) i zgodnie z jakimiś instrukcjami stworzyć nowy projekt javy (najfajniej by bylo od razu uczyć się mavena, no ale może ci sie wydawać zbyt skomplikowane) I potem zwyczajnie bawić się z kodem, bo z pomocą dobrego ide i odrobiny angielskiego szybko odkryjesz co możesz stworzyć, np masz klasę Bukkit, wpisujesz w ide Bukkit. i masz wszystkie dostępne metody, np getOnlinePlayers, potem możesz zobaczyć co możesz robić na graczu, np setHealth itd. Najważniejsze czego będziesz musiał się nauczyć to odpowiedniego zadawania pytań w google, bo jak będziesz szukać "bukkit how to make ban plugin" (szukaj po angielsku, latwiej) to znajdziesz lipne wyniki, lipne gotowce i nawet nie zrozumiesz o co chodzi, a mozesz zamiast tego zastanowić się co trzeba zrobić by istniał ban: - Komenda /ban - Jakiś sposób zablokowania wejscia gracza na serwer - Zapis tego do np pliku I szukasz kolejno: Bukkit how to create command, bukkit how to disallow player join lub nawet od razu możesz skojarzyć że od tego są eventy i tylko poszukać eventu od wejścia gracza na serwer, mozesz to zrobić w google, lub nawet w ide, jak już sobie znajdziesz org.bukkit. to dalej tez ci IDE podpowieda, np org.bukkit.event.player.PlayerLoginEvent Potem znowu szukasz czegoś o plikach, pod bukkita lub samą javę, bukkit ma np gotowe API od plików yaml, ale możesz zapisać samemu w jakimś pliku .txt, reszty się nauczysz później. I na prawdę, zadawanie poprawnych pytań to podstawa, tak by na forum pytać się jak już się nie wie... Warto też przeglądać src jakiś dobrych pluginów jak już ogarniesz podstawy. Dodatkowo jest dokumentacja z opisem wszystkich metod w API bukkita: https://hub.spigotmc.org/javadocs/spigot/ No i zostaje kwestia upubliczniania... nie wrzucaj tych początkowych pluginów ot-tak na forum, bo mamy juz pierdyliard 50 linijkowych pluignów na bany, motd i inne takie glupoty które na początku często się tworzy, ALE warto jak wrzucisz swój kod, najlepiej używając serwisu github tutaj na forum, np do tego działu, pytając się o ocenienie kodu, wtedy np ja czy inni użytkownicy możemy powiedzieć co możesz zrobić lepiej i na nauce czego się skupić. A tak to warto zaleźć sobie coś co chcesz stworzyć, dla siebie na server np, i zacząć to pisać, na początku pewnie będzie szło słabo, ale jak już zobaczysz że coś zaczyna działać, to będziesz miał więcej motywacji by to kontynuować. EDIT: a na skrypty nie marnuj czasu, to zbyt prymitywny język, nauczy cię masy złych praktyk z którymi będziesz potem walczyć. EDIT2: no i oczywiście warto też po drodzę czytać coś o samej javie, np: https://docs.oracle.com/javase/tutorial/ chyba że z samych przykładów z innych kodów i poradników ograniesz używanie podstawowych konstrukcji, jak klasy, metody, zmienne, pętle, pola itd.
×
×
  • Dodaj nową pozycję...