diff --git a/ReallifeGamemode.Server/Events/Key.cs b/ReallifeGamemode.Server/Events/Key.cs index 3d1946de..833040ad 100644 --- a/ReallifeGamemode.Server/Events/Key.cs +++ b/ReallifeGamemode.Server/Events/Key.cs @@ -379,6 +379,7 @@ namespace ReallifeGamemode.Server.Events if (player.HasData("inTrade") && player.GetData("inTrade") == true) { ManagerOfInventory.OpenTradeAccept(player); + return; } if (player.IsInVehicle && player.VehicleSeat == -1) diff --git a/ReallifeGamemode.Server/Managers/ManagerOfInventory.cs b/ReallifeGamemode.Server/Managers/ManagerOfInventory.cs index 335c0de0..7da46b2f 100644 --- a/ReallifeGamemode.Server/Managers/ManagerOfInventory.cs +++ b/ReallifeGamemode.Server/Managers/ManagerOfInventory.cs @@ -62,8 +62,6 @@ namespace ReallifeGamemode.Server.Managers [RemoteEvent("tradeItem")] public void ServerEvent_tradeItem(Client client, int value, string nameOrId, string itemIdArrStr, string itemAmountArrStr) { - int[] itemIdArr = JsonConvert.DeserializeObject(itemIdArrStr); - int[] itemAmountArr = JsonConvert.DeserializeObject(itemAmountArrStr); User user = client.GetUser(); Client target = ClientService.GetClientByNameOrId(nameOrId); if (target == null || !target.IsLoggedIn()) @@ -71,6 +69,14 @@ namespace ReallifeGamemode.Server.Managers ChatService.PlayerNotFound(client); return; } + if(client.Position.DistanceTo(target.Position) <= 20) + { + ChatService.ErrorMessage(client, "Spieler ist zu weit entfernt."); + return; + } + int[] itemIdArr = JsonConvert.DeserializeObject(itemIdArrStr); + int[] itemAmountArr = JsonConvert.DeserializeObject(itemAmountArrStr); + if (target.HasData("inTrade") && target.GetData("inTrade") == true) { ChatService.SendMessage(client, $"~r~[FEHLER] ~w~{target.Name} befindet sich bereits in einem Handel."); @@ -94,6 +100,7 @@ namespace ReallifeGamemode.Server.Managers context.SaveChanges(); } } + ChatService.SendMessage(client, $"~b~Du hast eine Handelsanfrage an {target.Name} gesendet."); TradeItems[user.Id] = (itemIdArr, itemAmountArr); TradeValue[user.Id] = value; target.SetData("tradePartner", user.Id); @@ -106,7 +113,7 @@ namespace ReallifeGamemode.Server.Managers client.SetData("inTrade", true); sender.SetData("inTrade", true); ChatService.SendMessage(client, $"~b~ Du hast eine Handelsanfrage von {sender.Name} bekommen."); - ChatService.SendMessage(client, $"~b~ Drücke '~w~N~b~' um die Handelsanfrage zu akzeptieren."); + ChatService.SendMessage(client, $"~b~ Drücke '~w~X~b~' um die Handelsanfrage zu akzeptieren."); User user = sender.GetUser(); Timer tradeTimer = new Timer(30000); TradeTimer[user.Id] = tradeTimer; @@ -118,7 +125,7 @@ namespace ReallifeGamemode.Server.Managers public void SendBackToSender(Client client) { User user = client.GetUser(); - ChatService.SendMessage(client, "Dein Handelpartner hat die Anfrage nicht angenommen."); + ChatService.SendMessage(client, "Dein Handelspartner hat die Anfrage nicht angenommen."); (int[] itemIdArr, int[] itemAmountArr) = TradeItems[user.Id]; Timer timer = TradeTimer[user.Id]; timer.Stop();