Vanish No Packet makes it possible for server operators - and players with the necessary permissions - to turn invisible. "No Packet" refers to the fact that the plugin does not use packets to track players.
The main purpose of this plugin is to make it easier for administrators to observer their players. When you vanish, players will be unable to see you and you won't be listed in the online player list either. Unless you accidentally start chatting they will not notice you are there, watching them!
To make players even less aware of your presence it is possible to enable fake announcements. When you turn invisible it will look like you just left the game and when you appear back to normal it will say you joined the game.
Another plugin created by mbaxter is "TagAPI", as the name implies this is not a standalone plugin; but an API that can be used by other plugins. This API makes it possible to change the name of a player. If you install this additional plugin as well Vanish No Packet will make use of it: vanished players are still visible by server operators, to make it easier to detect them their names will appear in cyan rather than white.
In short, Vanish No Packet is an extremely helpful tool for server administrators. It allows them to turn invisible instantly, whenever they want: enabling them to observe other players unnoticed, to watch for griefing and other unwanted behaviour. On top of that the plugin does not send packages about vanished players, making it impossible to track them.
Finally, we also had the chance to set up an interview with mbaxter, the creator of Vanish No Packet. Check it out below to learn more about the development process of this plugin!
What inspired you to develop Vanish No Packet?
At the time of VNP's inception, there were several 'vanish' plugins but all of them could be detected by hacked clients. The trouble was that the server would continue sending packets, or bits of information, about the 'invisible' players. So, I created the plugin such that it wouldn't have this problem. There had already been a plugin named Vanish, on which the concept was started, and a plugin based on that named VanishNoPickup which had (as the name describes) added the ability block pickup of items. So as a sort of pastiche of the existing names I created VanishNoPacket, a vanish plugin adding the feature of not sending packets about players.
How was your plugin received by the community at its first release?
Reception was mostly positive, but slowed due to the time I released. This was around when the permissions systems were undergoing a major change and consolidating permissions as we now know it into a Bukkit-controlled system. VanishNoPacket was one of the first plugins to only support the new system, much to the disappointment of server admins still holding on to the old system. However, the permissions instability subsided quickly and the pace of adoption quickened. The older plugins were no longer updated and this was the only plugin offering a unique way of hiding from players - a great server management tool. On any given day the plugin is now run on over ten thousand servers, with Curse reporting twenty five thousand monthly downloads.
Approximately how much time went into development of the plugin so far?
It's really hard to give an estimate. The plugin is a year old (Aug 6 is its birthday), with hundreds if not a thousand different occasions when I worked on it to change it, fix it, or improve it. I'd estimate at least a day or two (24-48 hours) of writing, editing, and testing.
Did you come across any problems while working on your plugin, and if any, how did you solve them?
The greatest problem was one that started right with the first release: VanishNoPacket used to require that the server also have the plugin Spout. Spout (now named SpoutPlugin) is one of the most complicated plugins internally due to the way it gets its fingers into many parts of the server to add new features or attempt optimizing efficiency. This made some server admins uncertain on adopting VanishNoPacket. However, after collaboration with others on the Bukkit team, code was added into Bukkit itself to allow me to remove the requirement of any additional plugins, which I then released as the 3.x series in February, and it was a major step forward in terms of stability.
What tools have you used to make this plugin possible and what purpose did each serve?
I haven't used any particularly exciting tools, just good old Eclipse for code editing and Maven and Jenkins for handling instantly building the plugin whenever I change things and want to test them. For a plugin that communicates with seven other plugins (with an eighth coming soon), Maven is an excellent tool for managing building the plugin.
Have you learned anything new from working on this project?
It was through working on this plugin that I learned how the underlying system of minecraft itself works with regard to sending information to and from players. It's been instrumental in my recent work on some new plugins that I hope will change the way developers look at player nametags (the name floating over your head). More on that below.
What part of the development process of Vanish No Packet did you enjoy most?
Adding new features that users request. Getting to interact with users of the plugin and listen to their suggestions has been a really great experience.
And what is your favourite part of the plugin itself?
My favorite part is being able to sneak up behind someone griefing on my server, appear in front of them with a bang (an actual, in-game explosion), and then ban them as they run away (they often really do run!) in fear.
Are you currently working on any other plugins or updates?
I'm working on far too many plugins currently (http://dev.bukkit.org/profiles/mbaxter/server-mods/). I'll just talk about the project I'm most excited about, one whose origin is similar to that of VanishNoPacket. In recent months, several plugins have begun popping up that as a feature change the color of your nametag - the name above your head - or actually changing the name altogether. These plugins have had varying degrees of success in their implementation, but usually have a bug where the name changes back. I have put together a plugin, called TagAPI, that provides a way of changing that name that is reliable. Other plugins can communicate with TagAPI to determine what nametag should be sent for a player. Its goal is a unified way for all plugins doing nametag changes to work together. Without it, soon we're going to have situations where nametags are changing between two names because somebody is running competing plugins. With TagAPI, I'm using the Bukkit events system which is used by plugins already to determine anything from whether a player can break a block to where monsters can spawn, so I'm providing a shared space in which the plugins can deteremine who has priority and avoid any messy situations.
Essentially, I've created a plugin that lets other plugins change your nametag easily and without fuss. Currently it can be seen if you install TagAPI (http://www.curse.com/server-mods/minecraft/tag) with VanishNoPacket. Admins who can see vanished users will see them with a blue username, to let you know they've invisible to others.
Besides Minecraft, have you ever made any plugins, add-ons or maps for other games?
Years ago I used to make highly unsuccessful maps for Command and Conquer: Red Alert 2. I'd make elaborate single player maps for myself and never release them, but it was great fun. Tinkering with videogames is a frequent hobby of mine.
Do you have any advice for other potential plugin developers?
Three points. Start small. Have your first plugin simply say a message in chat when you punch something, or block spiders from hurting you. Read. When you want to do something and aren't sure how, Google it. Read the javadocs for Bukkit when searching for a way to change something in the game. So many people underestimate the power of using the Internet as a resource for learning. Practice. Think of simple things to add or change, or a feature that another plugin has already made, and then do it yourself without looking at that plugin. I make a plugin or two a week that does nothing original, and is never released. I do it to learn about something I didn't know as well before.
Many thanks to mbaxter for creating this plugin and for participating in our interview!