Şifremi Unuttum Skripti


# Şifremi unuttum sistemi by @LifeMCServer
# Mail ve yedek şifre sistemi ile ek site, program v.s gerekmeden tamamen otomatik olarak şifrenizi sıfırlayın ve hesabınızı kurtarın.
# Gerekli eklentiler;
#  - Skript
#  - skMorkaz (Email için gerekli, configinden Email ayarlarını yapmayı unutmayın.)
#  - AuthMe / AuthMe Reloaded

options:
	sunucuad: LifeMC
	sunucusite: https://www.lifemcserver.com/
	sunucu-ip: play.LifeMCServer.com
command /sifremiunuttum:
	aliases: su
	trigger:
		delete {sifremiUnuttum::%player%::*}
		send "&c&lŞifreni mi unuttun? Aşşağıdaki kurtarma seçeneklerinden birini seç."
		send ""
		send json of "&71. &bYedek Şifre İle Kurtar" run "/sifremiunuttum?yedeksifre" tooltip "&6Hesabını Yedek Şifren İle Kurtar!" to player
		send ""
		send json of "&72. &cMail'ine Gelen Kod İle Kurtar" run "/sifremiunuttum?mail" tooltip "&6Hesabını Mail Adresin İle Kurtar!" to player
		send ""
command /sifremiunuttum?mail:
	trigger:
		delete {sifremiUnuttum::%player%::*}
		if {email::%player%} is set:
			set {_1} to random integer between 1 and 9
			set {_2} to random integer between 1 and 9
			set {_3} to random integer between 1 and 9
			set {_4} to random integer between 1 and 9
			set {_5} to random integer between 1 and 9
			set {_6} to random integer between 1 and 9
			set {_7} to random integer between 1 and 9
			set {_8} to random integer between 1 and 9
			set {sifremiUnuttum::%player%::mailCode} to "%{_1}%%{_2}%%{_3}%%{_4}%%{_5}%%{_6}%%{_7}%%{_8}%"
			send email with subject "Merhaba, %player% ! %nl%İşte, doğrulama için gereken onay kodun;%nl%%{sifremiUnuttum::%player%::mailCode}%%nl% %nl%Sunucu adresimiz: {@sunucu-ip}%nl%Sitemiz: {@sunucusite}" with message "{@sunucuad} Doğrulama Kodu!" to "%{email::%player%}%"
			send ""
			send "&a&lKod başarıyla mail adresinize gönderildi."
			send "&6&lMail adresinize gelen mail kodunu &c&l/kurtar <kod> &6&lŞeklinde girin."
			send ""
		else:
			send "&cHesabına email eklenmemiş."
