-
Ilość zawartości
718 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
15
Treść opublikowana przez LeviBoyPL
-
Ł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
-
whitelistę możesz sobie sam dodać w kodzie, regex nie jest odpowiednim narzędziem do tego
-
^[\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
-
@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
-
Skrypt wrzucasz do folderu /plugins/Skript/scripts
-
W takim razie zapraszam do zapoznania się z kursem z podstawami https://javastart.pl/baza-wiedzy/java-podstawy-jezyka
-
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
-
Wtedy pobierz sobie mapę ze storage i sprawdź czy jest w niej obecne UUID, które wcześniej sobie wyciągnąłeś od gracza
-
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
-
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ę.
-
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/
-
O UHC Zapisuję się, nick SkyMaker
-
Po pierwsze nazwy klas piszemy PascalCase czyli zamiast przykladowaklasa - PrzykladowaKlasa. Po drugie warto zarzucić błędem który dostajesz w konsoli.
-
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.
-
I lobby i survival wskazują na ten sam adres ip
-
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.
-
To nie jest plugin, tylko osobny serwer, który stanowi bramkę przed dołączeniem na spigota
-
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);
-
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}
-
Bo tak to napisałeś? Kod z /pandora RanksGUI.openGUI(p); Linijka 35
-
W takim razie pierwszy warunek jest niespełniony i reszta kodu nie jest wykonywana, albo nie zarejestrowałeś listenera
-
Co się dzieje aktualnie?
-
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);
-
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
-
Czyli dokładnie jaka jest różnica między jednym a drugim, nie mamy szklanej kuli żeby zgadywać
