-
Ilość zawartości
718 -
Rejestracja
-
Ostatnia wizyta
-
Wygrane w rankingu
15
Treść opublikowana przez LeviBoyPL
-
Jak dodać główkę do result slota?
LeviBoyPL odpowiedział(a) na ProgramistaFront pytanie w Pytania i problemy
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 -
Polecam zdjąć aluminiową czapeczkę https://dnschecker.org/#A/WWW.BANDYCITUSKA.COM
-
https://askubuntu.com/a/1379567
-
Minecraft + MOD space dimensions - prośba o porady / instrukcję
LeviBoyPL odpowiedział(a) na sebastianR pytanie w Pytania i problemy
https://space-dimensions-mod.fandom.com/wiki/Space_Dimensions_Mod_Wiki -
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
-
Nie wiem jak reszta, ale koks ma tylko swoje pluginy z wyjątkiem ac i api do modeli petów
-
Nie widziałem tej libki, ani w zasadzie nigdy nie znam pytona, ale zgaduję, że brakuje Ci adnotacji @bot.event nad member join.
- 1 odpowiedź
-
- discord-py
- discord.py
-
(i 3 więcej)
Oznaczone tagami:
-
Aktualizacja i tworzenie kont pomoc
LeviBoyPL odpowiedział(a) na tataidwochsynow pytanie w Pytania i problemy
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. -
Ż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());
-
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ść.
-
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"); } }
-
Problem klonowania itemów / przedmiotów
LeviBoyPL odpowiedział(a) na ScripteR pytanie w Pytania i problemy
Albo "większe" serwery mogą robić GUI na pluginach, w których nie ma mowy o żadnym kopiowaniu nawet w przypadku laga. -
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
-
Czyli resell hetznera
- 13 odpowiedzi
-
- minecraft host
- mc host
-
(i 3 więcej)
Oznaczone tagami:
-
instrukcja może mieć lekko outdated obrazki, bo widzę, że użyto tam starego poczciwego tplinka, ale zasada działania jest taka sama https://www.wikihow.com/Portforward-Minecraft
- 3 odpowiedzi
-
public class AutoSell extends JavaPlugin { @Override public void onEnable() { Bukkit.getServer().getScheduler().runTaskTimer(this, () -> { for(Player loopPlayer : Bukkit.getOnlinePlayers()) { loopPlayer.chat("/sell"); } }, 20*60L); } } importy musisz sobie porobić sam, nie udało mi się wywróżyć z fusów szczegółów, ale powinno działać niezależnie od wersji
-
if(!ChatOffBlock.muted == false || !ChatOnBlock.muted == false) ta linijka woła o pomste do nieba robisz tak jak kolega wspomniał wyżej, jedną zmienną, która przymuje wartości true i false i jest zmieniana z obu klas później jedynie sprawdzasz if(muted) to oznacza, że muted jest true. Jak nie działa to robisz sobie debuga i wyświetlasz tą zmienną w konsoli.
-
nie jestes w stanie zliczyc ile bylo tych serwerow xd wieszkosc opierdala sie jednak na wersji 1.8, a tutaj mamy cos swiezego, tryb td wyszedl calkiem spoko, chetnie zobacze jak bedzie z rustem
-
ty Racja, ale w Twoim przypadku większość kodu powinieneś przenieść na obiekty Oczywiście, że da
-
Kod jest tragiczny, nie pozwala na jakąkolwiek rozbudowę, a chęć dodania kita, równa się z dopisywaniem wszędzie if(k==4) give(). Powinieneś stworzyć sobie obiekt kita, zawierający pola id, cooldown (tak żeby każdy kit mógł być obierany co x czasu niezależnie), items w formie jakiejś listy. Wtedy w komendzie pobierasz sobie kita po id i sprawdzasz kiedy gracz ostatnio go brał i nadajesz itemy forem. Skróci Ci to kod niebotycznie. Nazywanie zmiennych też jakoś dziwnie, klasę nazywasz KitUser (swoją drogą java jest językiem OOP, nie wiem dlaczego korzystasz ze staticów), a w kodzie nazywasz ją kit, co sugeruje, że działasz na obiekcie kita. Aktualne pole kit zawiera pole UUID, ale z tego co widzę to UUID jest kluczem w mapie, więc nigdzie z niego nie korzystasz. Piszesz dziesiątki setterów, starczyłoby użyć lomboka.
-
plugin na brak dropu cobblestone ze stone
LeviBoyPL odpowiedział(a) na siemasiema pytanie w Zlecenia
public class NoCobble extends JavaPlugin implements Listener { @Override public onEnable() { this.getServer().getPluginManager().registerEvents(this, this); } @EventHandler public onBlockBreak(BlockBreakEvent event) { Block block = event.getBlock(); if(block.getType().equals(Material.STONE)) { event.setCancelled(true); block.setType(Material.AIR); } } } rozbij to sobie na dwie osobne klasy, dodaj importy, bo tego na pamięć nie znam, dodaj plugin.yml i skompiluj, będzie śmigać -
Zapisywałbym nawet do listy osoby z gm'em i podczas wychodzenia sprawdzał listę i setował na sv
-
https://github.com/MilkBowl/VaultAPI
-
[1.14-1.19][MINIGAMES] FazMC.com - serwer minigames z autorskimi trybami
LeviBoyPL odpowiedział(a) na Glicz temat w Prezentacje serwerów Minecrafta
Sprawdziłem to u siebie w bazie, mam ponad 2 miliony userów, więc ilość danych jest dość spora. I tak, mówimy głównie o Polsce (chociaż gracze z chin i państw sąsiadujących też wchodzą)
