A good example of this are move types: Your plugin gives noclip to someone for 10 seconds (using player.move_type = MoveType.NOCLIP), but 1 second after gaining the noclip, someone else's plugin freezes the player (using player.move_type = MoveType.NONE), and thus removes your beautiful noclip!
What a horrible plugin you've created, only 1 second noclips
This was a huge issue when working on my Hero-Wars project, and EasyPlayer is my attempt to fix it. This package is free to use for everyone, as it would most likely be useful for many other plugins too.
EasyPlayer currently implements the following player effects:
- Freeze (movement)
- Paralyze (movement and aim)
It also implements a restriction system and allows objects to be instantiated directly from an userid using the EasyPlayer.from_userid() classmethod. There's also the @PlayerEffect decorator, if you ever feel like subclassing EasyPlayer and adding your own player effects.
You can read more about it on GitHub, or download the latest version from the releases page.