Several fixes to actual, probable and possible synchronocity issues (#691)

* Several fixes to actual, probable and possible synchronocity issues
 - Ensure that all edits are queued onto the same AsyncNotifyQueue by actually delegating to the parent player in PlayerProxy
 - Ensure that the order editsessions are being remembered on the LocalSession is being respected by using a fair ReentrentLock
 - Ensure a chunk cannot be called when an update is being called

* Don't add locks to GetBlocks
This commit is contained in:
dordsor21
2020-10-08 21:15:05 +01:00
committed by GitHub
parent 4407749219
commit 5b97c0abcd
7 changed files with 111 additions and 98 deletions

View File

@ -684,6 +684,7 @@ public abstract class AbstractPlayerActor implements Actor, Player, Cloneable {
* @param async TODO description
* @return false if the task was ran or queued
*/
@Override
public boolean runAction(Runnable ifFree, boolean checkFree, boolean async) {
if (checkFree) {
if (runningCount.get() != 0) {

View File

@ -83,6 +83,11 @@ public class PlayerProxy extends AbstractPlayerActor {
return basePlayer.getBlockInHand(handSide);
}
@Override
public boolean runAction(Runnable ifFree, boolean checkFree, boolean async) {
return basePlayer.runAction(ifFree, checkFree, async);
}
@Override
public UUID getUniqueId() {
return basePlayer.getUniqueId();