using GTANetworkAPI; using Newtonsoft.Json; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Models; using ReallifeGamemode.Server.Services; using System; using System.Collections.Generic; using System.Text; using System.Linq; /** * @overview Life of German Reallife - Managers Interaction (InteractionManager.cs) * @author VegaZ * @copyright (c) 2008 - 2018 Life of German */ namespace ReallifeGamemode.Server.Managers { public class InteractionManager : Script { #region Umgebungsinteraktionen PFEILTASTE-HOCH #endregion #region Eigeninteraktionen PFEILTASTE-RUNTER #endregion #region Spielerinteraktionen PFEILTASTE-LINKS [RemoteEvent("openTradeInventory")] public void OpenTradeInventory(Client player, string targetPlayer) { InventoryManager.GetUserItems(player); player.TriggerEvent("openTradeMenu", targetPlayer); } [RemoteEvent("sendTradeItemsToPartner")] public void SendTradeItemsToPartner(Client player, string tradeItemArray, int tradePrize, string tradePartnerName) { var tradeItems = JsonConvert.DeserializeObject(tradeItemArray); Client tradePartner = ClientService.GetClientByNameOrId(tradePartnerName); InventoryManager.GetUserItems(player); tradePartner.TriggerEvent("showTradeRequest", player.Name, tradeItems, tradePrize); player.TriggerEvent("startTradeRequestTimer"); } [RemoteEvent("tradeDecision")] public void TradeDecision(Client player, string tradeSelection, string tradeItemArray, string tradeRequesterName, int tradePrize) { var tradeItems = JsonConvert.DeserializeObject(tradeItemArray); Client tradeRequester = ClientService.GetClientByNameOrId(tradeRequesterName); if (tradeSelection == "accept") { if(player.GetUser().Handmoney < tradePrize) { tradeRequester.TriggerEvent("unlockTradeItems"); tradeRequester.SendNotification("~y~" + player.Name + " ~r~hat nicht genügend Bargeld! ~s~Handel abgebrochen."); player.SendNotification("~r~Du hast nicht genügend Bargeld! ~s~Handel abgebrochen."); } else { InventoryManager.GetUserItems(player); tradeRequester.TriggerEvent("clearTradeItems"); player.TriggerEvent("showTradeItems", tradeItemArray); using (var dbContext = new DatabaseContext()) { var playerUserId = player.GetUser().Id; var tradeRUserId = tradeRequester.GetUser().Id; var playerUser = dbContext.Users.FirstOrDefault(u => u.Id == playerUserId); var tradeRequesterUser = dbContext.Users.FirstOrDefault(u => u.Id == tradeRUserId); playerUser.Handmoney -= tradePrize; player.TriggerEvent("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", playerUser.Handmoney); tradeRequesterUser.Handmoney += tradePrize; tradeRequester.TriggerEvent("SERVER:WORLD_INTERACTION:UPDATE_HANDMONEY", tradeRequesterUser.Handmoney); dbContext.SaveChanges(); } } } else { tradeRequester.TriggerEvent("unlockTradeItems"); } } #endregion #region Fraktionsinteraktionen / Jobinteraktionen PFEILTASTE-RECHTS #endregion } }