Skocz do zawartości
  • 0

Brak permisji, customowa wiadomosc


AxonGames

Pytanie

9 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
7 minut temu, AxonGames napisał:

Potrzebuje skryptu ze jesli gracz nie ma permisji komendy ktora wpisal wyswietla mu sie „Nie masz permisji do takiej komendy”

A co z wiadomościami domyślnymi komend (tzn. 'permission message')? Mają zostać czy też mają być wszystkie nadpisane?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, Glitchtrap napisał:

on command:
	set {_} to permission of command "%command%"
	if "%{_}%" is not set:
		stop
	if player has permission "%{_}%":
		stop
	cancel event
	send "Nie masz uprawnień"

Wymaga: LimeSK, silnik PaperMC 1.12.2+

A da rade zeby nie nadpisywalo komend permisji z skripta

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, AxonGames napisał:

A da rade zeby nie nadpisywalo komend permisji z skripta

Nie da się wykrywać z którego pluginu jaka komenda pochodzi (a bynajmniej nie jest to proste).

Najprościej byłoby dodać sobie komendy do jakiejś listy.

on load:
	set {skriptCommands::*} to "komenda", "komenda1", "komenda2" and "komenda3"

on command:
	sender is a player
	set {_} to permission of command "%command%"
	if "%{_}%" is not set:
		stop
	if player has permission "%{_}%":
		stop
	{skriptCommands::*} doesn't contain command
	cancel event
	send "&cNie masz uprawnień!" to player
Teraz, Glitchtrap napisał:

tak, na początku eventu dodaj:
 


	if command is "skript" or "sk":
		stop
	#reszta kodu

 

On ma na myśli komendy zdefiniowane w skryptach, nie z samego Skripta.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
12 minut temu, AxonGames napisał:

A da rade zeby nie nadpisywalo komend permisji z skripta

Jest jeszcze jeden sposób. Wystarczy spokojnie Spigot.

Wymagany skript-reflect.

1. Anulowanie eventu i wysyłanie wiadomości.

import:
	org.bukkit.Bukkit

on load:
	set {skriptCommands::*} to "komenda", "komenda1", "komenda2" and "komenda3"

on command:
	sender is a player
	set {_perm} to Bukkit.getPluginCommand("%command%").getPermission()
	{_perm} is set
	player doesn't have permission {_perm}
	{skriptCommands::*} doesn't contain command
	cancel event
	send "&cNie masz uprawnień!" to player

2. Nadpisywanie 'permission message' w pluginach.

import:
	org.bukkit.Bukkit

on load:
	set {skriptCommands::*} to "komenda", "komenda1", "komenda2" and "komenda3"

on command:
	sender is a player
	set {_c} to Bukkit.getPluginCommand("%command%")
	{_c} is set
	set {_perm} to {_c}.getPermission()
	{_perm} is set
	player doesn't have permission {_perm}
	{skriptCommands::*} doesn't contain command
	{_c}.setPermissionMessage("&cNie posiadasz dostępu do tej komendy!")

Oczywiście oba sposoby mają wady.

1. sposób powoduje, że komendy nie są logowane w konsoli, natomiast 2. nadpisuje wiadomości w pluginach.

A ogółem należy pamiętać o tym, że to jedynie będzie działać przy komendach, które mają wpisaną permisję w pliku 'plugin.yml'.

NIE będzie to działać przy komendach, które sprawdzanie permisji mają w kodzie pluginu.

Kod Michixa ma oczywiście te same wady: nie loguje komend, a i przechwytuje jedynie permisję z pliku 'plugin.yml' (chociaż te drugie jest "ukrywane" poprzez 'cancel event'). 

Oczywiście należy tutaj dodać, że trzeba mieć PaperSpigot, wersję 1.12.2+, a i dodatek LimeSK.

Mój kod natomiast zadziała nawet na Spigot'cie 1.8.

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

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

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