From 439974f7cab5bb4aea184ed6ed53d80d2aece080 Mon Sep 17 00:00:00 2001 From: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Thu, 8 Aug 2024 13:32:13 +0200 Subject: [PATCH] fix: insufficient funds message now refreshes in SalepointPurchaseMenu --- .../content/salepoint/SalepointPurchaseMenu.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/dev/ithundxr/createnumismatics/content/salepoint/SalepointPurchaseMenu.java b/common/src/main/java/dev/ithundxr/createnumismatics/content/salepoint/SalepointPurchaseMenu.java index 2dce262..fd06804 100644 --- a/common/src/main/java/dev/ithundxr/createnumismatics/content/salepoint/SalepointPurchaseMenu.java +++ b/common/src/main/java/dev/ithundxr/createnumismatics/content/salepoint/SalepointPurchaseMenu.java @@ -44,6 +44,8 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.Objects; + public class SalepointPurchaseMenu extends MenuBase { public static final int CARD_SLOT_INDEX = 0; public static final int PLAYER_INV_START_INDEX = CARD_SLOT_INDEX + 1; @@ -97,6 +99,9 @@ public void setChanged() { ItemStack card = getItem(0); + Component lastServerSentCardMessage = serverSentCardMessage; + int lastServerSentMaxWithdrawal = serverSentMaxWithdrawal; + serverSentCardMessage = null; serverSentMaxWithdrawal = -1; @@ -111,7 +116,9 @@ public void setChanged() { } } - NumismaticsPackets.PACKETS.sendTo(serverPlayer, new SalepointCardPacket(serverSentCardMessage, serverSentMaxWithdrawal, serverSentStateMessage)); + if (!Objects.equals(lastServerSentCardMessage, serverSentCardMessage) || lastServerSentMaxWithdrawal != serverSentMaxWithdrawal) { + NumismaticsPackets.PACKETS.sendTo(serverPlayer, new SalepointCardPacket(serverSentCardMessage, serverSentMaxWithdrawal, serverSentStateMessage)); + } } }; } @@ -198,6 +205,10 @@ private void updateStateMessage() { if (!(player instanceof ServerPlayer serverPlayer)) return; + purchaseCardContainer.setChanged(); + + Component lastServerSentStateMessage = serverSentStateMessage; + serverSentStateMessage = null; ISalepointState salepointState = getSalepointState(); @@ -210,6 +221,7 @@ private void updateStateMessage() { } } - NumismaticsPackets.PACKETS.sendTo(serverPlayer, new SalepointCardPacket(serverSentCardMessage, serverSentMaxWithdrawal, serverSentStateMessage)); + if (!Objects.equals(lastServerSentStateMessage, serverSentStateMessage)) + NumismaticsPackets.PACKETS.sendTo(serverPlayer, new SalepointCardPacket(serverSentCardMessage, serverSentMaxWithdrawal, serverSentStateMessage)); } }