Skocz do zawartości
  • 0

Blokowanie komend


Rafep

Pytanie

17 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
options:
	message: &7[&4BLOKADA&7] &aTa komenda została zablokowana

on command:
	if command is "gamemode":
		cancel event
		send "{@message}"

edit: :facepalm: dopiero teraz zauważyłem że to kategoria tworzenie pluginów a nie skript.

Edytowane przez Mister Gun
Odnośnik do komentarza
https://skript.pl/temat/36444-blokowanie-komend/#findComment-232904
Udostępnij na innych stronach

  • 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
https://skript.pl/temat/36444-blokowanie-komend/#findComment-232969
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
https://skript.pl/temat/36444-blokowanie-komend/#findComment-232973
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
https://skript.pl/temat/36444-blokowanie-komend/#findComment-233035
Udostępnij na innych stronach

  • 0
11 godzin temu, Rafep napisał:

@mvsieK_  A no tak, trzeba tego listenera zarejestrować... :facepalm:

Wszystko już działa. Temat do zamknięcia ._. 

Okej, ale radziłbym użyć tutaj contains zamiast equalsIgnoreCase 🤷‍♂️

Edytowane przez paweU
Odnośnik do komentarza
https://skript.pl/temat/36444-blokowanie-komend/#findComment-233050
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
https://skript.pl/temat/36444-blokowanie-komend/#findComment-233123
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
https://skript.pl/temat/36444-blokowanie-komend/#findComment-233155
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
https://skript.pl/temat/36444-blokowanie-komend/#findComment-233160
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
https://skript.pl/temat/36444-blokowanie-komend/#findComment-233171
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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