Changed login design, moved all db entities to Entities folder

This commit is contained in:
hydrant
2019-03-07 15:55:08 +01:00
parent be82292ab7
commit 04ed4bc322
24 changed files with 466 additions and 349 deletions

View File

@@ -10,7 +10,7 @@ using System.Text;
* @copyright (c) 2008 - 2018 Life of German
*/
namespace ReallifeGamemode.Server.Logs
namespace ReallifeGamemode.Server.Entities.Logs
{
public class BankAccountTransactionHistory
{

View File

@@ -11,7 +11,7 @@ using ReallifeGamemode.Server.Entities;
* @copyright (c) 2008 - 2018 Life of German
*/
namespace ReallifeGamemode.Server.Logs
namespace ReallifeGamemode.Server.Entities.Logs
{
public class Death
{

View File

@@ -10,7 +10,7 @@ using System.ComponentModel.DataAnnotations.Schema;
* @copyright (c) 2008 - 2018 Life of German
*/
namespace ReallifeGamemode.Server.Saves
namespace ReallifeGamemode.Server.Entities.Saves
{
public class SavedBlip
{

View File

@@ -10,7 +10,7 @@ using System.ComponentModel.DataAnnotations.Schema;
* @copyright (c) 2008 - 2018 Life of German
*/
namespace ReallifeGamemode.Server.Saves
namespace ReallifeGamemode.Server.Entities.Saves
{
public class SavedMarker
{

View File

@@ -10,7 +10,7 @@ using System.ComponentModel.DataAnnotations.Schema;
* @copyright (c) 2008 - 2018 Life of German
*/
namespace ReallifeGamemode.Server.Saves
namespace ReallifeGamemode.Server.Entities.Saves
{
public class SavedPed
{

View File

@@ -10,7 +10,7 @@ using System.ComponentModel.DataAnnotations.Schema;
* @copyright (c) 2008 - 2018 Life of German
*/
namespace ReallifeGamemode.Server.Saves
namespace ReallifeGamemode.Server.Entities.Saves
{
public class SavedPickup
{

View File

@@ -10,7 +10,7 @@ using System.ComponentModel.DataAnnotations.Schema;
* @copyright (c) 2008 - 2018 Life of German
*/
namespace ReallifeGamemode.Server.Saves
namespace ReallifeGamemode.Server.Entities.Saves
{
public class SavedTextLabel
{

View File

@@ -12,7 +12,7 @@ using ReallifeGamemode.Server.Entities;
* @copyright (c) 2008 - 2018 Life of German
*/
namespace ReallifeGamemode.Server.Saves
namespace ReallifeGamemode.Server.Entities.Saves
{
public class SavedVehicle : ServerVehicle
{

View File

@@ -15,8 +15,6 @@ namespace ReallifeGamemode.Server.Events
{
class Connect : Script
{
[ServerEvent(Event.PlayerConnected)]
public void OnPlayerConnected(Client player)
{
@@ -28,8 +26,6 @@ namespace ReallifeGamemode.Server.Events
{
if(!dbContext.WhitelistEntries.Any(w => w.SocialClubName.ToLower() == player.SocialClubName.ToLower()))
{
player.TriggerEvent("disableLogin");
string msg2 = "~m~*** " + player.Name + "[" + player.SocialClubName + "] (" + player.Address + ") hat versucht, sich einzuloggen, steht aber nicht auf der Whitelist.";
ChatService.BroadcastAdmin(msg2, AdminLevel.ADMIN);
@@ -42,29 +38,30 @@ namespace ReallifeGamemode.Server.Events
}
}
if (IsPlayerBanned(player)) return;
player.TriggerEvent("SERVER:Login_ShowBrowser");
string msg = "~m~*** " + player.Name + " [" + player.SocialClubName + "] [ID:" + player.Handle.Value + "] (" + player.Address + ")";
ChatService.BroadcastAdmin(msg, AdminLevel.ADMIN);
}
[RemoteEvent("IsPlayerBanned")]
public void IsPlayerBanned(Client player)
private bool IsPlayerBanned(Client player)
{
using (var loginUser = new DatabaseContext())
using (var dbContext = new DatabaseContext())
{
var user = loginUser.Users.SingleOrDefault(b => b.Name == player.Name);
var user = dbContext.Users.SingleOrDefault(b => b.Name == player.Name);
if (user == null)
{
player.TriggerEvent("showLogin");
return;
return false;
}
if (user.BanId != null)
{
var dt = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
var bannedUser = loginUser.Bans.SingleOrDefault(u => u.Id == user.BanId);
var bannedUser = dbContext.Bans.SingleOrDefault(u => u.Id == user.BanId);
if (bannedUser.Applied == bannedUser.UntilDateTime)
{
player.SendChatMessage("!{#FF4040}Du wurdest permanent gebannt! [" + bannedUser.Reason + "]");
player.Kick();
return true;
}
else
{
@@ -75,16 +72,17 @@ namespace ReallifeGamemode.Server.Events
{
player.SendChatMessage("Du bist noch bis zum !{#FF4040}" + dt.AddSeconds(timeStamp).ToLocalTime() + " Uhr ~s~gebannt. [" + bannedUser.Reason + "]");
player.Kick();
return true;
}
else
{
user.BanId = null;
loginUser.SaveChanges();
player.TriggerEvent("showLogin");
dbContext.SaveChanges();
return false;
}
}
}
else player.TriggerEvent("showLogin");
return false;
}
}
}

View File

@@ -91,7 +91,7 @@ namespace ReallifeGamemode.Server.Events
using (var userDeath = new DatabaseContext())
{
var dead = new Logs.Death { VictimId = player.GetUser().Id, KillerId = killerId, KillerPositionX = killerPosX, KillerPositionY = killerPosY,
var dead = new Entities.Logs.Death { VictimId = player.GetUser().Id, KillerId = killerId, KillerPositionX = killerPosX, KillerPositionY = killerPosY,
KillerPositionZ = killerPosZ, KillerHeading = killerHeading, VictimPositionX = player.Position.X, VictimPositionY = player.Position.Y,
VictimPositionZ = player.Position.Z, VictimHeading = player.Heading, CauseOfDeath = reason.ToString()};
userDeath.DeathLogs.Add(dead);

View File

@@ -14,32 +14,33 @@ namespace ReallifeGamemode.Server.Events
{
public class Login : Script
{
[RemoteEvent("OnPlayerLogin")]
public void OnPlayerLogin(Client player, string password)
[RemoteEvent("CLIENT:Login_LoginRequest")]
public void OnPlayerLogin(Client player, string username, string password)
{
using (var loginUser = new DatabaseContext())
{
var user = loginUser.Users.SingleOrDefault(b => b.Name == player.Name);
var user = loginUser.Users.SingleOrDefault(b => b.Name == username);
if (user == null)
{
player.TriggerEvent("loginFail", "Benutzer existiert nicht! Registriere dich zuerst!");
player.TriggerEvent("SERVER:Login_Error", "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!");
player.TriggerEvent("SERVER:Login_Error", "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!");
player.TriggerEvent("SERVER:Login_Error", "Passwort inkorrekt!");
}
else
{
player.TriggerEvent("loginSuccess");
player.Name = username;
player.TriggerEvent("SERVER:Login_Success");
player.SetData("isLoggedIn", true);
player.SetData("spec", true);
player.SetData("duty", false);

View File

@@ -12,13 +12,12 @@ namespace ReallifeGamemode.Server.Events
{
class Register : Script
{
[RemoteEvent("OnPlayerRegister")]
public void OnPlayerRegister(Client player, string password)
[RemoteEvent("CLIENT:Login_RegisterRequest")]
public void OnPlayerRegister(Client player, string username, string password, string passwordRepeat)
{
using (var dbContext = new DatabaseContext())
{
var checkedUser = dbContext.Users.SingleOrDefault(b => b.Name == player.Name);
if (checkedUser == null)
if (!dbContext.Users.Any(u => u.Name == username))
{
var user = new Entities.User
{
@@ -42,7 +41,7 @@ namespace ReallifeGamemode.Server.Events
dbContext.UserBankAccounts.Add(userBankAccount);
dbContext.SaveChanges();
player.TriggerEvent("registerSuccess");
player.TriggerEvent("SERVER:Login_Success");
player.SetData("isLoggedIn", true);
player.SetData("isDead", false);
@@ -52,14 +51,13 @@ namespace ReallifeGamemode.Server.Events
player.Dimension = NAPI.Data.GetWorldData("playerCreatorDimension");
player.TriggerEvent("toggleCreator");
}
else if (player.SocialClubName == checkedUser.SocialClubName)
else if (dbContext.Users.Where(u => u.SocialClubName == player.SocialClubName).Count() >= 3)
{
player.TriggerEvent("registerFail", "Dieser SocialClubAccount ist schon registriert!");
player.TriggerEvent("SERVER:Login_Error", "Es sind schon 3 Konten mit dieser Socialclub-ID registriert.");
}
else if (checkedUser.Name == player.Name)
else
{
player.TriggerEvent("registerFail", "Benutzername existiert schon!");
player.TriggerEvent("SERVER:Login_Error", "Dieser Benutzername kann nicht registriert werden.");
}
}
}

View File

@@ -5,6 +5,7 @@ using System.Text;
using GTANetworkAPI;
using ReallifeGamemode.Server.Business;
using ReallifeGamemode.Server.Entities;
using ReallifeGamemode.Server.Entities.Logs;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Models;
using ReallifeGamemode.Server.Util;
@@ -29,7 +30,7 @@ namespace ReallifeGamemode.Server.Managers
if (account == null) return TransactionResult.RECEIVER_NO_BANKACCOUNT;
var transactionLog = new Logs.BankAccountTransactionHistory
var transactionLog = new BankAccountTransactionHistory
{
Sender = "ADMIN: " + admin.Name,
SenderBalance = 0,
@@ -67,7 +68,7 @@ namespace ReallifeGamemode.Server.Managers
if (senderAccount.Balance < amount) return TransactionResult.SENDER_NOT_ENOUGH_MONEY;
var transactionLog = new Logs.BankAccountTransactionHistory
var transactionLog = new BankAccountTransactionHistory
{
Sender = sender.Name,
SenderBalance = senderAccount.Balance,

View File

@@ -1,7 +1,7 @@
using GTANetworkAPI;
using ReallifeGamemode.Server.Entities;
using ReallifeGamemode.Server.Entities.Saves;
using ReallifeGamemode.Server.Models;
using ReallifeGamemode.Server.Saves;
/**
* @overview Life of German Reallife - Managers LoadManager (LoadManager.cs)

View File

@@ -1,9 +1,9 @@
using GTANetworkAPI;
using ReallifeGamemode.Server.Business;
using ReallifeGamemode.Server.Entities;
using ReallifeGamemode.Server.Entities.Saves;
using ReallifeGamemode.Server.Extensions;
using ReallifeGamemode.Server.Models;
using ReallifeGamemode.Server.Saves;
using System;
namespace ReallifeGamemode.Server.Managers

View File

@@ -10,16 +10,6 @@ namespace ReallifeGamemode.Server.Models
{
public partial class DatabaseContext : DbContext
{
public DatabaseContext(DbContextOptions<DatabaseContext> options) :base (options)
{
}
public DatabaseContext()
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
@@ -70,18 +60,18 @@ namespace ReallifeGamemode.Server.Models
//Logs
//public DbSet<Logs.Ban> BanLogs { get; set; }
public DbSet<Logs.BankAccountTransactionHistory> BankAccountTransactionLogs { get; set; }
public DbSet<Logs.Death> DeathLogs { get; set; }
public DbSet<Entities.Logs.BankAccountTransactionHistory> BankAccountTransactionLogs { get; set; }
public DbSet<Entities.Logs.Death> DeathLogs { get; set; }
//Saves
public DbSet<Saves.SavedBlip> Blips { get; set; }
public DbSet<Entities.Saves.SavedBlip> Blips { get; set; }
public DbSet<Entities.Door> Doors { get; set; }
public DbSet<Entities.GotoPoint> GotoPoints { get; set; }
public DbSet<Saves.SavedMarker> Markers { get; set; }
public DbSet<Saves.SavedPed> Peds { get; set; }
public DbSet<Saves.SavedPickup> Pickups { get; set; }
public DbSet<Saves.SavedTextLabel> TextLabels { get; set; }
public DbSet<Saves.SavedVehicle> Vehicles { get; set; }
public DbSet<Entities.Saves.SavedMarker> Markers { get; set; }
public DbSet<Entities.Saves.SavedPed> Peds { get; set; }
public DbSet<Entities.Saves.SavedPickup> Pickups { get; set; }
public DbSet<Entities.Saves.SavedTextLabel> TextLabels { get; set; }
public DbSet<Entities.Saves.SavedVehicle> Vehicles { get; set; }
public DbSet<Entities.ShopVehicle> ShopVehicles { get; set; }
// Business