Skocz do zawartości

insertt

Użytkownik
  • Ilość zawartości

    81
  • Rejestracja

  • Ostatnia wizyta

Treść opublikowana przez insertt

  1. insertt

    runTask

    wklej logi z błędem przy uruchomieniu
  2. castujesz Playera z bukkita do swojego obiektu, który w żaden sposób nie jest powiązany z Playerem (nie dziedziczy po nim, nie implementuje etc.) i dlatego pewnie wywala ci ClassCastException, dlatego musisz stworzyć rejestr takich obiektów User, który będzie je tworzył i gdzieś trzymał, zapisywał itd
  3. ale ty dziwnie to robisz, stwórz sobie plik tekstowy, wklej; java -Xmx1G -Xms1g -jar <nazwa_silnika> -o false pause podmieniajac <nazwa_silnika> na nazwe pliku silnika, zapisz jako plik z rozszerzeniem .bat i odpal
  4. to zrob skrypt ktory bedzie go uruchamial, no chyba nie uruchamiasz go za pomoca 2x lpm
  5. dodaj pause na końcu skryptu, nie będzie od razu zamykało i podaj błąd
  6. do tego najlepiej stworzyć sobie framework od tworzenia gui, możesz wykorzystać mój: https://github.com/insertt/CustomWarps/tree/master/src/main/java/pl/insertt/customwarps/system/gui wtedy tworzysz sobie GuiItem z przypisaną akcją i przypisujesz je w odpowiednie miejsce do odpowiedniego GuiWindow.
  7. nasłuchujesz eventu AsyncPlayerChatEvent i formatujesz za pomocą event.setFormat(), tylko musisz zrobić to z odpowiednim priorytetem - tak, aby nie rozsypać całego czatu, bo inne pluginy też mogą coś dodawać do formatu tego chatu.
  8. insertt

    BlazingPack

    chyba tylko ta stara wersja, bo te nowsze wymagają whitelisty.
  9. ale co, jak - nie dałeś nawet błędu, nic : <
  10. @EventHandler public void onInteract(final PlayerInteractEvent event) { if(event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) { if(event.getClickedBlock().getState() instanceof Sign) { Sign sign = (Sign) event.getClickedBlock().getState(); sign.getLine(0); } } } no chyba, że chcesz coś szybszego, bo używanie BlockState tworzy nową instancję, to wtedy musisz użyć materiali.
  11. scoreboard sie nie pojawia, bo nie tworzysz dla gracza scoreboarda i go nie ustawiasz, a jedynie edytujesz objective, który też nie jest przypisany do żadnego scoreboarda. ps: if(p.getPlayer().isOnline()){ jeżeli robisz to w listenerze eventu PlayerJoinEvent, to ten warunek jest zbędny new Runnable(){ java 8 wprowadza lambdy, używaj ich : < Bukkit.getOfflinePlayer("") musisz pobierać jeszcze jego nazwe, bo tak to zwróci Ci referencje do tego obiektu, a nie jego nazwe. if(user.getGuild() != null){ Score s3 = ob.getScore(Bukkit.getOfflinePlayer("§7Gildia: §e" + user.getGuild())); s3.setScore(8); }else{ Score s3 = ob.getScore(Bukkit.getOfflinePlayer("§7Gildia: §eBrak gildii")); s3.setScore(8); } użyj ternary operatora. no i tworzenie taska jest zbędne, bo nie masz tutaj żadnego timera, scoreboard odświeżaj tylko przy aktualizacji informacji, nie obciążaj serwera zbędnymi taskami.
  12. insertt

    Top 10 :)

    pobierasz klucze za pomocą jakiejś pętli i wsadzasz do TreeMapa: Map<String, Integer> top = new TreeMap<>(Collections.reverseOrder()); top.putAll(lista); a potem printujesz wyniki do gracza, czy to w for czy streamem, nie ma znaczenia
  13. @EventHandler public void onCraft(PrepareItemCraftEvent event) { GregorianCalendar calendar = new GregorianCalendar(); calendar.setTimeInMillis(plugin.getConfig().getLong("date")); if(Date.from(calendar.toInstant()).after(new Date(System.currentTimeMillis()))) { event.getInventory().setResult(null); } } zarejestruj listener, dopasuj sobie date i ew. sposób cancellowania tego craftingu, bo nie testowałem. //Jesteś w dziale Skryptów, więc należy umieszczać skrypty z pluginu Skript
  14. zaktualizuj funnyguilds, bo 3.9.9.1 to bardzo stara wersja.
  15. to nie używaj tej wersji, bo jest przestarzała ;/ a tak to: Main.getInstance().getConfig().getString("motd").replace("%online", event.getPlayerCount())
  16. String motd = StringUtils.replace(Main.getInstance().getConfig().getString("motd"), "%online", event.getPlayerCount()); (nie wiem czy jest taka metoda getPlayerCount(), popraw jakby nie pasowało) pobierasz instancje głównej klasy, potem konfiguracje i z konfiguracji pobierasz dany string i za pomocą metody z StringUtils (wbudowane w spigota od wersji 1.8, commons) replacujesz dany placeholder na podane dane z eventu i potem ustawiasz za pomocą: event.setMotd(motd); no oczywiście przy starcie pluginu musisz taką konfigurację generować jeżeli nie ma i stworzyć template w pliku config.yml lub za pomocą config.addDefaults()
  17. insertt

    TabLista

    Caused by: java.lang.ClassNotFoundException: com.mojang.authlib.GameProfile plugin jest na inną wersje a silnik jest na innej wersji, dopasuj.
  18. czemu byte? data jest w short, a nie w byte jak dobrze pamiętam
  19. wystarczy mieć weakhashmap/cache i trzymać przypisane ip do nicku a potem podmieniać, nic trudnego
  20. bo oczekujesz gotowców, a on daje ci tylko wskazówki, dlatego takim osobom jak ty nie warto pomagać
  21. player.getInventory().firstEmpty() zwraca -1, jeżeli jest pełen ekwipunek
  22. insertt

    Max 1 String

    ale jakiś błąd, cokolwiek? bo w sumie nie wiadomo co tu mogło się zepsuć
  23. insertt

    Blokada komendy /?+tab

    @EventHandler public void tab(PlayerChatTabCompleteEvent event) { if(event.getChatMessage().equalsIgnoreCase("?")) { event.getTabCompletions().clear(); } } najprostszy sposób, jeżeli chodzi o kod (można też się bawić w protocolliba etc.), ale też nie wiem czy działa, popróbuj. a jeżeli nie odpowiada ci kod, no to są gotowe pluginy: https://dev.bukkit.org/projects/hideandcustomplugins
  24. jeżeli chcesz pobierać itemstack z configu, to musisz go jakoś zparsować, bo bukkit nie będzie wiedział o co chodzi, czyli: ItemStack ciastki = new ItemStack(Material.getMaterial(plugin.getConfig().getString("itemstack-ciastkihehe")), 1); tylko ten material też może być nullem, jeżeli nazwa nie pasuje do żadnego z listy materiali, przez co będzie wywalać błąd, dlatego musisz sprawdzać takie rzeczy, powodzenia.
×
×
  • Dodaj nową pozycję...