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);
addButton(slot, prepareItem(item, result), new CakeShopButton(item, result));
addButton(slot, prepareItem(item, result), new CakeShopButton(item));
if (++slot % 9 == 8)
{
@ -198,12 +198,10 @@ public class CakeResourcePage extends ShopPageBase<ArcadeManager, CakeResourceSh
{
private final CakeItem _item;
private final CakeShopResult _result;
CakeShopButton(CakeItem item, CakeShopResult result)
CakeShopButton(CakeItem item)
{
_item = item;
_result = result;
}
@Override
@ -213,9 +211,15 @@ public class CakeResourcePage extends ShopPageBase<ArcadeManager, CakeResourceSh
{
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);
return;
}