61 lines
1.9 KiB
C#
61 lines
1.9 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|