WorldGuard

WorldGuard

8M Downloads

Tamed Animals cause LuckPerms error in regions with Group Owners/Members

Technofied opened this issue ยท 7 comments

commented

WorldEdit Version

7.2.10

WorldGuard Version

7.0.7

Platform Version

git-Paper-283 (MC: 1.18.2)

Confirmations

  • I am using the most recent Minecraft release.
  • I am using a version of WorldEdit compatible with my Minecraft version.
  • I am using a version of WorldGuard compatible with my Minecraft version.
  • I am using the latest or recommended version of my platform software.
  • I am NOT using a hybrid server, e.g. a server that combines Bukkit and Forge. Examples include Arclight, Mohist, and Cardboard.
  • I am NOT using a fork of WorldEdit, such as FastAsyncWorldEdit (FAWE) or AsyncWorldEdit (AWE)

Bug Description

If a tameable animal such as a wolf is on a pressure plate in a claim with a group owner or member g:, and the owner goes offline, the Cause code picks up the TameableOwner, which is an OfflinePlayer. The region code tries to check their LuckPerms group on the main thread, giving this error repeatedly.

[13:12:14 WARN]: me.lucko.luckperms.bukkit.vault.ServerThreadLookupException: A Vault API request has been made on the main server thread that LuckPerms cannot safely respond to.
[13:12:14 WARN]: This is NOT a bug - please do not report it to LuckPerms.
[13:12:14 WARN]: Instead, please carefully read the information given below.
[13:12:14 WARN]: 
[13:12:14 WARN]: LuckPerms cannot respond to the request because to do so:
[13:12:14 WARN]: - it needs to lookup user data for 'd76d7e45-00fb-49d7-a145-baf355c4b958' (an offline player) from the database
[13:12:14 WARN]: 
[13:12:14 WARN]: Performing this lookup on the main server thread would cause your server to lag.
[13:12:14 WARN]: There are two solutions to this problem:
[13:12:14 WARN]:   a) Ask the author of the plugin making the request to perform Vault calls for
[13:12:14 WARN]:      offline players "asynchronously" (using the scheduler). Additionally, prefer
[13:12:14 WARN]:      using the methods that accept 'Player' or 'OfflinePlayer' instead of usernames.
[13:12:14 WARN]:      You should be able to identify the plugin making the request in the trace below.
[13:12:14 WARN]:   b) As a server admin, you can disable this exception by setting 'vault-unsafe-lookups'
[13:12:14 WARN]:      to true in the LuckPerms configuration file. However, please use this only as
[13:12:14 WARN]:      a last resort.
[13:12:14 WARN]:        at me.lucko.luckperms.bukkit.vault.LuckPermsVaultPermission.lookupUser(LuckPermsVaultPermission.java:155)
[13:12:14 WARN]:        at me.lucko.luckperms.bukkit.vault.LuckPermsVaultPermission.userInGroup(LuckPermsVaultPermission.java:233)
[13:12:14 WARN]:        at me.lucko.luckperms.bukkit.vault.AbstractVaultPermission.playerInGroup(AbstractVaultPermission.java:333)
[13:12:14 WARN]:        at worldedit-bukkit-7.2.10.jar//com.sk89q.wepif.VaultResolver.inGroup(VaultResolver.java:107)
[13:12:14 WARN]:        at worldedit-bukkit-7.2.10.jar//com.sk89q.wepif.PermissionsResolverManager.inGroup(PermissionsResolverManager.java:175)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.WorldGuardPlugin.inGroup(WorldGuardPlugin.java:318)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.BukkitOfflinePlayer.hasGroup(BukkitOfflinePlayer.java:63)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.domains.GroupDomain.contains(GroupDomain.java:96)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.domains.DefaultDomain.contains(DefaultDomain.java:245)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.regions.ProtectedRegion.isOwner(ProtectedRegion.java:285)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.LocalPlayer.getAssociation(LocalPlayer.java:61)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.FlagValueCalculator.getMembership(FlagValueCalculator.java:138)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.FlagValueCalculator.queryAllValues(FlagValueCalculator.java:434)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.FlagValueCalculator.queryValue(FlagValueCalculator.java:227)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.FlagValueCalculator.queryState(FlagValueCalculator.java:174)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.RegionResultSet.queryState(RegionResultSet.java:103)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.regions.RegionQuery.queryState(RegionQuery.java:342)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.regions.RegionQuery.testBuild(RegionQuery.java:201)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.listener.RegionProtectionListener.lambda$onUseBlock$2(RegionProtectionListener.java:292)
[13:12:14 WARN]:        at com.google.common.base.Predicate.test(Predicate.java:81)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.event.block.AbstractBlockEvent.filterInternal(AbstractBlockEvent.java:132)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.event.block.AbstractBlockEvent.filter(AbstractBlockEvent.java:124)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.event.block.UseBlockEvent.filter(UseBlockEvent.java:39)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.event.block.AbstractBlockEvent.filter(AbstractBlockEvent.java:160)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.event.block.UseBlockEvent.filter(UseBlockEvent.java:39)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.listener.RegionProtectionListener.onUseBlock(RegionProtectionListener.java:251)
[13:12:14 WARN]:        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor92.execute(Unknown Source)
[13:12:14 WARN]:        at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:75)
[13:12:14 WARN]:        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80)
[13:12:14 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[13:12:14 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:629)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.util.Events.fireAndTestCancel(Events.java:60)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.listener.debounce.legacy.AbstractEventDebounce.debounce(AbstractEventDebounce.java:56)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.listener.debounce.legacy.BlockEntityEventDebounce.debounce(BlockEntityEventDebounce.java:36)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.listener.EventAbstractionListener.onEntityInteract(EventAbstractionListener.java:583)
[13:12:14 WARN]:        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor144.execute(Unknown Source)
[13:12:14 WARN]:        at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:75)
[13:12:14 WARN]:        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80)
[13:12:14 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[13:12:14 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:629)
[13:12:14 WARN]:        at net.minecraft.world.level.block.BlockPressurePlateWeighted.b(BlockPressurePlateWeighted.java:45)
[13:12:14 WARN]:        at net.minecraft.world.level.block.BlockPressurePlateAbstract.a(BlockPressurePlateAbstract.java:82)
[13:12:14 WARN]:        at net.minecraft.world.level.block.BlockPressurePlateAbstract.a(BlockPressurePlateAbstract.java:75)
[13:12:14 WARN]:        at net.minecraft.world.level.block.state.BlockBase$BlockData.a(BlockBase.java:1003)
[13:12:14 WARN]:        at net.minecraft.world.entity.Entity.aI(Entity.java:1432)
[13:12:14 WARN]:        at net.minecraft.world.entity.Entity.ax(Entity.java:1168)
[13:12:14 WARN]:        at net.minecraft.world.entity.Entity.a(Entity.java:1095)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityLiving.a(EntityLiving.java:2814)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityLiving.h(EntityLiving.java:2769)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityLiving.w_(EntityLiving.java:3307)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityInsentient.w_(EntityInsentient.java:628)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityAgeable.w_(EntityAgeable.java:154)
[13:12:14 WARN]:        at net.minecraft.world.entity.animal.EntityAnimal.w_(EntityAnimal.java:62)
[13:12:14 WARN]:        at net.minecraft.world.entity.animal.EntityWolf.w_(EntityWolf.java:203)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityLiving.k(EntityLiving.java:2917)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityInsentient.k(EntityInsentient.java:396)
[13:12:14 WARN]:        at net.minecraft.world.entity.animal.EntityWolf.k(EntityWolf.java:219)
[13:12:14 WARN]:        at net.minecraft.server.level.WorldServer.a(WorldServer.java:1134)
[13:12:14 WARN]:        at net.minecraft.world.level.World.a(World.java:936)
[13:12:14 WARN]:        at net.minecraft.server.level.WorldServer.lambda$tick$5(WorldServer.java:673)
[13:12:14 WARN]:        at net.minecraft.world.level.entity.EntityTickList.a(EntityTickList.java:43)
[13:12:14 WARN]:        at net.minecraft.server.level.WorldServer.a(WorldServer.java:653)
[13:12:14 WARN]:        at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1591)
[13:12:14 WARN]:        at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:483)
[13:12:14 WARN]:        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1455)
[13:12:14 WARN]:        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1225)
[13:12:14 WARN]:        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315)
[13:12:14 WARN]:        at java.base/java.lang.Thread.run(Thread.java:833)
[13:12:14 WARN]: me.lucko.luckperms.bukkit.vault.ServerThreadLookupException: A Vault API request has been made on the main server thread that LuckPerms cannot safely respond to.
[13:12:14 WARN]: This is NOT a bug - please do not report it to LuckPerms.
[13:12:14 WARN]: Instead, please carefully read the information given below.
[13:12:14 WARN]: 
[13:12:14 WARN]: LuckPerms cannot respond to the request because to do so:
[13:12:14 WARN]: - it needs to lookup user data for 'd76d7e45-00fb-49d7-a145-baf355c4b958' (an offline player) from the database
[13:12:14 WARN]: 
[13:12:14 WARN]: Performing this lookup on the main server thread would cause your server to lag.
[13:12:14 WARN]: There are two solutions to this problem:
[13:12:14 WARN]:   a) Ask the author of the plugin making the request to perform Vault calls for
[13:12:14 WARN]:      offline players "asynchronously" (using the scheduler). Additionally, prefer
[13:12:14 WARN]:      using the methods that accept 'Player' or 'OfflinePlayer' instead of usernames.
[13:12:14 WARN]:      You should be able to identify the plugin making the request in the trace below.
[13:12:14 WARN]:   b) As a server admin, you can disable this exception by setting 'vault-unsafe-lookups'
[13:12:14 WARN]:      to true in the LuckPerms configuration file. However, please use this only as
[13:12:14 WARN]:      a last resort.
[13:12:14 WARN]:        at me.lucko.luckperms.bukkit.vault.LuckPermsVaultPermission.lookupUser(LuckPermsVaultPermission.java:155)
[13:12:14 WARN]:        at me.lucko.luckperms.bukkit.vault.LuckPermsVaultPermission.userInGroup(LuckPermsVaultPermission.java:233)
[13:12:14 WARN]:        at me.lucko.luckperms.bukkit.vault.AbstractVaultPermission.playerInGroup(AbstractVaultPermission.java:333)
[13:12:14 WARN]:        at worldedit-bukkit-7.2.10.jar//com.sk89q.wepif.VaultResolver.inGroup(VaultResolver.java:107)
[13:12:14 WARN]:        at worldedit-bukkit-7.2.10.jar//com.sk89q.wepif.PermissionsResolverManager.inGroup(PermissionsResolverManager.java:175)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.WorldGuardPlugin.inGroup(WorldGuardPlugin.java:318)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.BukkitOfflinePlayer.hasGroup(BukkitOfflinePlayer.java:63)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.domains.GroupDomain.contains(GroupDomain.java:96)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.domains.DefaultDomain.contains(DefaultDomain.java:245)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.regions.ProtectedRegion.isOwner(ProtectedRegion.java:285)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.regions.ProtectedRegion.isMember(ProtectedRegion.java:338)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.LocalPlayer.getAssociation(LocalPlayer.java:63)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.FlagValueCalculator.getMembership(FlagValueCalculator.java:138)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.FlagValueCalculator.queryAllValues(FlagValueCalculator.java:434)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.FlagValueCalculator.queryValue(FlagValueCalculator.java:227)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.FlagValueCalculator.queryState(FlagValueCalculator.java:174)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.RegionResultSet.queryState(RegionResultSet.java:103)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.regions.RegionQuery.queryState(RegionQuery.java:342)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.protection.regions.RegionQuery.testBuild(RegionQuery.java:201)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.listener.RegionProtectionListener.lambda$onUseBlock$2(RegionProtectionListener.java:292)
[13:12:14 WARN]:        at com.google.common.base.Predicate.test(Predicate.java:81)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.event.block.AbstractBlockEvent.filterInternal(AbstractBlockEvent.java:132)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.event.block.AbstractBlockEvent.filter(AbstractBlockEvent.java:124)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.event.block.UseBlockEvent.filter(UseBlockEvent.java:39)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.event.block.AbstractBlockEvent.filter(AbstractBlockEvent.java:160)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.event.block.UseBlockEvent.filter(UseBlockEvent.java:39)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.listener.RegionProtectionListener.onUseBlock(RegionProtectionListener.java:251)
[13:12:14 WARN]:        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor92.execute(Unknown Source)
[13:12:14 WARN]:        at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:75)
[13:12:14 WARN]:        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80)
[13:12:14 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[13:12:14 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:629)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.util.Events.fireAndTestCancel(Events.java:60)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.listener.debounce.legacy.AbstractEventDebounce.debounce(AbstractEventDebounce.java:56)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.listener.debounce.legacy.BlockEntityEventDebounce.debounce(BlockEntityEventDebounce.java:36)
[13:12:14 WARN]:        at worldguard-bukkit-7.0.7-dist.jar//com.sk89q.worldguard.bukkit.listener.EventAbstractionListener.onEntityInteract(EventAbstractionListener.java:583)
[13:12:14 WARN]:        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor144.execute(Unknown Source)
[13:12:14 WARN]:        at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:75)
[13:12:14 WARN]:        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80)
[13:12:14 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[13:12:14 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:629)
[13:12:14 WARN]:        at net.minecraft.world.level.block.BlockPressurePlateWeighted.b(BlockPressurePlateWeighted.java:45)
[13:12:14 WARN]:        at net.minecraft.world.level.block.BlockPressurePlateAbstract.a(BlockPressurePlateAbstract.java:82)
[13:12:14 WARN]:        at net.minecraft.world.level.block.BlockPressurePlateAbstract.a(BlockPressurePlateAbstract.java:75)
[13:12:14 WARN]:        at net.minecraft.world.level.block.state.BlockBase$BlockData.a(BlockBase.java:1003)
[13:12:14 WARN]:        at net.minecraft.world.entity.Entity.aI(Entity.java:1432)
[13:12:14 WARN]:        at net.minecraft.world.entity.Entity.ax(Entity.java:1168)
[13:12:14 WARN]:        at net.minecraft.world.entity.Entity.a(Entity.java:1095)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityLiving.a(EntityLiving.java:2814)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityLiving.h(EntityLiving.java:2769)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityLiving.w_(EntityLiving.java:3307)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityInsentient.w_(EntityInsentient.java:628)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityAgeable.w_(EntityAgeable.java:154)
[13:12:14 WARN]:        at net.minecraft.world.entity.animal.EntityAnimal.w_(EntityAnimal.java:62)
[13:12:14 WARN]:        at net.minecraft.world.entity.animal.EntityWolf.w_(EntityWolf.java:203)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityLiving.k(EntityLiving.java:2917)
[13:12:14 WARN]:        at net.minecraft.world.entity.EntityInsentient.k(EntityInsentient.java:396)
[13:12:14 WARN]:        at net.minecraft.world.entity.animal.EntityWolf.k(EntityWolf.java:219)
[13:12:14 WARN]:        at net.minecraft.server.level.WorldServer.a(WorldServer.java:1134)
[13:12:14 WARN]:        at net.minecraft.world.level.World.a(World.java:936)
[13:12:14 WARN]:        at net.minecraft.server.level.WorldServer.lambda$tick$5(WorldServer.java:673)
[13:12:14 WARN]:        at net.minecraft.world.level.entity.EntityTickList.a(EntityTickList.java:43)
[13:12:14 WARN]:        at net.minecraft.server.level.WorldServer.a(WorldServer.java:653)
[13:12:14 WARN]:        at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1591)
[13:12:14 WARN]:        at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:483)
[13:12:14 WARN]:        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1455)
[13:12:14 WARN]:        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1225)
[13:12:14 WARN]:        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315)
[13:12:14 WARN]:        at java.base/java.lang.Thread.run(Thread.java:833)
[13:12:24 WARN]: me.lucko.luckperms.bukkit.vault.ServerThreadLookupException: A Vault API request has been made on the main serv

