Allow adapters to override World#getEntities to avoid AsyncCatcher

- Even if we access (cache) the entities synchronously, we'd then be doing stuff asynchronously so adapters can override this and either use the world#getEntities normally (pre 1.17) or get entities async anyway.
This commit is contained in:
dordsor21
2021-08-13 11:44:18 +01:00
parent 3e4f1d5cd8
commit c65c72b249
2 changed files with 15 additions and 6 deletions

View File

@ -1,6 +1,7 @@
package com.fastasyncworldedit.bukkit.adapter;
import com.fastasyncworldedit.bukkit.util.BukkitItemStack;
import com.fastasyncworldedit.core.util.TaskManager;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.NotABlockException;
import com.sk89q.worldedit.blocks.BaseItemStack;
@ -36,6 +37,7 @@ import org.bukkit.block.data.BlockData;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.List;
import java.util.Locale;
import static com.google.common.base.Preconditions.checkNotNull;
@ -362,10 +364,10 @@ public interface IBukkitAdapter {
/**
* Generate a given tree type to the given editsession.
*
* @param type Type of tree to generate
* @param type Type of tree to generate
* @param editSession Editsession to set blocks to
* @param pt Point to generate tree at
* @param world World to "generate" tree from (seed-wise)
* @param pt Point to generate tree at
* @param world World to "generate" tree from (seed-wise)
* @return If successsful
*/
default boolean generateTree(TreeGenerator.TreeType type, EditSession editSession, BlockVector3 pt, org.bukkit.World world) {
@ -379,4 +381,8 @@ public interface IBukkitAdapter {
);
}
default List<org.bukkit.entity.Entity> getEntities(org.bukkit.World world) {
return TaskManager.IMP.sync(world::getEntities);
}
}