103 lines
4.3 KiB
C#
103 lines
4.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using GTANetworkAPI;
|
|
using reallife_gamemode.Model;
|
|
using reallife_gamemode.Server.Entities;
|
|
using reallife_gamemode.Server.Managers;
|
|
using reallife_gamemode.Server.Util;
|
|
|
|
/**
|
|
* @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)
|
|
{
|
|
using (var loginUser = new Model.DatabaseContext())
|
|
{
|
|
var user = loginUser.Users.SingleOrDefault(b => b.Name == player.Name);
|
|
|
|
if(user == null)
|
|
{
|
|
player.TriggerEvent("loginFail", "Benutzer existiert nicht! Registriere dich zuerst!");
|
|
}
|
|
else
|
|
{
|
|
if (user.SocialClubName != player.SocialClubName && user.Password == NAPI.Util.GetHashSha256(password))
|
|
{
|
|
player.TriggerEvent("loginDeny", "Dieser Benutzer gehört dir nicht!");
|
|
//TODO ?? Log einbauen für den bösen Bub.
|
|
player.Kick();
|
|
}
|
|
if (user.Password != NAPI.Util.GetHashSha256(password))
|
|
{
|
|
player.TriggerEvent("loginFail", "Passwort inkorrekt!");
|
|
}
|
|
else
|
|
{
|
|
player.TriggerEvent("loginSuccess");
|
|
player.SetData("isLoggedIn", true);
|
|
player.SetData("spec", true);
|
|
player.SetData("duty", false);
|
|
|
|
var userBankAccount = loginUser.UserBankAccounts.SingleOrDefault(u => u.UserId == user.Id);
|
|
userBankAccount.Balance = userBankAccount.Balance;
|
|
|
|
if (user.Dead == true)
|
|
{
|
|
if (user.IsAdmin(AdminLevel.ADMIN) == true)
|
|
{
|
|
player.TriggerEvent("startDeathTimer", true);
|
|
}
|
|
else
|
|
{
|
|
player.TriggerEvent("startDeathTimer", false);
|
|
}
|
|
|
|
player.SetData("isDead", true);
|
|
}
|
|
else
|
|
{
|
|
player.SetData("isDead", false);
|
|
}
|
|
if (user.Dead == true)
|
|
{
|
|
//player.TriggerEvent("startDeathTimer");
|
|
//player.SetData("isDead", true);
|
|
//TODO: Deathlog entfernen
|
|
player.Health = 0;
|
|
}
|
|
else
|
|
{
|
|
player.SetData("isDead", false);
|
|
}
|
|
if (user.CharacterId == null)
|
|
{
|
|
var currentPlayerCreatorDimension = (uint) NAPI.Data.GetWorldData("playerCreatorDimension");
|
|
currentPlayerCreatorDimension++;
|
|
NAPI.Data.SetWorldData("playerCreatorDimension", currentPlayerCreatorDimension);
|
|
player.Dimension = NAPI.Data.GetWorldData("playerCreatorDimension");
|
|
player.Position = new Vector3(402.8664, -996.4108, -99.00027);
|
|
player.TriggerEvent("toggleCreator");
|
|
}
|
|
else
|
|
{
|
|
CharacterCreator.ApplyCharacter(player);
|
|
NAPI.Player.SpawnPlayer(player, new Vector3(user.PositionX, user.PositionY, user.PositionZ), 0);
|
|
player.TriggerEvent("draw", player.Name, player.Handle.Value);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|