Problem with some Entity functions #28

Closed
opened 2023-04-01 15:58:36 +02:00 by ricsal1 · 1 comment
ricsal1 commented 2023-04-01 15:58:36 +02:00 (Migrated from github.com)

Expected behavior

Expected do get results from:

  • player.getLocation().getChunk().getTileEntities()
  • .getWorld().getNearbyLivingEntities
  • getWorld().getNearbyEntities()

Observed/Actual behavior

[14:45:39] [Region Scheduler Thread #0/ERROR]: Could not pass event ServerTickEndEvent to CoolProtection v1.6
java.lang.IllegalStateException: Cannot getEntities asynchronously
at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:86) ~[folia-1.19.4.jar:git-Folia-"7072994"] at net.minecraft.world.level.Level.getEntities(Level.java:1157) ~[folia-1.19.4.jar:git-Folia-"7072994"]
at org.bukkit.craftbukkit.v1_19_R3.CraftWorld.getNearbyEntities(CraftWorld.java:1099) ~[folia-1.19.4.jar:git-Folia-"7072994"]
at org.bukkit.craftbukkit.v1_19_R3.CraftWorld.getNearbyEntities(CraftWorld.java:1085) ~[folia-1.19.4.jar:git-Folia-"7072994"]
at org.bukkit.craftbukkit.v1_19_R3.CraftWorld.getNearbyEntities(CraftWorld.java:1076) ~[folia-1.19.4.jar:git-Folia-"7072994"]
at org.bukkit.World.getNearbyEntitiesByType(World.java:1074) ~[folia-api-1.19.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.World.getNearbyEntitiesByType(World.java:1025) ~[folia-api-1.19.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.World.getNearbyLivingEntities(World.java:856) ~[folia-api-1.19.4-R0.1-SNAPSHOT.jar:?]

Steps/models to reproduce

Call

public void test(Player player) {
int currentLiving = player.getWorld().getLivingEntities().size();
int currentEntities = player.getWorld().getEntities().size();
int currentChunkEntities = player.getLocation().getChunk().getEntities().length;

//Fails from here

    int currentChunkTileEntities = player.getLocation().getChunk().getTileEntities().length;
    int nearbyLivingEntities = player.getWorld().getNearbyLivingEntities(player.getLocation(), 30, 200).size();;
    int nearbyEntities = player.getWorld().getNearbyEntities(player.getLocation(), 30, 200, 30).size();;

//print..
}

Plugin and Datapack List

1 plugin been adapted

Folia version

[14:52:02 INFO]: Checking version, please wait...
[14:52:03 INFO]: This server is running Folia version git-Folia-"7072994" (MC: 1.19.4) (Implementing API version 1.19.4-R0.1-SNAPSHOT) (Git: 7072994)
You are running the latest version
Previous version: git-Folia-"00cfbaa" (MC: 1.19.4)

Other

No response

### Expected behavior Expected do get results from: - player.getLocation().getChunk().getTileEntities() - .getWorld().getNearbyLivingEntities - getWorld().getNearbyEntities() ### Observed/Actual behavior [14:45:39] [Region Scheduler Thread #0/ERROR]: Could not pass event ServerTickEndEvent to CoolProtection v1.6 java.lang.IllegalStateException: Cannot getEntities asynchronously at io.papermc.paper.util.TickThread.ensureTickThread(TickThread.java:86) ~[folia-1.19.4.jar:git-Folia-"7072994"] at net.minecraft.world.level.Level.getEntities(Level.java:1157) ~[folia-1.19.4.jar:git-Folia-"7072994"] at org.bukkit.craftbukkit.v1_19_R3.CraftWorld.getNearbyEntities(CraftWorld.java:1099) ~[folia-1.19.4.jar:git-Folia-"7072994"] at org.bukkit.craftbukkit.v1_19_R3.CraftWorld.getNearbyEntities(CraftWorld.java:1085) ~[folia-1.19.4.jar:git-Folia-"7072994"] at org.bukkit.craftbukkit.v1_19_R3.CraftWorld.getNearbyEntities(CraftWorld.java:1076) ~[folia-1.19.4.jar:git-Folia-"7072994"] at org.bukkit.World.getNearbyEntitiesByType(World.java:1074) ~[folia-api-1.19.4-R0.1-SNAPSHOT.jar:?] at org.bukkit.World.getNearbyEntitiesByType(World.java:1025) ~[folia-api-1.19.4-R0.1-SNAPSHOT.jar:?] at org.bukkit.World.getNearbyLivingEntities(World.java:856) ~[folia-api-1.19.4-R0.1-SNAPSHOT.jar:?] ### Steps/models to reproduce Call public void test(Player player) { int currentLiving = player.getWorld().getLivingEntities().size(); int currentEntities = player.getWorld().getEntities().size(); int currentChunkEntities = player.getLocation().getChunk().getEntities().length; //Fails from here int currentChunkTileEntities = player.getLocation().getChunk().getTileEntities().length; int nearbyLivingEntities = player.getWorld().getNearbyLivingEntities(player.getLocation(), 30, 200).size();; int nearbyEntities = player.getWorld().getNearbyEntities(player.getLocation(), 30, 200, 30).size();; //print.. } ### Plugin and Datapack List 1 plugin been adapted ### Folia version [14:52:02 INFO]: Checking version, please wait... [14:52:03 INFO]: This server is running Folia version git-Folia-"7072994" (MC: 1.19.4) (Implementing API version 1.19.4-R0.1-SNAPSHOT) (Git: 7072994) You are running the latest version Previous version: git-Folia-"00cfbaa" (MC: 1.19.4) ### Other _No response_
Spottedleaf commented 2023-04-01 16:21:12 +02:00 (Migrated from github.com)

getEntities is specifically guarded to prevent plugins from retrieving entities from chunks not owned by the current region. Only call it for players owned by the current region

getEntities is specifically guarded to prevent plugins from retrieving entities from chunks not owned by the current region. Only call it for players owned by the current region
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Minecraft/Folia#28
No description provided.