Skocz do zawartości
  • 0

Sprawdzanie wielkości liter


Zasepamen

Pytanie

Witam

Napisałem skrypt na whilelist na mój serwer

Gdzie wszystkie niki są zapisywane w pliku a przy wejściu na serwer są odczytywane i sprawdzane.

Problem polega na tym że mogę wejść na serwer graczem z nikiem "marta" oraz graczem z nkiem "Marta" A ustawiłem że mogę wejść tylko graczem z nikiem "marta" 

Oto skrypt odpowiedzialny za sprawdzanie ników przy wejściu oraz dla zabezpieczenia serwera.

on connect:	if {config::whilelist::set} is 1:		set {config::whilelist::nik::%player%} to value "whilelist.nik.%player%" get of "plugins/Skript/Dane_serwera/config.yml" parsed as number		if {config::whilelist::nik::%player%} is 0:			kick player due to "Niestety ale tylko gracze wpisani na whilelist mogą wejść na serwer"			stop		if name of player contains "`" or "~" or "!" or "@" or "##" or "$" or "%%" or "^" or "&" or "*" or ")" or "(" or "_" or "-" or "+" or "=" or "]" or "[" or "}" or "{" or "" or "|" or ";" or ":" or "'" or """" or "," or "." or "<" or ">" or "/" or "??" or " ":			kick player due to "Niestety ale twoj nik zawiera znaki specialne ktore sa niedozwolone na tym serwerze"			stop		else if length of name of player is greater than 15:			kick player due to "Niestety ale twoj nik jest za długi. Maksymalna liczba znaków to 15"			stop		else if length of name of player is less than 3:			kick player due to "Niestety ale twoj nik jest za krótki. Minimalna liczba znaków to 3"			stop

Oraz skrypt którym można dodać gracza wo whilelist oraz usunąć

command /whilelist [<text&gt] [<text&gt]:	permission: gracz.help	permission message: &4&lNie masz uprawnień do tej komendy!!	aliases: /wl	trigger:			arg 1 is not set:			send "&4&lMusisz podać rodzaj operacji" to player			send "Musisz podać rodzaj operacji" to console			stop		arg 1 is "dodaj":			arg 2 is set:				set {config::whilelist::nik::%player%} to 1				set "whilelist.nik.%arg 2%" to "1" in yml file "plugins/Skript/Dane_serwera/config.yml"				send "&e&lDodałeś gracza[%arg 2%] do whilelist" to player				send "Dodałeś gracza[%arg 2%] do whilelist" to console				stop		arg 1 is "usun":			arg 2 is set:				set {config::whilelist::nik::%player%} to 0				set "whilelist.nik.%arg 2%" to "0" in yml file "plugins/Skript/Dane_serwera/config.yml"				send "&e&lUsunołeś gracza[%arg 2%] z whilelist" to player				send "Usunołeś gracza[%arg 2%] z whilelist" to console				stop		arg 1 is "true":			set {config::whilelist::set} to 1			set "whilelist.set" to "1" in yml file "plugins/Skript/Dane_serwera/config.yml"			send "&e&lWłączyłeś whilelist na serwerze" to player			send "Włączyłeś whilelist na serwerze" to console			stop		arg 1 is "false":			set {config::whilelist::set} to 0			set "whilelist.set" to "0" in yml file "plugins/Skript/Dane_serwera/config.yml"			send "&e&lWyłączyłeś whilelist na serwerze" to player			send "Wyłączyłeś whilelist na serwerze" to console			stop		arg 1 is "stan":			send "&2&lStan whilelist [%{config::whilelist::set}%]" to player			send "Stan whilelist [%{config::whilelist::set}%]" to console			stop

Nie wiem czemu tak jest. Proszę o pomoc

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

9 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Dzięki ale w zasadzie to nic nie zmieniało bo i tak przy wejściu jest odnowa odczytywany nik. Nawet można to usunąć.

Niestety nadal nie działa mogę wejść i graczem z nikiem "marta" i graczem z nikiem "Marta"

Zauważyłem jeden bład ponieważ innym nikeim mogłem wejść na serwer. Usunąłem go. Niestety nawet po zmiania na "maciek" "maCiek" jest to samo oba te gracze mogą wejść na serwer. Czemu nie porównuje wielkości liter?

on connect:	if {config::whilelist::set} is 1:		set {config::whilelist::nik::%player%} to value "whilelist.nik.%player%" get of "plugins/Skript/Dane_serwera/config.yml" parsed as number				if {config::whilelist::nik::%player%} is not set:			kick player due to "Niestety ale tylko gracze wpisani na whilelist mogą wejść na serwer"			stop		if {config::whilelist::nik::%player%} is 0:			kick player due to "Niestety ale tylko gracze wpisani na whilelist mogą wejść na serwer"			stop		if name of player contains "`" or "~" or "!" or "@" or "##" or "$" or "%%" or "^" or "&" or "*" or ")" or "(" or "_" or "-" or "+" or "=" or "]" or "[" or "}" or "{" or "" or "|" or ";" or ":" or "'" or """" or "," or "." or "<" or ">" or "/" or "??" or " ":			kick player due to "Niestety ale twoj nik zawiera znaki specialne ktore sa niedozwolone na tym serwerze"			stop		else if length of name of player is greater than 15:			kick player due to "Niestety ale twoj nik jest za długi. Maksymalna liczba znaków to 15"			stop		else if length of name of player is less than 3:			kick player due to "Niestety ale twoj nik jest za krótki. Minimalna liczba znaków to 3"			stop
command /whilelist [<text&gt] [<text&gt]:	permission: gracz.help	permission message: &4&lNie masz uprawnień do tej komendy!!	aliases: /wl	trigger:			arg 1 is not set:			send "&4&lMusisz podać rodzaj operacji" to player			send "Musisz podać rodzaj operacji" to console			stop		arg 1 is "dodaj":			arg 2 is set:				set "whilelist.nik.%arg 2%" to "1" in yml file "plugins/Skript/Dane_serwera/config.yml"				send "&e&lDodałeś gracza[%arg 2%] do whilelist" to player				send "Dodałeś gracza[%arg 2%] do whilelist" to console				stop		arg 1 is "usun":			arg 2 is set:				set "whilelist.nik.%arg 2%" to "0" in yml file "plugins/Skript/Dane_serwera/config.yml"				send "&e&lUsunołeś gracza[%arg 2%] z whilelist" to player				send "Usunołeś gracza[%arg 2%] z whilelist" to console				stop		arg 1 is "true":			set {config::whilelist::set} to 1			set "whilelist.set" to "1" in yml file "plugins/Skript/Dane_serwera/config.yml"			send "&e&lWłączyłeś whilelist na serwerze" to player			send "Włączyłeś whilelist na serwerze" to console			stop		arg 1 is "false":			set {config::whilelist::set} to 0			set "whilelist.set" to "0" in yml file "plugins/Skript/Dane_serwera/config.yml"			send "&e&lWyłączyłeś whilelist na serwerze" to player			send "Wyłączyłeś whilelist na serwerze" to console			stop		arg 1 is "stan":			send "&2&lStan whilelist [%{config::whilelist::set}%]" to player			send "Stan whilelist [%{config::whilelist::set}%]" to console			stop
Edytowane przez Zasepamen
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

@Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! wprowadziłeś go w błąd. Ma być właśnie ustawione na true. Tylko wtedy masz jeden duży problem.

Jak w skrypcie zrobisz komendę /komenda a na serwerze ją wpiszesz /Komenda to już nie zadziała.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Wymyśliłem że będę sprawdzał przy pierwszym wejściu na serwer czy taka osoba z takim nikiem już istnieje. Dlatego przy wejściu dałem skrypt który ma zamienić mi nik z dużymi literami na małe litery. Oto jego część:

set {weryfikacjanika} to player	replace all "A" with "a" in {weryfikacjanika}	replace all "Ą" with "ą" in {weryfikacjanika}	replace all "B" with "b" in {weryfikacjanika}	replace all "C" with "c" in {weryfikacjanika}	replace all "Ć" with "ć" in {weryfikacjanika}	replace all "D" with "d" in {weryfikacjanika}	replace all "E" with "e" in {weryfikacjanika}	replace all "F" with "f" in {weryfikacjanika}	replace all "G" with "g" in {weryfikacjanika}	replace all "H" with "h" in {weryfikacjanika}	replace all "I" with "i" in {weryfikacjanika}	replace all "J" with "j" in {weryfikacjanika}	replace all "K" with "k" in {weryfikacjanika}	replace all "L" with "l" in {weryfikacjanika}	replace all "M" with "m" in {weryfikacjanika}	replace all "O" with "o" in {weryfikacjanika}	replace all "P" with "p" in {weryfikacjanika}	replace all "Q" with "q" in {weryfikacjanika}	replace all "R" with "r" in {weryfikacjanika}	replace all "S" with "s" in {weryfikacjanika}	replace all "Ś" with "ś" in {weryfikacjanika}	replace all "T" with "t" in {weryfikacjanika}	replace all "U" with "u" in {weryfikacjanika}	replace all "V" with "v" in {weryfikacjanika}	replace all "W" with "w" in {weryfikacjanika}	replace all "X" with "x" in {weryfikacjanika}	replace all "Y" with "y" in {weryfikacjanika}	replace all "Z" with "z" in {weryfikacjanika}	replace all "Ż" with "ż" in {weryfikacjanika}	replace all "Ź" with "ź" in {weryfikacjanika}

Po tym sprawdzam już zapisane w pliku niki graczy wszystkich ale jako małe litery z tym. Jeśli takiego nie ma to go zapisuje do pliku używają c:

wf "- '%{weryfikacjanika}%'" to "plugins/Skript/Dane_serwera/niki_graczy.yml"

Niestety zapisuje mi się nik z dużymi literqmi czyli to "replace" nie działa.

W confingu skripta mam ustawione na true

Nie wiem co mam robić a muszę zabezpieczyć serwer przed tym. Ponieważ pół skryptów na moim serwerze w tym nawet chat oraz pw się knoci. Przerobiłem kilka pomysłów ale żaden nie działa. :(

Proszę o pomoc

Pozdrawiam

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

  • 0

Sprawdziłem i okazało się że porównywanie wielkości liter działa na false ale gdy nik jest pobierany z pliku i porównywany. Bo gdy wpisze ją do zmiennej i porównam z nikiem to nie działa. Nie mam już pojęcia :(

Bez tego muszę zrezygnować z serwera gdyż napisałem własny skrypt na rejestracje oraz esential itp. A to knoci mi wszystko.

Proszę o pomoc

Odnośnik do komentarza
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ę...