From 666809041a58131413813684e4fafedb194cf285 Mon Sep 17 00:00:00 2001 From: Mike Pope Date: Mon, 13 Jan 2020 14:27:52 +1030 Subject: [PATCH] Check gold before buying from natives. --- src/net/sf/freecol/client/control/InGameController.java | 3 ++- src/net/sf/freecol/server/control/InGameController.java | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/net/sf/freecol/client/control/InGameController.java b/src/net/sf/freecol/client/control/InGameController.java index 91727881a..8c2cf1e30 100644 --- a/src/net/sf/freecol/client/control/InGameController.java +++ b/src/net/sf/freecol/client/control/InGameController.java @@ -3987,7 +3987,8 @@ public final class InGameController extends FreeColClientHolder { nt.setItem(nti); } TradeBuyAction tba = getGUI().getBuyChoice(unit, is, - nti.getGoods(), nti.getPrice(), true); + nti.getGoods(), nti.getPrice(), + unit.getOwner().checkGold(nti.getPrice())); if (tba == TradeBuyAction.BUY) { askServer().nativeTrade(NativeTradeAction.BUY, nt); return; diff --git a/src/net/sf/freecol/server/control/InGameController.java b/src/net/sf/freecol/server/control/InGameController.java index b5fd38b7e..6f29eba29 100644 --- a/src/net/sf/freecol/server/control/InGameController.java +++ b/src/net/sf/freecol/server/control/InGameController.java @@ -3118,6 +3118,9 @@ public final class InGameController extends Controller { item.goodsMatcher()) == null) { return serverPlayer.clientError("Item missing for " + action + ": " + nt); + } else if (!serverPlayer.checkGold(item.getPrice())) { + return serverPlayer.clientError("Player can not afford item: " + + nt); } nt.setItem(item); cs.add(See.only(otherPlayer),