Skocz do zawartości

LeviBoyPL

Użytkownik
  • Ilość zawartości

    718
  • Rejestracja

  • Ostatnia wizyta

  • Wygrane w rankingu

    15

Ostatnia wygrana LeviBoyPL w dniu 8 listopada 2023

Użytkownicy przyznają LeviBoyPL punkty reputacji!

3 obserwujących

O LeviBoyPL

  • Urodziny 05/02/1999 (27.146882404 lat)

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Aether
  • Nick w MC
    LeviPlayGames

Ostatnie wizyty

7585 wyświetleń profilu

Osiągnięcia LeviBoyPL

  1. Po pierwsze - thread safe rozwiązanie powinno zakładać, że przyjmowanym argumentem funkcji byłoby inventory z eventu. Po drugie - nie ma możliwości, aby InventoryOpenEvent#getPlayer zwrócił Ci cokolwiek innego niż instancję playera, check możesz usunąć. Po trzecie - odśwież inventory po ustawieniu itemka, z tymi slotami craftingowymi jest taki problem, że clientside się bugują, bo w zasadzie nie powinny się tam znajdować itemki po otworzeniu eq, slotem dla resulta jest 0 (możesz to sobie sprawdzić np. tworząc listener dla InventoryClickEvent
  2. Polecam zdjąć aluminiową czapeczkę https://dnschecker.org/#A/WWW.BANDYCITUSKA.COM
  3. https://askubuntu.com/a/1379567
  4. https://space-dimensions-mod.fandom.com/wiki/Space_Dimensions_Mod_Wiki
  5. Gierki nie pobierałem, ale na podstawie screenów i opinii o poprzedniej aplikacji mogę powiedzieć dobra robota Przyjemny design przyjąłeś dla apek. Fajnie widzieć, że chłopaki, którzy robili jakieś skrypty, robią totalnie nowe rzeczy
  6. Nie wiem jak reszta, ale koks ma tylko swoje pluginy z wyjątkiem ac i api do modeli petów
  7. Nie widziałem tej libki, ani w zasadzie nigdy nie znam pytona, ale zgaduję, że brakuje Ci adnotacji @bot.event nad member join.
  8. Na jednej kopii gry może grać jedna osoba jednocześnie. Nie możesz kupić jednej gry i zrobić tak, żeby korzystały z tego równocześnie 3 inne osoby. Wersję gry można wybrać z poziomu launchera, należy wybrać opcję "Instalacje" na górnej wstążce, nowa instalacja i w polu wersja wybrać konkretną wersję. Między wersjami można przełączać się wracając do opcji "graj" i po lewej stronie jest wybór wersji.
  9. Żeby mieć placeholdery musiałbyś dodać je w wiadomościach rankMessages.put("joinmessage.rank.admin", "+ admin %player%"); I później zamieniać podczas wysyłania event.setJoinMessage(highestMessage.replaceAll("%player%", event.getPlayer().getName());
  10. Przeanalizuj sobie ten kod po kolei co on robi. Napisałem to tak, że masz mapkę z wartościami klucz permisji -> wiadomość, później, żeby sprawdzić jaka jest kogoś najwyższa permisja w danym momencie to przez tą mapkę sobie loopuje i zmieniam wartość highestMessage jeśli gracz ma daną permisję. Ważne w zasadzie jest to, żeby te wiadomości układać od najmniejszej do największej, bo w innym wypadku gracz który ma uprawnienia .admin i .player dostanie wiadomość ostatnią z tej listy. Jeśli chciałbyś to zrobić porządnie to musiałbyś pobierać rangę gracza i to na niej opierać wyświetlaną wiadomość.
  11. public class WelcomeMessagesPlugin extends JavaPlugin implements Listener { private Map<String, String> rankMessages; @Override public void onEnable() { getServer().getPluginManager().registerEvents(this, this); initializeRankMessages(); } @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); String playerName = player.getName(); String highestMessage = "" for(Map.Entry<String, String> entry : rankMessages.entrySet()) { if(player.hasPermission(entry.getKey()) highestMessage = entry.getValue(); } event.setJoinMessage(highestMessage); } private void initializeRankMessages() { rankMessages = new HashMap<>(); rankMessages.put("joinmessage.rank.player", ""); rankMessages.put("joinmessage.rank.mod", "+ mod"); rankMessages.put("joinmessage.rank.admin", "+ admin"); } }
  12. Wszystkie te kody nie będą działać poprawnie, sprawdzają one czy dany NICK jest premium, a nie czy wchodzący gracz jest premium. Do tego raczej będziesz potrzebował sieci bungee, choć może znajdzie się jakiś plugin, który to ogarnia
  13. Albo "większe" serwery mogą robić GUI na pluginach, w których nie ma mowy o żadnym kopiowaniu nawet w przypadku laga.
  14. Kilka uwag: Przede wszystkim, powinieneś stworzyć jedną komendę, np ngen i tam dodać subkomendy add remove i edit Sprawdź konwencja nazewnictwa w javie. Przede wszystkim jak poprawnie nazywać package. Czemu połowa zmiennych i metod jest nazwana po polsku, a drugie pół po angielsku? Zamiast wrzucać isInt i kolor do maina mógłbyś stworzyć klasę ze statycznymi metodami, np Utils i tam wrzucić pomocnicze metody. Pusta klasa GeneratosEvent. Zamiast zmiany wrzucać do configa i czytać ten config co sekundę (co jeśli ktoś chciałby custom czas?), zapisuj obiekty generatora w ramie. Stwórz sobie jakiś GeneratorStorage i tam przechowuj wszystkie generatory, a w tasku zrób foreacha na listę czy mapkę. Akurat w tym przypadku jest to trochę pierdółka, ale ogólnie jest to dość ważny temat. Kod nie jest thread-safe. Jest to dość obszerne pojęcie, dlatego odsyłam do google, ale mogę w skrócie napisać, że chodzi o to, że masz na przykład kod x, y, z = player.getLocation().getDanyBlok(). W tym momencie pobierasz lokalizację gracza za każdym razem od nowa. Kod wykonywany jest synchronicznie, tzn leci linijka po linijce i następuje egzekucja danego fragmentu. Alee w czasie kiedy wykonywany jest Twój kod, dzieje się bardzo wiele wokół. Może na przykład dość do sytuacji, w czasie powiedzmy laga, że gracz zmienił pozycję, a Twój kod jest akurat wykonywany, tzn pobrałeś x, pobrałeś y, nagle jest lag, gracz zmienia pozycję i jest już w innym z, więc ma gena przesuniętego o jedną kratkę. Zapobieganie temu jest bardzo proste. Wystarczy, że pobierzesz raz do zmiennej player.getLocation() i będziesz operował na tej zmiennej. Możesz zrobić sobie klasę Messages, w której statycznie będziesz przetrzymywał wszystkie wiadomości, a wysyłać za pomocą player.sendMessage(Messages.USAGE_REM_GEN), w ten sposób będziesz miał łatwy dostęp do wszystkich wiadomości. Nie używaj & w wiadomościach, bardzo przestarzałe podejście. Zamiast tego powinieneś dodawać kolory przy użyciu ChatColor: player.sendMessage(ChatColor.GRAY + "»..."); albo jeszcze lepiej player.sendMessage(String.format("%s»...", ChatColor.GRAY) Fajny plugin do poćwiczenia, na początek, ale brakuje tutaj trochę elementarnej wiedzy nt programowania jak i programowania w javie. Jeśli wprowadzisz chociaż część zaproponowanych poprawek, to zobaczysz, że zacznie Ci się kodzić lepiej
  15. Czyli resell hetznera
×
×
  • Dodaj nową pozycję...