Rafep 3 Opublikowano 4 stycznia 2020 Udostępnij Opublikowano 4 stycznia 2020 Cześć urwisy Mam takie pytanie... Jak zablokować komendę? - to znaczy, jak wpisuję np. /gamemode, to komenda ma się nie wykonywać i żeby się wyświetliła jakas customowa wiadomość. Z góry dziękuje za wszystkie odpowiedzi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Mister Gun 0 Opublikowano 4 stycznia 2020 Udostępnij Opublikowano 4 stycznia 2020 (edytowane) options: message: &7[&4BLOKADA&7] &aTa komenda została zablokowana on command: if command is "gamemode": cancel event send "{@message}" edit: dopiero teraz zauważyłem że to kategoria tworzenie pluginów a nie skript. Edytowane 4 stycznia 2020 przez Mister Gun Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Rafep 3 Opublikowano 4 stycznia 2020 Autor Udostępnij Opublikowano 4 stycznia 2020 @Mister Gun Ja plugin robię, nie skrypt ;v Chyba muszę zacząć pisać to, bo ludzie nie patrzą na kategorie xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 yooniks 347 Opublikowano 4 stycznia 2020 Udostępnij Opublikowano 4 stycznia 2020 Użyj eventu PlayerCommandPreProcessEvent jak już ogarnąłeś listenery Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 paweU 64 Opublikowano 5 stycznia 2020 Udostępnij Opublikowano 5 stycznia 2020 PlayerCommandPreProcessEvent Jeżeli event.getMessage() zawiera slowo "gamemode" lub "gm" to anuluj event Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Rafep 3 Opublikowano 5 stycznia 2020 Autor Udostępnij Opublikowano 5 stycznia 2020 Zrobiłem taki kod: @EventHandler public void onCommand(PlayerCommandPreprocessEvent e) { if(e.getMessage().equalsIgnoreCase("gamemode")) { e.setCancelled(true); e.getPlayer().sendMessage(Utils.tl("&cNie wolno brzydalu.")); } } I nie działa D:) (zaimplementowałem listenera jak coś) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 534 Opublikowano 5 stycznia 2020 Udostępnij Opublikowano 5 stycznia 2020 42 minuty temu, Rafep napisał: Zrobiłem taki kod: @EventHandler public void onCommand(PlayerCommandPreprocessEvent e) { if(e.getMessage().equalsIgnoreCase("gamemode")) { e.setCancelled(true); e.getPlayer().sendMessage(Utils.tl("&cNie wolno brzydalu.")); } } I nie działa D:) (zaimplementowałem listenera jak coś) powinno być: if(e.getMessage().equalsIgnoreCase("/gamemode")) { Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Rafep 3 Opublikowano 5 stycznia 2020 Autor Udostępnij Opublikowano 5 stycznia 2020 @HotAngel2K17 Nadal nie działa Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 shitzuu 10 Opublikowano 5 stycznia 2020 Udostępnij Opublikowano 5 stycznia 2020 (edytowane) @Rafepsprawdz jeszcze raz, to jest poprawnie przetestowane. @EventHandler public void onCommand(PlayerCommandPreprocessEvent e) { if(e.getMessage().equalsIgnoreCase("/gamemode")) { e.setCancelled(true); e.getPlayer().sendMessage(Utils.tl("&cNie wolno brzydalu.")); } } Dobra, zaimplementowales listenera a zarejestrowales go w onEnable? Edytowane 5 stycznia 2020 przez mvsieK_ Rafep 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Rafep 3 Opublikowano 5 stycznia 2020 Autor Udostępnij Opublikowano 5 stycznia 2020 @mvsieK_ A no tak, trzeba tego listenera zarejestrować... Wszystko już działa. Temat do zamknięcia Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 paweU 64 Opublikowano 6 stycznia 2020 Udostępnij Opublikowano 6 stycznia 2020 (edytowane) 11 godzin temu, Rafep napisał: @mvsieK_ A no tak, trzeba tego listenera zarejestrować... Wszystko już działa. Temat do zamknięcia Okej, ale radziłbym użyć tutaj contains zamiast equalsIgnoreCase Edytowane 6 stycznia 2020 przez paweU xAxee 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ixidi 717 Opublikowano 6 stycznia 2020 Udostępnij Opublikowano 6 stycznia 2020 5 godzin temu, paweU napisał: Okej, ale radziłbym użyć tutaj contains zamiast equalsIgnoreCase Dlaczego? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 paweU 64 Opublikowano 6 stycznia 2020 Udostępnij Opublikowano 6 stycznia 2020 (edytowane) 8 minut temu, Ixidi napisał: Dlaczego? Ponieważ "contains" sprawdza czy dany String zawiera dany ciąg znaków, a equalsIgnoreCase sprawdza czy jest równy przy tym pomijając wielkość znaków. Przykładowo, jeżeli dasz : if(command.equalsIgnoreCase("/test")) player.sendMessage("test"); i wpiszesz "/test test", to wiadomość "test" się nie wyświetli. Natomiast jeżeli dasz if(command.contains("/test")) player.sendMessage("test") To graczowi wyślę wiadomość jeżeli tylko wychwyci ciąg znaków "/test" W zastosowaniu u twórcy tematu przy zastosowaniu equalsIgnoreCase, gdy ktoś wpiszę "/gamemode creative" to anulowanie nie odbędzie się. Edytowane 6 stycznia 2020 przez paweU Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ixidi 717 Opublikowano 6 stycznia 2020 Udostępnij Opublikowano 6 stycznia 2020 3 godziny temu, paweU napisał: Ponieważ "contains" sprawdza czy dany String zawiera dany ciąg znaków, a equalsIgnoreCase sprawdza czy jest równy przy tym pomijając wielkość znaków. Przykładowo, jeżeli dasz : if(command.equalsIgnoreCase("/test")) player.sendMessage("test"); i wpiszesz "/test test", to wiadomość "test" się nie wyświetli. Natomiast jeżeli dasz if(command.contains("/test")) player.sendMessage("test") To graczowi wyślę wiadomość jeżeli tylko wychwyci ciąg znaków "/test" W zastosowaniu u twórcy tematu przy zastosowaniu equalsIgnoreCase, gdy ktoś wpiszę "/gamemode creative" to anulowanie nie odbędzie się. Doskonale wiem co robią te funkcje, a w zastosowaniu u twórcy sens ma jedynie metoda startsWith. kerpson i paweU 2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 yooniks 347 Opublikowano 6 stycznia 2020 Udostępnij Opublikowano 6 stycznia 2020 (edytowane) Hm co do UP proponowałbym raczej sprawdzanie tylko "pierwszej części tekstu", w taki sposob: String cmd = message.split(" ")[0]; Bo ze startsWith wylapie również /gamemodekupa a nie same /gamemode więc trochę dziwnie, no i z contains i equals też źle by było Edytowane 6 stycznia 2020 przez yooniks autokorekta Queito, paweU, Ixidi i 1 inny 4 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ixidi 717 Opublikowano 6 stycznia 2020 Udostępnij Opublikowano 6 stycznia 2020 55 minut temu, yooniks napisał: Hm co do UP proponowałbym raczej sprawdzanie tylko "pierwszej części tekstu", w taki sposob: String cmd = message.split(" ")[0]; Bo ze startsWith wylapie również /gamemodekupa a nie same /gamemode więc trochę dziwnie, no i z contains i equals też źle by było Ta masz racje, nie pomyślałem. yooniks i Rafep 2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Rafep 3 Opublikowano 8 stycznia 2020 Autor Udostępnij Opublikowano 8 stycznia 2020 W mordę jeża, faktycznie! Mój zacny plugin posiadał w sobie błąd! Ale dzięki wam urwisy udało się go rozwiązać. Amen. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 TakiJakTy 140 Opublikowano 9 stycznia 2020 Udostępnij Opublikowano 9 stycznia 2020 Problem został rozwiązany. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
Rafep 3
Cześć urwisy
Mam takie pytanie... Jak zablokować komendę? - to znaczy, jak wpisuję np. /gamemode, to komenda ma się nie wykonywać i żeby się wyświetliła jakas customowa wiadomość.
Z góry dziękuje za wszystkie odpowiedzi
Odnośnik do komentarza
Udostępnij na innych stronach
17 odpowiedzi na to pytanie
Rekomendowane odpowiedzi