Closed RookieCuzz closed 3 months ago
While the asynchronous access certainly is a potential problem, the check is way too overengineered as iris in its current state is just not able to store anything besides signs, spawners and banners. On top of that, synchronizing at that point will increase the time extremely as you are only able to get one block per tick and that method gets called a bunch of times, so it will increase the process time by ~50ms each time
In fact,even the tiledata of the sign banner spawner cannnot be stored at present.I think this pull should be accpeted The following are the error message: [11:05:03 INFO]: tab issued server command: /iris object save overworld name=folder/test [11:05:03 WARN]: java.lang.IllegalStateException: Tile is null, asynchronous access? CraftBlock{pos=BlockPosition{x=401, y=105, z=251},type=OAK_SIGN,data=Block{minecraft:oak_sign}[rotation=4,waterlogged=false],fluid=net.minecraft.world.level.material.FluidTypeEmpty@7bffe793} [11:05:03 WARN]: at com.google.common.base.Preconditions.checkState(Preconditions.java:590) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates$BlockEntityStateFactory.createBlockState(CraftBlockStates.java:97) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates$BlockEntityStateFactory.createBlockState(CraftBlockStates.java:83) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:294) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:246) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:231) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlock.getState(CraftBlock.java:332) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.engine.object.TileData.getTileState(TileData.java:74) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.engine.object.IrisObject.setUnsigned(IrisObject.java:479) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.core.service.WandSVC.createSchematic(WandSVC.java:89) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.core.commands.CommandObject.save(CommandObject.java:372) [11:05:03 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [11:05:03 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) [11:05:03 WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [11:05:03 WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.lambda$invokeNode$7(VirtualDecreeCommand.java:485) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invokeNode(VirtualDecreeCommand.java:495) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:390) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:416) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:416) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:372) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.DecreeSystem.call(DecreeSystem.java:136) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.DecreeSystem.lambda$onCommand$1(DecreeSystem.java:163) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftTask.run(CraftTask.java:101) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) [11:05:03 WARN]: at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) [11:05:03 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [11:05:03 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
In fact,even the tiledata of the sign banner spawner cannnot be stored at present.I think this pull should be accpeted The following are the error message: [11:05:03 INFO]: tab issued server command: /iris object save overworld name=folder/test [11:05:03 WARN]: java.lang.IllegalStateException: Tile is null, asynchronous access? CraftBlock{pos=BlockPosition{x=401, y=105, z=251},type=OAK_SIGN,data=Block{minecraft:oak_sign}[rotation=4,waterlogged=false],fluid=net.minecraft.world.level.material.FluidTypeEmpty@7bffe793} [11:05:03 WARN]: at com.google.common.base.Preconditions.checkState(Preconditions.java:590) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates$BlockEntityStateFactory.createBlockState(CraftBlockStates.java:97) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates$BlockEntityStateFactory.createBlockState(CraftBlockStates.java:83) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:294) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:246) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:231) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlock.getState(CraftBlock.java:332) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.engine.object.TileData.getTileState(TileData.java:74) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.engine.object.IrisObject.setUnsigned(IrisObject.java:479) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.core.service.WandSVC.createSchematic(WandSVC.java:89) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.core.commands.CommandObject.save(CommandObject.java:372) [11:05:03 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [11:05:03 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) [11:05:03 WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [11:05:03 WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.lambda$invokeNode$7(VirtualDecreeCommand.java:485) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invokeNode(VirtualDecreeCommand.java:495) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:390) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:416) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:416) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:372) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.DecreeSystem.call(DecreeSystem.java:136) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.DecreeSystem.lambda$onCommand$1(DecreeSystem.java:163) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftTask.run(CraftTask.java:101) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) [11:05:03 WARN]: at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) [11:05:03 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [11:05:03 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
Have you considered reading @CrazyDev05 response before answering? I highly recommend for you to do so.
In fact,even the tiledata of the sign banner spawner cannnot be stored at present.I think this pull should be accpeted The following are the error message: [11:05:03 INFO]: tab issued server command: /iris object save overworld name=folder/test [11:05:03 WARN]: java.lang.IllegalStateException: Tile is null, asynchronous access? CraftBlock{pos=BlockPosition{x=401, y=105, z=251},type=OAK_SIGN,data=Block{minecraft:oak_sign}[rotation=4,waterlogged=false],fluid=net.minecraft.world.level.material.FluidTypeEmpty@7bffe793} [11:05:03 WARN]: at com.google.common.base.Preconditions.checkState(Preconditions.java:590) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates$BlockEntityStateFactory.createBlockState(CraftBlockStates.java:97) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates$BlockEntityStateFactory.createBlockState(CraftBlockStates.java:83) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:294) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:246) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:231) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlock.getState(CraftBlock.java:332) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.engine.object.TileData.getTileState(TileData.java:74) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.engine.object.IrisObject.setUnsigned(IrisObject.java:479) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.core.service.WandSVC.createSchematic(WandSVC.java:89) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.core.commands.CommandObject.save(CommandObject.java:372) [11:05:03 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [11:05:03 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) [11:05:03 WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [11:05:03 WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.lambda$invokeNode$7(VirtualDecreeCommand.java:485) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invokeNode(VirtualDecreeCommand.java:495) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:390) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:416) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:416) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:372) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.DecreeSystem.call(DecreeSystem.java:136) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.DecreeSystem.lambda$onCommand$1(DecreeSystem.java:163) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftTask.run(CraftTask.java:101) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) [11:05:03 WARN]: at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) [11:05:03 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [11:05:03 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
Have you considered reading @CrazyDev05 response before answering? I highly recommend for you to do so.
Perhaps you should take a look at my response. And the current problem to be solved is that the block tiledata obtained by asynchronous threads returns null. If you have a better repair plan, please fix it.
In fact,even the tiledata of the sign banner spawner cannnot be stored at present.I think this pull should be accpeted The following are the error message: [11:05:03 INFO]: tab issued server command: /iris object save overworld name=folder/test [11:05:03 WARN]: java.lang.IllegalStateException: Tile is null, asynchronous access? CraftBlock{pos=BlockPosition{x=401, y=105, z=251},type=OAK_SIGN,data=Block{minecraft:oak_sign}[rotation=4,waterlogged=false],fluid=net.minecraft.world.level.material.FluidTypeEmpty@7bffe793} [11:05:03 WARN]: at com.google.common.base.Preconditions.checkState(Preconditions.java:590) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates$BlockEntityStateFactory.createBlockState(CraftBlockStates.java:97) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates$BlockEntityStateFactory.createBlockState(CraftBlockStates.java:83) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:294) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:246) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:231) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlock.getState(CraftBlock.java:332) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.engine.object.TileData.getTileState(TileData.java:74) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.engine.object.IrisObject.setUnsigned(IrisObject.java:479) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.core.service.WandSVC.createSchematic(WandSVC.java:89) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.core.commands.CommandObject.save(CommandObject.java:372) [11:05:03 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [11:05:03 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) [11:05:03 WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [11:05:03 WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.lambda$invokeNode$7(VirtualDecreeCommand.java:485) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invokeNode(VirtualDecreeCommand.java:495) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:390) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:416) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:416) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:372) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.DecreeSystem.call(DecreeSystem.java:136) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.DecreeSystem.lambda$onCommand$1(DecreeSystem.java:163) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftTask.run(CraftTask.java:101) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) [11:05:03 WARN]: at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) [11:05:03 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [11:05:03 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
Have you considered reading @CrazyDev05 response before answering? I highly recommend for you to do so.
Perhaps you should take a look at my response. And the current problem to be solved is that the block tiledata obtained by asynchronous threads returns null. If you have a better repair plan, please fix it.
Matter of fact I did. Though your approach should work on paper it's just too slow and that's why it won't get accepted.
In fact,even the tiledata of the sign banner spawner cannnot be stored at present.I think this pull should be accpeted The following are the error message: [11:05:03 INFO]: tab issued server command: /iris object save overworld name=folder/test [11:05:03 WARN]: java.lang.IllegalStateException: Tile is null, asynchronous access? CraftBlock{pos=BlockPosition{x=401, y=105, z=251},type=OAK_SIGN,data=Block{minecraft:oak_sign}[rotation=4,waterlogged=false],fluid=net.minecraft.world.level.material.FluidTypeEmpty@7bffe793} [11:05:03 WARN]: at com.google.common.base.Preconditions.checkState(Preconditions.java:590) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates$BlockEntityStateFactory.createBlockState(CraftBlockStates.java:97) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates$BlockEntityStateFactory.createBlockState(CraftBlockStates.java:83) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:294) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:246) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlockStates.getBlockState(CraftBlockStates.java:231) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.block.CraftBlock.getState(CraftBlock.java:332) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.engine.object.TileData.getTileState(TileData.java:74) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.engine.object.IrisObject.setUnsigned(IrisObject.java:479) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.core.service.WandSVC.createSchematic(WandSVC.java:89) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.core.commands.CommandObject.save(CommandObject.java:372) [11:05:03 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [11:05:03 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) [11:05:03 WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [11:05:03 WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.lambda$invokeNode$7(VirtualDecreeCommand.java:485) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invokeNode(VirtualDecreeCommand.java:495) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:390) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:416) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:416) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.virtual.VirtualDecreeCommand.invoke(VirtualDecreeCommand.java:372) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.DecreeSystem.call(DecreeSystem.java:136) [11:05:03 WARN]: at Iris-3.4.1-1.19.2-1.21.jar//com.volmit.iris.util.decree.DecreeSystem.lambda$onCommand$1(DecreeSystem.java:163) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftTask.run(CraftTask.java:101) [11:05:03 WARN]: at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) [11:05:03 WARN]: at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) [11:05:03 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [11:05:03 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
Have you considered reading @CrazyDev05 response before answering? I highly recommend for you to do so.
Perhaps you should take a look at my response. And the current problem to be solved is that the block tiledata obtained by asynchronous threads returns null. If you have a better repair plan, please fix it.
Matter of fact I did. Though your approach should work on paper it's just too slow and that's why it won't get accepted.
Haha, it's true that if your object structure is full of tiledata blocks, it's really slow.
An asynchronous access to the tile data may result in java.lang.IllegalStateException: Tile is null.