command /kurtar <text>:
	trigger:
		if {sifremiUnuttum::%player%::yedeksifreMode} is true:
			if arg-1 is "%{%player%.yedekSifre}%":
				send ""
				send "&6&lYeni şifrenizi /kurtar <Yeni şifreniz> şeklinde girin."
				send ""
				wait 1 ticks
				delete {sifremiUnuttum::%player%::yedekSifreMode}
				set {sifremiUnuttum::%player%::yedekSifrePassed} to true
			else:
				send "&cYanlış Yedek Şifre girdin!"
		else if {sifremiUnuttum::%player%::yedekSifrePassed} is true:
			if length of arg-1 is greater than 5:
				delete {sifremiUnuttum::%player%::*}
				execute console command "authme changepassword %player% %arg-1%"
				wait 1 ticks
				execute player command "login %arg-1%"
				send ""
				send "&a&lŞifren başarıyla değişti! Keyifli oyunlar."
				send ""
			else:
				send "&cYeni şifren en az 6 karekter olmalı."
		else if {sifremiUnuttum::%player%::mailMode} is true:
			if {sifremiUnuttum::%player's ip%::mailEngel} is not set:
				if arg-1 is "%{sifremiUnuttum::%player%::mailCode}%":
					send ""
					send "&6&lYeni şifrenizi /kurtar <Yeni şifreniz> şeklinde girin."
					send ""
					wait 1 ticks
					delete {sifremiUnuttum::%player's ip%::mailEngel}
					delete {sifremiUnuttum::%player%::denemeler}
					delete {sifremiUnuttum::%player%::mailMode}
					set {sifremiUnuttum::%player%::mailPassed} to true
				else:
					add 1 to {sifremiUnuttum::%player%::denemeler}
					if {sifremiUnuttum::%player%::denemeler} is greater than 2:
						set {sifremiUnuttum::%player's ip%::mailEngel} to true
						send "&cMail ile kurtarma seçeneği artık erişilebilir değil."
					else:
						set {_c} to 3 - {sifremiUnuttum::%player%::denemeler}
						send "&cYanlış kod girdin! Kalan deneme hakkın: %{_c}%"
						send "&cEğer deneme hakkın biter ise bir daha email ile şifre sıfırlama yapamayacaksın."
			else:
				send "&cMail ile kurtarma seçeneği artık erişilebilir değil."
		else if {sifremiUnuttum::%player%::mailPassed} is true:
			if length of arg-1 is greater than 5:
				delete {sifremiUnuttum::%player%::*}
				execute console command "authme changepassword %player% %arg-1%"
				wait 1 ticks
				execute player command "login %arg-1%"
				send ""
				send "&a&lŞifren başarıyla değişti! Keyifli oyunlar."
				send ""
				if {email::%player%} is set:
					send email with subject "Merhaba, %player% ! %nl%Hesabının şifresi az önce değişti.%nl%Değiştiren kişinin son bilinen IP adresi: %player's ip%%nl%Bunu sen yapmadıysan, hemen hesabını kontrol et ve yetkililere ulaş.%nl% %nl%Sunucu adresimiz: {@sunucu-ip}%nl%Sitemiz: {@sunucusite}" with message "Şifreniz değişti!" to "%{email::%player%}%"
			else:
				send "&cYeni şifren en az 6 karekter olmalı."
command /sifremiunuttum?yedeksifre:
	trigger:
		delete {sifremiUnuttum::%player%::*}
		if {%player%.yedekSifre} is set:
			send ""
			send "&6&lYedek Şifrenizi /kurtar <Yedek şifreniz> şeklinde yazınız."
			send ""
			set {sifremiUnuttum::%player%::yedeksifreMode} to true
		else:
			send "&cYedek Şifren belirlenmemiş!"
command /yedeksifre <text>:
	trigger:
		if length of arg-1 is greater than 5:
			set {%player%.yedekSifre} to "%arg-1%"
			send ""
			send "&a&lYedek şifreniz başarıyla değiştirildi!"
			send ""
		else:
			send "&cYedek Şifren en az 6 karekter olmalı!"
on join:
	wait 4 ticks
	send json of "&bŞifrenizi unuttuysanız buraya tıklayın&c." run "/sifremiunuttum" tooltip "&6Şifrenizi unuttuysanız tıklayın!" to player
command /mail <text>:
	trigger:
		if arg-1 contains "10minute":
			send "&cGeçiçi mail servislerinden alınan mailler kullanılamaz."
		else:
			if arg-1 contains "@":
				if arg-1 contains ".com" or ".net" or ".org" or ".tr":
					delete {emailDogrula::*}
					set {emailDogrula::%player%::mail} to "%arg-1%"
					set {_1} to random integer between 1 and 9
					set {_2} to random integer between 1 and 9
					set {_3} to random integer between 1 and 9
					set {_4} to random integer between 1 and 9
					set {_5} to random integer between 1 and 9
					set {_6} to random integer between 1 and 9
					set {_7} to random integer between 1 and 9
					set {_8} to random integer between 1 and 9
					set {emailDogrula::%player%::code} to "%{_1}%%{_2}%%{_3}%%{_4}%%{_5}%%{_6}%%{_7}%%{_8}%"
					if {emailDogrula::%player%::code} is "12345678" or "87654321" or "11111111" or "22222222" or "33333333" or "44444444" or "55555555" or "66666666" or "77777777" or "88888888" or "99999999":
						set {_1} to random integer between 1 and 9
						set {_2} to random integer between 1 and 9
						set {_3} to random integer between 1 and 9
						set {_4} to random integer between 1 and 9
						set {_5} to random integer between 1 and 9
						set {_6} to random integer between 1 and 9
						set {_7} to random integer between 1 and 9
						set {_8} to random integer between 1 and 9
						set {emailDogrula::%player%::code} to "%{_1}%%{_2}%%{_3}%%{_4}%%{_5}%%{_6}%%{_7}%%{_8}%"
					send email with subject "Merhaba, %player% ! %nl%İşte, doğrulama için gereken onay kodun;%nl%%{emailDogrula::%player%::code}%%nl% %nl%Sunucu adresimiz: {@sunucu-ip}%nl%Sitemiz: {@sunucusite}" with message "{@sunucuad} Doğrulama Kodu!" to "%arg-1%"
					set {emailDogrula::%player%} to true
					send ""
					send "&6&lEpostana gönderdiğimiz 8 haneli doğrulama kodunu sohbete yaz!"
					send ""
				else:
					send "&cYazdığınız alan adına ait mailler devre dışıdır."
			else:
				send "&cLütfen düzgün formatta mail adresi giriniz."
on chat:
	if {emailDogrula::%player%} is true:
		cancel event
		if {emailDogrula::%player%::code} is "%message%":
			set {email::%player%} to "%{emailDogrula::%player%::mail}%"
			delete {emailDogrula::*}
			send ""
			send "&a&lEposta adresiniz başarıyla onaylandı ve hesabınıza eklendi!"
			send ""
		else:
			send "&cEmail doğrulama kodunu yanlış girdin!"
command /mailList:
	permission: op
	trigger:
		send "&8&l» &e&lToplam mail adresi sayısı: &c%size of {email::*}%"