Skocz do zawartości

LeviBoyPL

Użytkownik
  • Ilość zawartości

    718
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    15

Treść opublikowana przez LeviBoyPL

  1. Łatwiej by było gdybyś napisał jaka to aplikacja i o kasie skrypty chodzi, teoretycznie istnieje coś takiego jak autohotkey, ale dopóki nie wiemy co to za apka to nie wiemy czy są do niej skrypty
  2. LeviBoyPL

    Regex

    whitelistę możesz sobie sam dodać w kodzie, regex nie jest odpowiednim narzędziem do tego
  3. LeviBoyPL

    Regex

    ^[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$ Pasuje do: - example.com - mc.example.com / www.example.com / play.example.com - 255.255.255.255 Usuwanie spacji/zamianę znaków specjalnych i whitelistę możesz sobie sam dodać w kodzie, regex nie jest odpowiednim narzędziem do tego edit: ^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$ Oprócz powyższych przykładów będzie pasować do: - https://www.example.com - http://www.example.com - http://255.255.255.255 - http://blog.example.com
  4. LeviBoyPL

    END

    @EventHandler public void onPortal(PlayerPortalEvent event) { if(event.getCause() == TeleportCause.END_PORTAL) { event.setCanceled(true); } } Może ktoś wrzuci to do pluginu dla Ciebie, jeżeli nie to musisz to zrobić sam, jeżeli wyłączysz w bukkit.yml to nie będzie działał w ogóle
  5. Skrypt wrzucasz do folderu /plugins/Skript/scripts
  6. W takim razie zapraszam do zapoznania się z kursem z podstawami https://javastart.pl/baza-wiedzy/java-podstawy-jezyka
  7. W W konstruktorze masz swój storage, więc pobierasz albo za pomocą dostępu do pola czyli storage.uwtorzonaWczesniejMapa.get(uuid) albo robisz sobie getteta w storage
  8. Wtedy pobierz sobie mapę ze storage i sprawdź czy jest w niej obecne UUID, które wcześniej sobie wyciągnąłeś od gracza
  9. CommandPreprocess powinien implementować Listener, zatem metoda powinna mieć adnotację nad sobą (@EventHandler) i tak jak wcześniej wspomniałem handler powinien obejmować PlayerCommandPreprocessEvent, zatem metoda powinna wyglądać tak: @EventHandler public void commandPreprocess(PlayerCommandPreprocessEvent event) { } Dodatkowo, nazwy metod piszemy camelCase, więc zamiast CommandPreprocess powinieneś użyć commandPreprocess
  10. W takim razie stwórz sobie trzy klasy: - CaptchaStorage - CaptchaCommand implementuje CommandExecutor - JoinListener implementuje Listener - CommandPreprocess implementuje Listener W CaptchaStorage stwórz sobie HashMapę, w której kluczem będzie UUID, a wartością String, zarejestruj stworzone listenery/ustaw executor komendy i do każdej klasy dodaj w konstruktorze wcześniej stworzony storage. W JoinListener stwórz sobie handler do PlayerJoinEvent, w tym miejscu odnieś się do storage i dodaj do niego UUID gracza i losowo wygenerowany ciąg znaków. W CommandPreprocess stwórz handler do PlayerCommandPreprocessEvent, pobieraj sobie UUID gracza i sprawdzaj czy jest obecne w storage. Jeżeli jest to anuluj event. I nareszcie w CaptchaCommand po prostu sprawdzasz czy pierwszy argument wcześniej wygenerowanej metody onCommand odpowiada temu co pobierzesz ze storage i jeżeli jest to usuwasz UUID gracza, który wykonał metodę.
  11. Myślisz o systemie captcha? Jeżeli tak to dużo łatwiej będzie, jeśli skorzystasz z gotowego rozwiązania: https://www.spigotmc.org/resources/captchas-extremely-configurable-1-7-10-1-15-2-new-antibot-features.45922/ https://www.spigotmc.org/resources/mapcha.51630/ https://www.spigotmc.org/resources/krypton.90932/
  12. O UHC Zapisuję się, nick SkyMaker
  13. Po pierwsze nazwy klas piszemy PascalCase czyli zamiast przykladowaklasa - PrzykladowaKlasa. Po drugie warto zarzucić błędem który dostajesz w konsoli.
  14. Więc odpowiedź jest taka jaka napisałem - to nie jest plugin. //a sorki nie ogarnąłem na początku No tak jak napisałeś jest to "silnik" tyle, że nie jest to żaden spigot. To po prostu serwer, który odbiera i wysyła pakiety. Poszukaj po google "limbo" być może znajdziesz coś interesującego. Problem jest tylko taki, że większość tych serwerów jest przystosowana do dalszej rozbudowy pod siebie udostępniając jakieś API, a nie gotowe funkcje możliwe do skonfigurowania w configu.
  15. LeviBoyPL

    Placeholder

    I lobby i survival wskazują na ten sam adres ip
  16. LeviBoyPL

    Silnik proxy

    Bardzo się mylisz. Na naście tysięcy zakupów w sklepie, przytłaczająca większość była z kont nonpremium. Bierze się to stąd, że łatwiej jest takiemu dziecku iść po psc do żabki i kupić sobie vipa za 20 zł niż wydać 100zł płacąc kartą której nie posiadają. Na te naście tysięcy przytłaczająca większość płaciła właśnie poprzez psc. Co do @Nioo, napisałeś dużo prawdy. Dodatkowo warto zaznaczyć że konta nonpremium nadal stanowią większość, na 966834 ogółem kont w mysqlu 220072 mam kont premium, łatwo więc policzyć, że ~70% to konta nonpremium.
  17. To nie jest plugin, tylko osobny serwer, który stanowi bramkę przed dołączeniem na spigota
  18. LeviBoyPL

    cooldown

    Warto dopowiedzieć, że jeśli używasz poziomu języka co najmniej 8 to możesz użyć lambdy zamiast tworzyć nowy obiekt Runnable, czyli Bukkit#getScheduler().runTaskLater(plugin, ()-> { }, 20L); A najlepiej byłoby, gdybyś utworzył sobie osobną klasę do tworzenia tasków, w niej w konstruktorze podał obiekt pluginu i dodał metody do łatwego tworzenia tasków public BukkitTask runTaskLater(Runnable var2, long var3) { return plugin.getServer().getScheduler().runTaskLater(plugin, var2, var3); } Wtedy wystarczyłoby, że do konstruktora dodałbyś sobie tę klasę i wykonywał wcześniej napisane metody taskExecutor.runTaskLater(()-> player.sendMessage("test"), 10L);
  19. Na przykładzie innego skripta function checkCoins(target: offline player) :: number: # getting saved amount of cash from target player set {_result::*} to objects in column "amount" from result of query "SELECT amount FROM cash WHERE uuid = '%uuid of {_target}%'" and close set {_amount} to "%{_result::*}%" parsed as number "%{_result::*}%" is "<none>": update "INSERT INTO cash (`uuid`, `amount`) VALUES ('%uuid of {_target}%', '0')" set {_amount} to 0 return {_amount}
  20. LeviBoyPL

    Błąd z GUI

    Bo tak to napisałeś? Kod z /pandora RanksGUI.openGUI(p); Linijka 35
  21. W takim razie pierwszy warunek jest niespełniony i reszta kodu nie jest wykonywana, albo nie zarejestrowałeś listenera
  22. Co się dzieje aktualnie?
  23. LeviBoyPL

    Plugin

    https://www.spigotmc.org/wiki/config-files I do wykonania komendy potrzebujesz ConsoleCommandSender console = Bukkit.getServer().getConsoleSender(); String command = "/give SkyMaker diamonds 64"; Bukkit.dispatchCommand(console, command);
  24. Stwórz sobie screena i z poziomu screena uruchom serwer. Gdy wpiszesz /restart w minecraft to serwer się zastopuje a następnie wykona skrypt start nadal z poziomu screena. W start.sh musisz mieć jedynie java -Xmx8G -Xms8G -jar paper.jar Chyba że chodzi Ci o coś innego, ale totalnie się nie mogę połapać o co xd
  25. Czyli dokładnie jaka jest różnica między jednym a drugim, nie mamy szklanej kuli żeby zgadywać
×
×
  • Dodaj nową pozycję...