@Override public boolean rawSetBlock(Vector pt, BaseBlock block) { boolean success = super.rawSetBlock(pt, block); if (success) { if (transaction != null) { factory.onTransactionBlockEdit(transaction, player, pt, block); } else { factory.onBlockEdit(player, pt, block); } } return success; }
@Override public void flushQueue() { transaction = factory.getModel().groupUpdate(); super.flushQueue(); if (transaction != null) { transaction.finish(); transaction = null; } }
@Override public int setBlocks(Region region, Pattern pattern) throws MaxChangedBlocksException { boolean useTransaction = false; if (transaction == null) { transaction = factory.getModel().groupUpdate(); useTransaction = true; } int ret; try { ret = super.setBlocks(region, pattern); } catch (MaxChangedBlocksException e) { transaction = null; throw e; } if (transaction != null && useTransaction) { transaction.finish(); transaction = null; } return ret; }