diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index b1fd2ed1..92a7af80 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -625,6 +625,15 @@ namespace ReallifeGamemode.Server.Events return; } + if(player.GetData("SellVehicleDecision") == true && player.HasData("VehicleToSell")) + { + InteractionManager.SellPlayerVehicle(player, player.GetData("VehicleToSell")); + player.ResetData("SellVehicleDecision"); + player.ResetData("VehicleToSell"); + player.SendNotification("~g~Du hast dein Fahrzeug verkauft"); + return; + } + User u = player.GetUser(); if (u.JobId == null) return; @@ -780,6 +789,13 @@ namespace ReallifeGamemode.Server.Events Medic.MakeHealDecision(player, false); return; } + if (player.GetData("SellVehicleDecision") == true && player.HasData("VehicleToSell")) + { + player.ResetData("SellVehicleDecision"); + player.ResetData("VehicleToSell"); + player.SendNotification("~r~Du hast den Fahrzeugverkauf abgebrochen"); + return; + } if (!player.IsInVehicle) return; if (player.VehicleSeat != 0) return; diff --git a/ReallifeGamemode.Server/Managers/InteractionManager.cs b/ReallifeGamemode.Server/Managers/InteractionManager.cs index d94029a1..1cc4b1a4 100644 --- a/ReallifeGamemode.Server/Managers/InteractionManager.cs +++ b/ReallifeGamemode.Server/Managers/InteractionManager.cs @@ -473,18 +473,30 @@ namespace ReallifeGamemode.Server.Managers { var vehPrice = userVehicle.Price; var backPrice = (int)(vehPrice * 0.4); - - user.BankAccount.Balance += backPrice; - - ChatService.SendMessage(player, $"~b~[INFO]~s~ Du hast durch den Autoverkauf ~g~{backPrice.ToMoneyString()}~s~ erhalten."); - - dbContext.UserVehicles.Remove(userVehicle); - dbContext.SaveChanges(); - - veh?.Delete(); + player.SetData("SellVehicleDecision", true); + player.SetData("VehicleToSell", id); + ChatService.SendMessage(player,"~s~Möchtes du das Fahrzeug ~y~" + veh.DisplayName + " ~s~wirklich für ~g~$" + backPrice + " ~s~verkaufen? Drücke ~g~J~s~ zum Bestätigen oder ~r~N ~s~zum Abbrechen"); } } + public static void SellPlayerVehicle(Player player, int id) + { + using var dbContext = new DatabaseContext(); + var user = player.GetUser(dbContext); + var userVehicle = dbContext.UserVehicles.Where(v => v.Id == id && v.UserId == user.Id).FirstOrDefault(); + var vehPrice = userVehicle.Price; + var backPrice = (int)(vehPrice * 0.4); + GTANetworkAPI.Vehicle veh = VehicleManager.GetVehicleFromServerVehicle(userVehicle); + user.BankAccount.Balance += backPrice; + + ChatService.SendMessage(player, $"~b~[INFO]~s~ Du hast durch den Autoverkauf ~g~{backPrice.ToMoneyString()}~s~ erhalten."); + + dbContext.UserVehicles.Remove(userVehicle); + dbContext.SaveChanges(); + + veh?.Delete(); + } + [RemoteEvent("CLIENT:InteractionMenu_FactionVehicleInteraction")] public void FactionVehicleInteraction(Player player, int id, string selection) {