private static void TradeModify(Session Session, ClientMessage Message) { RoomInstance Instance = RoomManager.GetInstanceByRoomId(Session.CurrentRoomId); if (Instance == null) { return; } Trade Trade = Instance.TradeManager.GetTradeForUser(Session.CharacterId); if (Trade == null || !Trade.ModifyTrade(Trade.UserOne == Session.CharacterId)) { return; } ServerMessage TradeAcceptState = TradeAcceptStateComposer.Compose(Session.CharacterId, false); Session.SendData(TradeAcceptState); Session TargetSession = SessionManager.GetSessionByCharacterId(Trade.UserOne == Session.CharacterId ? Trade.UserTwo : Trade.UserOne); if (TargetSession != null) { TargetSession.SendData(TradeAcceptState); } }
private static void TradeAccept(Session Session, ClientMessage Message) { RoomInstance Instance = RoomManager.GetInstanceByRoomId(Session.CurrentRoomId); if (Instance == null) { return; } Trade Trade = Instance.TradeManager.GetTradeForUser(Session.CharacterId); if (Trade == null || !Trade.AcceptTrade(Trade.UserOne == Session.CharacterId)) { return; } ServerMessage TradeAcceptState = TradeAcceptStateComposer.Compose(Session.CharacterId, true); ServerMessage TradeFinalizing = (Trade.TradeStage == TradeStage.Finalizing ? TradeFinalizingComposer.Compose() : null); Session.SendData(TradeAcceptState); if (TradeFinalizing != null) { Session.SendData(TradeFinalizing); } Session TargetSession = SessionManager.GetSessionByCharacterId(Trade.UserOne == Session.CharacterId ? Trade.UserTwo : Trade.UserOne); if (TargetSession != null) { TargetSession.SendData(TradeAcceptState); if (TradeFinalizing != null) { TargetSession.SendData(TradeFinalizing); } } }