Skocz do zawartości
  • 0

ukrywanie


TeZetYT

Pytanie

Witam, mam bardzo pilne pytanie odnośnie skripta - da się zrobić tak, żeby ukrywało niektóre komendy w konsoli? w sensie jak ktoś ją wpisze to żeby się nie pokazywały z tego logi w konsoli. wiem że za pomocą zwykłego skripta to niemożliwe, ale może np. w skript-reflect? pytam się bo niestety nie znam się na javie i jeśli by ktoś mógł, to proszę o napisanie takiego skryptu, lub po prostu odpowiedź jeśli to nie jest możliwe. Dziękuje z góry :)

Odnośnik do komentarza
https://skript.pl/temat/58460-ukrywanie/
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

@CoFFeIN04

Anulowanie wydarzenia 'on command' nie zapobiega wyświetlaniu wiadomości o wykonaniu komend w konsoli.

@TeZetYT

Ponieważ logging komend jest wprowadzony na poziomie silnika, najprostszym rozwiązaniem byłoby wyłączenie logów komend w pliku spigot.yml i własna implementacja logów komend, które można wyświetlać w konsoli. Na przykład coś takiego jak poniżej.

on command:
	sender is not console
	{nonLoggableCommands::*} doesn't contain command
	send "%sender% executed command /%full command%" to console

Jeśli jednak zależy nam na eleganckim rozwiązaniu, należy przejrzeć kod źródłowy któregokolwiek z sensownych pluginów wprowadzających mechanizm autentykacji (logowania) na serwerze. Mogę jedynie podejrzewać, że jest to rozwiązane za pomocą anulowania konkretnych pakietów.

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/58460-ukrywanie/#findComment-345987
Udostępnij na innych stronach

  • 0
3 godziny temu, Kormic napisał:

@CoFFeIN04

Anulowanie wydarzenia 'on command' nie zapobiega wyświetlaniu wiadomości o wykonaniu komend w konsoli.

@TeZetYT

Ponieważ logging komend jest wprowadzony na poziomie silnika, najprostszym rozwiązaniem byłoby wyłączenie logów komend w pliku spigot.yml i własna implementacja logów komend, które można wyświetlać w konsole. Na przykład coś takiego jak poniżej.

on command:
	sender is not console
	{nonLoggableCommands::*} doesn't contain command
	send "%sender% executed command /%full command%" to console

Jeśli jednak zależy nam na eleganckim rozwiązaniu, należy przejrzeć kod źródłowy któregokolwiek z sensownych pluginów wprowadzających mechanizm autentykacji (logowania) na serwerze. Mogę jedynie podejrzewać, że jest to rozwiązane za pomocą anulowania konkretnych pakietów.

Pozdrawiam.

no dobrze, więc mamy rozwiązanie silnikowe, jednak z tego co widziałem można napisać plugin na to, lecz nie chcę się w to bawić, a skript-reflect obsługuje z javy sporo rzeczy. nie dało by się więc zrobić tego z użyciem skript reflect?

Odnośnik do komentarza
https://skript.pl/temat/58460-ukrywanie/#findComment-345988
Udostępnij na innych stronach

  • 0
W dniu 31.01.2025 o 19:51, TeZetYT napisał:

no dobrze, więc mamy rozwiązanie silnikowe, jednak z tego co widziałem można napisać plugin na to, lecz nie chcę się w to bawić, a skript-reflect obsługuje z javy sporo rzeczy. nie dało by się więc zrobić tego z użyciem skript reflect?

Jest to możliwe. Można stworzyć własny filtr przy pomocy frameworku Log4j, co zresztą zdaje się, że robi większość pluginów obsługujących autentykację. Wystarczy przechwycić logger serwera i dodać do niego filtr będący rozszerzeniem klasy AbstractFilter.

Należy zwrócić szczególną uwagę na słowo "klasy". Dodatek skript-reflect nie pozwala na tworzenie klas rozszerzających inne klasy, nawet abstrakcyjne. Wykracza to więc poza możliwości klas proxy i zmusza do skorzystania z dodatku Hippo pozwalającego na tworzenie własnych klas. W tym momencie warto się zastanowić czy nie lepszym rozwiązaniem będzie napisanie własnego pluginu.

Jako przykład podsyłam kod źródłowy pluginu LoginSecurity. Jedyne dwie interesujące nas rzeczy to ten fragment z metody onEnable() dodający filtr do loggera i definicja samego filtru.

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/58460-ukrywanie/#findComment-345994
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ę...