DrexHD / VanillaPermissions

This fabric mod adds permission checks into vanilla, to allow for full permission customization.
MIT License
23 stars 2 forks source link

Teleport permissions not working as expected #22

Closed kilrathi closed 1 month ago

kilrathi commented 1 month ago

I've given myself the minecraft.command.tp.destination permission, but /tp doesn't work at all. If i give myself the minecraft.command.tp permission it works, but i can also teleport to players.

Screenshot 2024-10-08 174504

I tried the same with destination, location, and target. Without to permission minecraft.command.tp it doesnt work at all. With the minecraft.command.tp i get everything regardless of the other permissions.

Minecraft 1.20.1 vanilla-permissions-0.2.2+1.20.1.jar LuckPerms-Fabric-5.4.102.jar

DrexHD commented 1 month ago

I have considered making this more intuitive, but that would be a breaking change. This is how the teleport command tree looks like: teleport

tp is just an alias that redirects to teleport. All permissions for the arguments start with minecraft.command.teleport.<more_stuff>. In vanilla only the tp and teleport nodes have a "permission" check (op level 2), everything else is "unlocked" if you have access to the first node. If you give a player minecraft.command.teleport, they will unlock the first node and because the others aren't locked they will gain access to all. You can however manually lock these nodes by denying the respective permissions (which start with minecraft.command.teleport).

To do what you wanted to do in #21:

This way my regular players can use map coords for teleporting which is required by some worldmap mods and I dont give them access to teleport to players unless i want that as well.

you need to allow minecraft.command.teleport to give access to the teleport command and deny minecraft.command.teleport.destination and minecraft.command.teleport.targets to prevent teleporting to players, and teleporting other players. If you want to use the shortcut /tp version you also need to allow minecraft.command.tp

If you have any questions about this feel free to ask in this issue or on my discord!

kilrathi commented 1 month ago

Got it. Thank you for the explanation. Its now working as expected.

For anyone else out there with this issue: Here's how i setup luckperms to give players access to /tp coords but not access to tp for players or areas.

/lp group permission set minecraft.command.tp true /lp group permission set minecraft.command.teleport true /lp group permission set minecraft.command.teleport.destination false /lp group permission set minecraft.command.teleport.targets false