Changed login design, moved all db entities to Entities folder
This commit is contained in:
@@ -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
|
||||
{
|
||||
@@ -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
|
||||
{
|
||||
@@ -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
|
||||
{
|
||||
@@ -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
|
||||
{
|
||||
@@ -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
|
||||
{
|
||||
@@ -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
|
||||
{
|
||||
@@ -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
|
||||
{
|
||||
@@ -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
|
||||
{
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user