using System; using System.Collections.Generic; using System.Text; using GTANetworkAPI; using System.Security.Cryptography; /** * @overview Life of German Reallife - Event Login (Login.cs) * @author VegaZ * @copyright (c) 2008 - 2018 Life of German */ namespace reallife_gamemode.Server.Events { public class Login : Script { [RemoteEvent("OnPlayerLogin")] public void OnPlayerLogin(Client player, string password) { } [Command("login")] public void CmdLogin(Client player) { player.Freeze(true); player.TriggerEvent("showLogin",player); } [RemoteEvent("OnPlayerRegister")] public void OnPlayerRegister(Client player, string password) { using (var loginContext = new Model.DatabaseContext()) { var user = new Entities.User { Name = player.Name, SocialClubName = player.SocialClubName, Password = ComputeSha256Hash(password) }; loginContext.Users.Add(user); loginContext.SaveChanges(); } NAPI.Chat.SendChatMessageToPlayer(player, "Registriert, GZ"); player.TriggerEvent("registerSuccess"); } static string ComputeSha256Hash(string rawData) { // Create a SHA256 using (SHA256 sha256Hash = SHA256.Create()) { // ComputeHash - returns byte array byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(rawData)); // Convert byte array to a string StringBuilder builder = new StringBuilder(); for (int i = 0; i < bytes.Length; i++) { builder.Append(bytes[i].ToString("x2")); } return builder.ToString(); } } } }