Expected Behavior

No such errors should be occurring.

Reproduction Steps

  1. Add Worldedit, WorldGuard, LuckPerms and Vault
  2. Create a region i.e. /rg define test
  3. Set the Owner OR Member of said region to any group i.e. /rg addowner test g:default
  4. Tame a wolf and put the wolf on a weighted pressure plate inside the said region
  5. Owner of the wolf logs off, non-player joins (or stays online) and goes to said wolf

Optional WorldGuard-Report

No response

Anything Else?

In my instance of testing it, a restart was required before the 5th step outlined above.

commented

Yes, but exactly that's the problem? Getting the owner from a dog with a offline owner is not time consuming.
Loading sync permissions is. Therefore we should avoid sync permission checks. Doesn't matter if it's LuckPerms or another permissions plugin.

commented

no way to avoid this in spigot. even if we avoid the perms check, simply getting the owner of a tameable will cause a lookup on spigot's end.

commented

yes, but we could avoid the permission lookup and only allow those lookups for online players. Add a config option for that (either deny, allow or make a permission query for indirect actions with offline players)

commented

the only thing that solves is getting rid of LP's ugly stacktrace.

commented

i was under the impression that simply doing getOwner loads the player's .dat file if they're not online?

commented

Yes, you're correct. Paper added Tameable$getOwnerUniqueId() which will avoid the loading from OfflinePlayers.

commented

i'm aware, which is why my initial statement was "on spigot". we can get the uuid + check online for free on paper, if the player is offline treat the cause as unknown, otherwise proceed as normal.
on spigot this isn't possible - simply checking the owner will cause some lookup. we can of course check if the offlineplayer is offline and then treat the cause as unknown, but then we are back to still having caused an offlineplayer load.