diff --git a/src/main/java/net/minecraft/server/BlockBeacon.java b/src/main/java/net/minecraft/server/BlockBeacon.java index 68e99a558..4313b7abc 100644 --- a/src/main/java/net/minecraft/server/BlockBeacon.java +++ b/src/main/java/net/minecraft/server/BlockBeacon.java @@ -62,7 +62,7 @@ public class BlockBeacon extends BlockTileEntity { IBlockData iblockdata = world.getType(blockposition1); if (iblockdata.getBlock() == Blocks.BEACON) { - ((WorldServer) world).postToMainThread(() -> { + //((WorldServer) world).postToMainThread(() -> { // Akarin TileEntity tileentity = world.getTileEntity(blockposition1); if (tileentity instanceof TileEntityBeacon) { @@ -70,7 +70,7 @@ public class BlockBeacon extends BlockTileEntity { world.playBlockAction(blockposition1, Blocks.BEACON, 1, 0); } - }); + //}); // Akarin } } diff --git a/src/main/java/net/minecraft/server/ServerConnection.java b/src/main/java/net/minecraft/server/ServerConnection.java index 4563f1f5d..81b8aea2b 100644 --- a/src/main/java/net/minecraft/server/ServerConnection.java +++ b/src/main/java/net/minecraft/server/ServerConnection.java @@ -53,15 +53,16 @@ public class ServerConnection { private final List f = Collections.synchronizedList(Lists.newArrayList()); private final List g = Collections.synchronizedList(Lists.newArrayList()); public final List getNetworkManagers() { return this.g; } // Akarin // Paper start - prevent blocking on adding a new network manager while the server is ticking - private final Set pending = Sets.newConcurrentHashSet(); // Akarin - avoid same signature + private final List pending = Collections.synchronizedList(Lists.newArrayList()); // Akarin start - public final Set pendingRemoval = Sets.newHashSet(); // Akarin - avoid same signature + public final List pendingRemoval = Lists.newArrayList(); // Akarin - avoid same signature private void addPending() { /*synchronized (this.g)*/ { // Akarin this.g.addAll(pending); // Paper - OBFHELPER - List of network managers //pending.clear(); // Akarin - move down } pending.clear(); // Akarin - move from above + // Akarin end } // Paper end @@ -134,6 +135,7 @@ public class ServerConnection { synchronized (this.g) { // Akarin start this.g.removeAll(pendingRemoval); + pendingRemoval.clear(); addPending(); } { // Akarin end diff --git a/work/Paper b/work/Paper index 9c79f489e..fb25dc17c 160000 --- a/work/Paper +++ b/work/Paper @@ -1 +1 @@ -Subproject commit 9c79f489ed6d273a262199c615d4f5449a393248 +Subproject commit fb25dc17c62acce335346d5e96899257ae7230c7