Skocz do zawartości
  • 0

Blokowanie Unicode


jas123

Pytanie

Szukam sposobu na zablokowanie znaków Unicode (używanych przez osoby reklamujące) za pomocą skryptu. Widziałem, że istnieją pluginy, które wyłapują znaki Unicode, jednak większość ich nie współpracuje z wersją mojego serwera. Pozostałe nie spełniają większości oczekiwań, dlatego zależy mi, aby napisać to w Skript. Próbowałem blokować najczęściej używane znaki Unicode, jednakże nie ma fizycznej możliwości zablokowania ich wszystkich przy użyciu kodu działającego na analogicznej zasadzie jak poniższy:
 

on chat:
	if message contains "Ά" or "β" or "Ⓐ" or "Ⓑ" or "Ⓒ" or "Ⓓ":
		cancel event

Doszedłem do wniosku, że zamiast blokować wszystkie znaki Unicode, może wystarczy napisać skrypt zezwalający na używanie tylko i wyłącznie znaków z klawiatury np: Q W E 1 2 3 ! $ ; ' i tak dalej. W domyśle, ten skrypt, po wykryciu innego znaku (niż znajdującego się na liście) powinien nie zezwolić na napisanie wiadomości z tym znakiem. Jednak nie wiem jak całość napisać w Skript. 
Może również istnieje jakieś inne wyrażenie w Skript (przykładowo ON UNICODE EXIST), które wykrywa znaki Unicode, a które umknęło mojej uwadze?
Ma ktoś pomysł jak rozwiązać powyższy problem w Skript?

Odnośnik do komentarza
https://skript.pl/temat/29907-blokowanie-unicode/
Udostępnij na innych stronach

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
set {_list::*} to %string% split at ""

To wyrażenie rozdzieli ci tekst na poszczególne znaki i wrzuci do zmiennej.

Wystarczy zapętlić ową zmienną i sprawdzać czy osobna lista z dozwolonymi znakami zawiera wynik naszej pętli (tj. dany znak).

Odnośnik do komentarza
https://skript.pl/temat/29907-blokowanie-unicode/#findComment-196337
Udostępnij na innych stronach

  • 0
on chat:
	set {_list::*} to %string% split at %message%
	loop {_list::*}:
		if {_list::*} contais "A" or "B" or "C" or "1" or "2" or "3" i tak dalej :
			stop
		else:
			cancel event
			send "&cNie mozesz uzywac znakow specjalnych w wiadomosci"

Dobrze interpretuje, czy należy to zrobić inaczej?

 

 

Odnośnik do komentarza
https://skript.pl/temat/29907-blokowanie-unicode/#findComment-196350
Udostępnij na innych stronach

  • 0

Skrypt początkowo wyświetlał błąd:

Can't understand the value '"`1234567890-=][poiuytrewqasdfghjkl;'\/.,mnbvcxz~!@' (111.sk, line 2: {chat::chars}: "`1234567890-=][poiuytrewqasdfghjkl;'\/.,mnbvcxz~!@#$%^&*()_+?><|:"')

Jednak zamieniłem ciąg znaków na "abcde12345". Skrypt skompilował się prawidłowo, jednak występuje błąd który postaram się zobrazować, gdyż nie wiem jak to opisać:
Podczas napisania ciągu znaków ABC na czacie, skrypt pozwala na napisanie (prawidłowo funkcjonuje)
Jednak, gdy próbuję napisać CBA albo BAC, pojawia się komunikat "Wiadomość zawiera nieprawidłowe znaki!"
 

Odnośnik do komentarza
https://skript.pl/temat/29907-blokowanie-unicode/#findComment-196409
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ę...