Skocz do zawartości

yooniks

Użytkownik
  • Ilość zawartości

    987
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    13

Treść opublikowana przez yooniks

  1. pomagamy z kodem, a nie piszemy go za ciebie, tymbardziej że to nie twoj plugin
  2. Obawiam się, że większość tego kodu nie jest twoja =( Tam gdzie masz tworzenie ekwipunków (od sklepu itp), w tym ekwipunku którym chcesz dodaj na 13 slocie ten item, tak jak poprzednie. A w listenerze dorób kolejnego ifa, if (e.getSlot() == 13) { //lub 12, nie wiem jak chcesz, 1 slot w gui to tak naprawdę 0, w pluginie jest liczone od 0, nie od 1! czyli ostatni slot w pierwszym rzędzie to 8, a nie 9 //no i tutaj wlasnie nie wiem za bardzo o co ci chodzi, "SPRZEDAJ WSZYSTKO", ale co wszystko? //mozesz zrobic petle ze wsyzstkimi itemami ze sklepu ktore mozna sprzedac i sprawdzic czy gracz moze je sprzedac (czy ma wystarczajaca ilosc itd) final List<Item> items = ItemManager.getAllSellableItems(); //zamien to na swoja metode z pobieraniem itemamow ktore mozna sprzedac items.stream() .filter(item -> this.canSell(player, item)) .forEach(item -> this.sell(player, item)); //lub jakas inna petla, bo za kazdym razem musisz w sumie usuwac itemy za zakupiony przedmiot i dopiero wtedy sprawdzac czy gracza stac na nastepny, ja daje tylko przyklad } private boolean canSell(Player player, Item item) { //sprawdz czy ma wystarczajaco itemow w ekwipunku itd, zwroc poprawna wartosc - true/false return true; } private void sell (Player player, Item item) { //add coins etc } to tylko przyklad, sam musisz pokombinowac, to w koncu podobno twoj kod
  3. yooniks

    Ilość graczy

    Tak jak @up napisał, w metodzie String#replace parametrem pierwszym i drugim musi byc String.. Naucz sie czytac takie proste rzeczy, lub czytaj to co podpowiada eclipse.. Daj te (bukkit.getonlineplayers...) w String#valueOf aby sprowadzic to do stringa. A odchodząc od tematu, te Config.Join.get(id) moze rzucac bledami, wiec zrob sobie to jakos lepiej i zamiast zwyklego replace mozesz uzywac tego z StringUtils od apache
  4. yooniks

    xD-Bans - Plugin na bany

    pełno niepoprawnego kodu typu side-effects w klasie user (dodawanie do listy userow w konstruktorze) statyczny usermanager z LISTA userow, zamiast jakas mapka z uuid,user nazewnictwo paczek - np. "object" ogolnie to kazda klasa dziedziczy po object wiec no nw po co tylko user traktujesz jako obiekt i on jest w tym package if (ConfigManager.getPlayerNameFilter()) { for (User u : UserManager.getUsers()) { names.add(u.getName().toUpperCase()); normalNick.add(u.getName()); } if ((names.contains(e.getName().toUpperCase()) && (UserManager.get(e.getUniqueId()) == null))) { String normal_nick = ""; for (int i = 0; i < names.size(); i++) { if (normalNick.get(i).equalsIgnoreCase(e.getName())) { normal_nick = normalNick.get(i); } } no ogolnie to ja bym tego wgl nie uzywal skoro jest pelno innych pluginow na bany, wiecej funkcji i lepiej napisane
  5. https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/Damageable.html#damage-double- to set health?
  6. czemu tam jest getDamage? Użyj samego damage i sprawdz jakie ma parametry.. stawiam że tylko liczba zadanego dmg
  7. yooniks

    Plugin

    No to już zależy jak ta klasa która chce zedytować wygląda, można by tylko ta jedna klasę zdekompilowac, wrzucić do jakiegoś projektu, do libek dodać ten plugin, wyexportowac i podmienic klase(tak będzie najszybciej) , no ale ja niestety nie mam na to czasu, wiecznie zajęty zawsze można też poprosić autora pluginu:d
  8. Myślę, ze to nie ten dział, ale bardzo bardzo dawno uzywałem chestcommands wiec może pomoge. W konfiguracji chestcommands masz wszystko wyjasnione, tworzysz tam sobie rozne sekcje i jak dodajesz tam item np. o nazwie "warp1" to mozesz mu ustawic player command (akcje) czy cos takiego i tam ustawiasz tez wartosc i po prostu bedzie wykonywlo komende np. /warp asdasd Przeczytaj sobie dokladnie wiki chestcommands i poradniki jak konfigurowac menu
  9. No bez przesady, naucz sie pierw podstaw i dopiero bierz sie za pluginy.. To tak jakbys nie nauczyl sie robienia malej rzeczy np. w samochodzie, a juz bys chcial go skladac od zera lub naprawiac.. Metoda onEnable ma byc w srodku klasy Main a nie poza nią.. (spójrz na ułożenie klamer) Tak samo z listenerem.. zamykasz klase i metoda jest poza klasą. Naucz sie czegoś prostego, naucz sie poprawnie pisać chociaż podstawy i dopiero bierz sie za pluginy.. Tak, ale może to zrobić też w pluginie, i po co komuś zabierać te chęci? A może go pluginy tak zainteresują, że za kilka lat bedzie już bardzo doświadczony i nie tylko w pisaniu pluginów - bo pisząc pluginy też sie rozwija, z czasem nauczy sie pisac czysty kod, z czasem zrobi sie to dla niego troche nudne, nauczy sie czegos nowego i tak bedzie sie rozwijal? W skrypcie nie napisze pozniej jakiegos duzego projektu :d Jak chce sie uczyc to niech sie uczy, ale póki co niech zacznie pierw od podstaw. Do tego kodu wróci po tygodniu i sam zobaczy jakie głupie błędy zrobił I tak wracając do głownego tematu, masz tu troche poprawione, powinno chyba dzialac
  10. yooniks

    Pytanie

    blockplacevent nasłuchujesz, sprawdzasz czy położony blok to głowa skeletona, jeżeli tak to sprawdzasz jeszcze blok pod głowa(czy jest blokiem zlota) jeżeli się zgadza to spawnujesz skeletona o: a sposobów na sprawdzenia bloku niżej jest pełno, znajdziesz coś w necie, "check block under block spigot" substrace, getreliative chyba bylo czy coś takiego i blockface.down
  11. dział kolego, zapędziłeś sie, wracaj do skryptow
  12. Wątpie, że ktoś zrobi coś takiego, ja napisałem coś podobnego na zlecenie (nie przekroczylo chyba 100zl), tylko ze jeszcze wgrywanie schematow, border, kity no i ogolnie to bylo cos w stylu arenek, no i szybko sie czegos takiego nie pisze wiec lepiej komus zaplac zeby zrobil ci to na zlecenie, wydajnie
  13. temat jest o pluginie a nie skrypcie poza tym niektórzy lepiej piszą pluginy niż skrypty (i są dla nich łatwiejsze), nie wiem co tutaj trudnego =( tworzysz obiekt i ustawiasz wartosci, wszystko prosciutkie - @up nawet przyklad podal z tej stronki
  14. według mnie najprościej to chyba warunek ze sprawdzeniem permisjii gracza (Player#hasPermission)
  15. "wystarczy zmienić te znaczki" - wątpię że to zrozumiał jak tak napisales, bo nawet ja nie wiedziałem o co chodzi
  16. jakie znaczki? przecież można używać " w stringu tylko trzeba umiec, poza tym to co wysłałem jest o wiele łatwiejsze uzyciu
  17. https://www.spigotmc.org/wiki/the-chat-component-api/
  18. yooniks

    Perła Kresu

    @EventHandler public void onTeleportOutOfBorder(final PlayerTeleportEvent event) { final Player player = event.getPlayer(); final GameArena arena = this.arenaManager.findArenaByPlayer(player.getUniqueId()); if (arena == null || event.getCause() != PlayerTeleportEvent.TeleportCause.ENDER_PEARL) { return; } WorldBorder border = arena.getBorder(player.getUniqueId()); if (border == null) { border = arena.setBorder(player.getUniqueId(), arena.getCenter(), arena.getSize()); } Location loc = event.getTo(); double size = border.getSize() / 2; double x = loc.getX() - border.getCenterX(), z = loc.getZ() - border.getCenterZ(); if ((x > size || (-x) > size) || (z > size || (-z) > size)) { event.setCancelled(true); player.sendMessage(colored(MessagesConfig.ARENA$CANNOT_USE_PEARL_OUTSIDE_BORDER)); player.getInventory().addItem(new ItemStack(Material.ENDER_PEARL)); } } moj stary kod na nierzucanie perełki poza arene z danym worldborderem na gracza, jak sobie dobrze zmienisz (wywal zmienna arene i border i dodaj zmienne z "size i center") to powinno byc dobrze, dodasz to do klasy z listenerem, zarejestrujesz w mainie i bedzie git, calego nie bede za ciebie robil bo to duzo czasu zleci na sam build xd
  19. no jak nie działa block place to playerinteractevent i sprawdzass tylko ppm na block
  20. no przecież raz w onenable, to nawet z githuba vault można się dowiedzieć
  21. no economy jest nullem bo nigdzie nie przypisujesz wartości, wykonaj metodę setupeconomy
  22. Napisałeś z 10 słówek, a aż mi się nie chce czytać Zero informacji o wynagrodzeniu, o tobie, serwerze, zgaduje jeszcze, że masz 10 lat, zero doświadczenia w prowadzeniu serwerów, ale szukasz programisty, który wszystko za ciebie zrobi, a dostanie 10% z edycji?
  23. restart to nie reload, loop jakiś by wystarczył a nie 30 linijek kodu od samego wyświetlania wiadomości i czekaniem
  24. yooniks

    Grupowe TP

    tylko ze to co ci wlasnie napisal to jedyna rzecz ktora by pomogla poza tym tworzenie nawet poza petlą (w metodzie) jest glupie, stworz sobie gdzies najlepiej poza ciałem metody finalny obiekt random
  25. yooniks

    YAML

    powyższy kod, tylko jak będzie działać to lepiej użyć if {group.variable::*} contains "wartość":
×
×
  • Dodaj nową pozycję...