Fix a cake wars dupe bug

This commit is contained in:
Sam 2018-06-10 16:00:34 +01:00 committed by Alexander Meech
parent 71613a923d
commit 0ad24ce47b
1 changed files with 10 additions and 6 deletions

View File

@ -61,7 +61,7 @@ public class CakeResourcePage extends ShopPageBase<ArcadeManager, CakeResourceSh
{ {
CakeShopResult result = getResultPurchase(item); CakeShopResult result = getResultPurchase(item);
addButton(slot, prepareItem(item, result), new CakeShopButton(item, result)); addButton(slot, prepareItem(item, result), new CakeShopButton(item));
if (++slot % 9 == 8) if (++slot % 9 == 8)
{ {
@ -198,12 +198,10 @@ public class CakeResourcePage extends ShopPageBase<ArcadeManager, CakeResourceSh
{ {
private final CakeItem _item; private final CakeItem _item;
private final CakeShopResult _result;
CakeShopButton(CakeItem item, CakeShopResult result) CakeShopButton(CakeItem item)
{ {
_item = item; _item = item;
_result = result;
} }
@Override @Override
@ -213,9 +211,15 @@ public class CakeResourcePage extends ShopPageBase<ArcadeManager, CakeResourceSh
{ {
return; return;
} }
else if (_result != CakeShopResult.SUCCESSFUL)
// It's important to re-get the result otherwise it's possible to do a very
// quick but difficult dupe bug. Involving opening the ui and dropping the items
// at the same time.
CakeShopResult result = getResultPurchase(_item);
if (result != CakeShopResult.SUCCESSFUL)
{ {
player.sendMessage(F.main("Game", _result.getFeedback())); player.sendMessage(F.main("Game", result.getFeedback()));
playDenySound(player); playDenySound(player);
return; return;
} }