diff --git a/ReallifeGamemode.Client/Gui/house.ts b/ReallifeGamemode.Client/Gui/house.ts index bb50a9f4..2a3e9671 100644 --- a/ReallifeGamemode.Client/Gui/house.ts +++ b/ReallifeGamemode.Client/Gui/house.ts @@ -44,6 +44,7 @@ export default function house(globalData: GlobalData) { var setRentalFeeItem: UIMenuItem; var cancelRentalsItem: UIMenuItem; + var sellHouseItem: UIMenuItem; var houseRentals = houseData.Rentals.length; @@ -89,6 +90,9 @@ export default function house(globalData: GlobalData) { houseMenu.BindMenuToItem(cancelRentalsMenu, cancelRentalsItem); } + + sellHouseItem = new UIMenuItem("Haus verkaufen"); + houseMenu.AddItem(sellHouseItem); } else if (houseState === 2) { cancelOwnRentalItem = new UIMenuItem("Mietvertrag kündigen", "Ziehe aus der Wohnung aus"); houseMenu.AddItem(cancelOwnRentalItem); @@ -129,6 +133,9 @@ export default function house(globalData: GlobalData) { } else if (item === cancelOwnRentalItem) { mp.events.callRemote("CLIENT:House_CancelOwnRental"); houseMenu.Close(); + } else if (item === sellHouseItem) { + mp.events.callRemote("CLIENT:House_SellHouse"); + houseMenu.Close(); } }); diff --git a/ReallifeGamemode.Server/Managers/HouseManager.cs b/ReallifeGamemode.Server/Managers/HouseManager.cs index 8e1d64b8..2ff58da3 100644 --- a/ReallifeGamemode.Server/Managers/HouseManager.cs +++ b/ReallifeGamemode.Server/Managers/HouseManager.cs @@ -293,12 +293,6 @@ namespace ReallifeGamemode.Server.Managers House house = GetHouseById(user.HouseId.Value, dbContext); - if (user.HouseId == null) - { - ChatService.ErrorMessage(player, "Du besitzt kein Haus"); - return; - } - HouseRental rental = dbContext.HouseRentals.Where(h => h.HouseId == house.Id && h.UserId == target.Id).FirstOrDefault(); if (rental == null) { @@ -376,6 +370,34 @@ namespace ReallifeGamemode.Server.Managers player.SendNotification("~g~Du hast den Mietvertrag gekündigt."); house.User?.SendNotification($"~y~{player.Name}~s~ hat seinen Mietvertrag gekündigt."); + RemoveHouse(house); + LoadHouse(house); + + SendClientHouseData(player, house); + } + } + + [RemoteEvent("CLIENT:House_SellHouse")] + public void HouseManagerSellHouseEvent(Client player) + { + using (var dbContext = new DatabaseContext()) + { + User user = player.GetUser(dbContext); + if (user.HouseId == null) + { + ChatService.ErrorMessage(player, "Du besitzt kein Haus"); + return; + } + + House house = GetHouseById(user.HouseId.Value, dbContext); + + house.OwnerId = null; + user.HouseId = null; + + dbContext.SaveChanges(); + + player.SendChatMessage("Du hast dein Haus verkauft"); + SendClientHouseData(player, house); } }