Sneaky
Use the latest version of ProtocolLib if Sneaky doesn't function in other worlds (such as the nether or the end).
Sneaky is a small but versatile plugin that simply allows players to only appear to be sneaking at all times, without having to hold down the sneaking key.
Many plugins offer a similar ability, but they may cause glitchy movement or trigger anti-cheating measures as they modify the player state on the server-side. To avoid these problems, Sneaky applies this effect on outgoing packets destined for each player, ensuring that any modification is purely a client-side illusion. This approach also permit us to selectively disable the sneaking effect, allowing (for instance) your operators or superusers to see through it completely.
Links
Up-to-date developer builds of this project can be acquired at my Jenkins server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
Dependencies
This plugin requires ProtocolLib to function! Some features also require Vault.
Features
- Toggle persistent sneaking on and off by calling /sneak
- Operators can toggle the sneaking of other players by calling /sneak [player]
- Operators are (by default) not affected by the sneak effect.
- Set the maximum duration a player can be sneaking in a single go, and a cooldown time until the sneak command is available after a use.
- Customize the duration and cooldown on a per player or per group basis. Requires Vault.
Commands
There is presently only one command - /sneak
If no parameters are specified, the sneaking of the sender will be toggled provided the permission sneaky.sneak.self is set.
Operators, or players with the permission sneaky.sneak.other, can specify a player in the second parameter other than themselves. The last parameter sets the desired state - either on or off. If not included, the state will be toggled.
Permissions
Permission | Description | Default |
---|---|---|
sneaky.sneak.self | Toggle automatic sneaking for your own player | true |
sneaky.sneak.other | Toggle automatic sneaking of other players | op |
sneaky.hide.autosneak | Whether or not to hide all automatic sneaking for this player | false |
sneaky.exempt | If set, the player is not bound by any cooldown or duration limit | op |
It is also possible to customize the duration or cooldown for a specific player by setting the permission info nodes (see the documentation of your permission plugin of choice) sneaky_duration and sneaky_cooldown respectively. This feature requires Vault to be installed.
For PermissionsEx, this can be done like so:
users: Player: group: - Members options: sneaky_duration: 15 sneaky_cooldown: 5
Configuration
The standard configuration file allows you to customize each notification message, with custom colors using the character '&' instead of 'ยง'. You can also set the maximum duration of a persistent sneak effect along with the cooldown until it can be used next (in seconds):
messages: # Sent when sneaking has been enabled. %s is replaced by the player name. enabled_sneaking: Enabled automatic sneaking for %s disabled_sneaking: Disabled automatic sneaking for %s # Sent when the cooldown has expired and sneaking can be activated again cooldown_expired: Automatic sneaking can now be activated. # Error message sent when a player tries to use sneaking before the cooldown has expired cooldown: Sneaking is disabled for another %s seconds # All in seconds limits: # Amount of seconds until sneaking can be used again cooldown: 0 # The maximum number of seconds sneaking can be on in one go duration: 0
Update! (:
The popular server MC-Infected on Super-Gaming Hub(hub.super-gaming.net) is currently using this plugin. Congrats!
Hello aadnk.
I'm sure you have lot on your plate with ProtocolLib and your other projects... but I was wondering if you would be interested in adding the functionality to Sneaky that I requested, hm .. 5 months ago for PlayerHider plugin. It's starting to look like the developer for that plugin has other things to do. I would have coded it myself a long time ago but I don't have the required know-how. Back then you already had a pretty good idea on how to approach the problem and gave a code example. And you are maintaining Sneaky which is similiar in the basic functionality.
If you can't remember what I'm referring to you can find the ticket in question here: http://dev.bukkit.org/bukkit-plugins/playerhider/tickets/1-hide-people-who-are-behind-something/
If it's feasible with the overhead it would create for the server it would be a very nice addition indeed.
I thought you would be my best bet in getting this done, but I completely understand if you don't want to do it or don't have the time for it.
Thanks for thinking it over.
- Pilvinen
Ever since the new version, none of my players nor I are actually sneaking after using /sneak :( I'm pretty sure everything is configured properly, because torches break with arrows and the m "Enabled automatic sneaking for Player" is showing after typing it.
Edit: Nevermind, I just had my players just have the permission sneaky.hide.autosneak enabled.
@aadnk Thanks so much, great job on this btw.
@deleted_10714748
Hm - that feature makes a bit more sense if its combined with automatic sneaking upon entering a certain light level.
But I suppose I can add it nevertheless:
http://assets.comphenix.net/jenkins/job/Sneaky/lastStableBuild/
Can you please add a feature to break torches with arrows? It's done in this plugin and I think it would be an awesome addition.
@FunnyGopher
I could see some utility when combined with something like Variable Triggers. Take away the players permission to use sneak and then make a triggers that activates it instead as part of an ability.
I understand what the plugin does, but I don't understand how it can be used. Why would it help me if all players looked like they were sneaking? Please don't take this the wrong way, I'm not trying to bash on your plugin, just trying to understand.
@Lostferret13
Note that you need to install Vault for this feature to work. Also remember to prefix duration and cooldown with "sneaky_".
Note that GroupManager is doing something extremely fishy with the configuration system. So don't be surprised if ItemRenamer crashes ...
where would we put per-group cooldown restrictions in groupmanager?
there's an "info:" section near prefix and suffix...but I dont think it works there
Awesome Idea! I can't wait to try this out!
It works But When im in my default rank I still have the permission /sneak Even tho None of my ranks have sneaky.sneak.self what Do i do?
No i have not But i will try it.
@Kyletheninja1
Have you installed ProtocolLib?
It Does not work For me when i put the Java file in My plugin Folder it Does not create a folder For Sneaky And i tried in game /sneak And it says "Unknown Command" Please Help.
@ronfkingswanson
Could you post your configuration file here?
Also, it might help if I knew what other plugins you're running. I've even seen certain plugins (GroupManager) interfering with the configuration system ...
Perhaps you could try a different permission plugin then?
@aadnk
deleted, didn't help. only could get config to stick if I edited it at just the right point between reboots. I think it may be resetting on shutdown as well? Not sure how I got it take, really - but even with
limits:
cooldown: 10
duration: 10
in the config, I'm not experience those limits ingame, and i'm not op...
@ronfkingswanson
Try completely deleting the sneaking file and let the plugin regenerate it. It may be that Sneaky mistakenly thinks it's empty or corrupt every time you start the server.
As for bPermission - I think you might be looking for the "meta" section, though I could be wrong.
Anyone know how to set the duration and cooldown options nodes with bPermissions? doesn't seem to work as shown above....
Also, if I try to set the duration and cooldown in the config, it just gets reset to 0 on every reboot...