Skocz do zawartości
  • 0

Blokowanie komend


Rafep
 Udostępnij

Pytanie

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 :3 

Odnośnik do komentarza
Udostępnij na innych stronach

17 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

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

  • 0
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

  • 0

@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."));
		}
	}

image.png

Dobra, zaimplementowales listenera a zarejestrowales go w onEnable?

Edytowane przez mvsieK_
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
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 przez paweU
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
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.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

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 przez yooniks
autokorekta
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
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.

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...