-
Ilość zawartości
987 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
13
Treść opublikowana przez yooniks
-
pomagamy z kodem, a nie piszemy go za ciebie, tymbardziej że to nie twoj plugin
-
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
-
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
-
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
-
https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/Damageable.html#damage-double- to set health?
-
czemu tam jest getDamage? Użyj samego damage i sprawdz jakie ma parametry.. stawiam że tylko liczba zadanego dmg
-
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
-
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
-
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
-
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
-
dział kolego, zapędziłeś sie, wracaj do skryptow
-
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
-
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
-
Jak zrobić żeby do użycia komendy były potrzebne uprawnienia
yooniks odpowiedział(a) na Harrty_xx pytanie w Pytania i problemy
według mnie najprościej to chyba warunek ze sprawdzeniem permisjii gracza (Player#hasPermission) -
"wystarczy zmienić te znaczki" - wątpię że to zrozumiał jak tak napisales, bo nawet ja nie wiedziałem o co chodzi
-
jakie znaczki? przecież można używać " w stringu tylko trzeba umiec, poza tym to co wysłałem jest o wiele łatwiejsze uzyciu
-
https://www.spigotmc.org/wiki/the-chat-component-api/
-
@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
-
no jak nie działa block place to playerinteractevent i sprawdzass tylko ppm na block
-
no przecież raz w onenable, to nawet z githuba vault można się dowiedzieć
-
no economy jest nullem bo nigdzie nie przypisujesz wartości, wykonaj metodę setupeconomy
-
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?
-
restart to nie reload, loop jakiś by wystarczył a nie 30 linijek kodu od samego wyświetlania wiadomości i czekaniem
-
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
-
powyższy kod, tylko jak będzie działać to lepiej użyć if {group.variable::*} contains "wartość":
