Open Jakush opened 1 month ago
if you only set it on the player, this is the expected behavior because collisions work both ways
I have this logic which you say, should work:
Player player = context.getArgument("player", PlayerSelectorArgumentResolver.class).resolve(context.getSource()).getFirst();
disguiseManager.disguiseAsEntity(player, entityType.getEntityClass(), entity -> {
player.getCollidableExemptions().add(entity.getUniqueId());
if (entity instanceof LivingEntity livingEntity) {
livingEntity.setAI(false);
livingEntity.getCollidableExemptions().add(player.getUniqueId());
}
});
However this does not work.
Expected behavior
Using LivingEntity#setCollidable(boolean) should disable or enable collisions with the living entity.
Observed/Actual behavior
When setting collidable to false on Player, it collides with another entity no matter if it is set to false or true.
Steps/models to reproduce
Plugin and Datapack List
[16:52:55 INFO]: Server Plugins (4): [16:52:55 INFO]: Bukkit Plugins: [16:52:55 INFO]: - FastAsyncWorldEdit, Multiverse-Core, ServerFramework, VoidGen
Paper version
[16:53:13 INFO]: Checking version, please wait... [16:53:14 INFO]: This server is running Paper version 1.21.1-99-master@1bc02e6 (2024-09-25T02:41:02Z) (Implementing API version 1.21.1-R0.1-SNAPSHOT) You are running the latest version Previous version: 1.21.1-98-9b1ee0d (MC: 1.21.1)
Other
I was doing this when command is issued using Brigadier, though I don't think that could cause any issues.