SuperVanish >> Be invisible icon

SuperVanish >> Be invisible -----

Advanced /vanish plugin which makes other players think that you're not on the server



Description
This is an advanced vanish-plugin which makes other players think that you're not on the server.
Great for catching griefers or testing out new moderators!
Don't forget to install ProtocolLib first if you want to use the serverlist, action bar or silent chest features.
Important - install the latest ProtocolLib dev build!

Need more features or want to support me? Take a look at my other plugin, PremiumVanish!
Features
Invisible players are completely invisible
Hides invisible players in the playerlist [Tab]
Adjusts the amount of online players in the serverlist (Requires ProtocolLib)
For players who are allowed to see a vanished player only the vanished player's head is visible and the vanished player's name is italic gray in the tablist (can be turned off; 1.18 and below only)
Layered permissions which allow you to configure who can see who precisely
Shows action bars to invisible players (Requires ProtocolLib)
You can change nearly every message from this plugin in messages.yml
Invisible players are still invisible after join/quit
Invisible players are still invisible after a reload/restart
Invisible players cannot pick up items
Disables the ''normal'' join/leave messages of hidden players
Broadcasts a fake join/leave message on vanish and/or reappear
Disables damage for invisible players
Hides items in the hand of invisible players
Hides the armour of invisible players
You can reload the configuration in-game
Invisible players can open chests silently (Requires ProtocolLib)
Invisible players can't trigger pressure plates
Invisible players can fly even if they are in survival mode
Invisible players can't block the placement of blocks
Invisible players can't block arrows (but get teleported two blocks up)
Invisible players can't be tab-completed by players who can't see them
Placeholder support for other plugins (see PlaceholderAPI github wiki)
Support for DiscordMC (Install SuperVanishDiscordMC)
You can install BBV by Haskins to get a bossbar vanish indicator
You can use the %supervanish_vanishprefix% and %supervanish_vanishsuffix% PlaceholderAPI placeholders to get special prefixes/suffixes for players only when they are vanished
Commands and Permissions
[...] = Optional; <...> = Required
/sv help - Shows a convenient help page with a list of commands
/sv [on|off] - Hides/shows you - sv.use [.levelX]
/sv [on|off] <player> - Hides/shows an other player - sv.others
/sv reload - Reloads the config files - sv.reload
/sv list - Shows a list of i nvisible players - sv.list
/sv login - Broadcasts a login message - sv.login
/sv logout - Broadcasts a logout message
- sv.logout
/sv recreatefiles [confirm|force] - recreates outdated config files - sv.recreatefiles
/sv tipu - Toggles picking up items per player - sv.toggleitems
/sv stacktrace - Logs information for reporting an issue
Other notable permissions:
sv.see
[.levelX] - Players with this permission can see invisible players (if it's enabled in the config)
sv.keepfly - Players without this permission will lose the ability to fly when they reappear and aren't in creative mode
sv.notoggle - The vanish state of players with this permission cannot be changed by other players
sv.silentchest - Allows you to open chests silently
  • A higher or equal level of sv.see overrides a lower or equal level of sv.use; A higher level of sv.use overrides a lower level of sv.see
  • Format: sv.use.level1, sv.use.level12, etc; sv.see.level1, sv.see.level43, etc
  • Example: If player1 has sv.use.level3 and player2 has sv.see.level3 then player2 can see player1 even if player1 is vanished, however if player1 has sv.use.level4 then player2 cant see him if he's vanished unless he has sv.see.level4 or higher
  • For example, you can use this feature to let nobody but the owner see admins but admins can still see mods and mods can see each other
  • "LayeredSeeAndUsePermissions" needs to be turned on in the config for this to work
  • Players need to rejoin for layered permission changes to register! Keep this in mind when demoting players.
  • sv.use and sv.see without any level still work and both are level 1
  • Players with sv.* and/or supervanish.* have access to sv.use.level1 and sv.see.level1 by default
  • Opped players or players with * perm have access to sv.see.level100 and sv.use.level100 and can therefore see any player and can not be seen by any player who hasn't got sv.see.level100
  • Maximum level: 100; Higher levels don't work
Configuration
The config is split into config.yml and messages.yml
Both files are self-explaining
Code (Text):

# SuperVanish v6.2.18 - Configuration

############# Invisibility Features ##############
InvisibilityFeatures:
  # Should invisible players get night vision? (client-side; Requires ProtocolLib)
  NightVisionEffect: true
  # Should SV disable damage for invisible players?
  DisableDamage: true
  # Should SV disable hunger for invisible players?
  DisableHunger: true
  # Should SV prevent mobs from targeting invisible players?
  DisableMobTarget: true
  # Should invisible players open chests and shulker boxes without the animation and sound?
  # This makes them go into spectator mode temporarily. It's better to only give access to this feature
  # to staff members since a server crash can cause players to stay in spectator mode.
  # Permission: sv.silentchest
  OpenChestsSilently: true
  # Should invisible players not be able to trigger pressure plates and tripwire?
  # If this feature is enabled invisible players can't trigger pressure plates and tripwire.
  DisablePressurePlates: true
  # Should invisible players not be able to push other players or be able to be pushed?
  # WARNING: Uses the scoreboard and may conflict with other plugins!
  DisablePush: false
  # Should vanished players pick up items by default? This can be changed individually with /sv tipu
  DefaultPickUpItemsOption: false
  # Should SV modify tablist packets to prevent the server from leaking who is online?
  # This currently only works on versions below 1.19
  ModifyTablistPackets: true
  # Should SV modify tab complete packets to prevent minecraft commands from leaking who is online?
  ModifyTabCompletePackets: true
  # Should vanished players be unable to trigger the vibration of a sculk sensor?
  PreventSculkSensorActivation: true
  # Should vanished players be unable to break turtle eggs?
  PreventTurtleEggBreaking: true
  # Should vanished players not activate the tipping effect on dripleaves?
  DisableDripLeaf: true
  # Should vanished players be unable to trigger raids?
  PreventRaidTriggering: true
  # Should vanished players be unable to make mobs spawn? (paper only)
  PreventMobSpawning: true

  Fly:
    # Should invisible players be able to fly even if they aren't in creative/spectator mode?
    Enable: true
    # Should invisible players WITHOUT the permission 'sv.keepfly' lose the ability to fly on reappear?
    DisableOnReappear: true

############# Vanish State Features ##############
VanishStateFeatures:
  # Should players with the permission 'sv.joinvanished' join vanished all the time?
  # Doesn't work if you use GroupManager for permissions
  AutoVanishOnJoin: false
  # Should invisible players reappear automatically when they change their world?
  ReappearOnWorldChange: false
  # Should invisible players reappear automatically when they leave the server?
  ReappearOnQuit: false
  # Should invisible players reappear automatically
  # when they change their world and don't have the permission 'sv.use' anymore?
  CheckPermissionOnWorldChange: false
  # Should invisible players reappear automatically
  # when they leave the server and don't have the permission 'sv.use' anymore?
  CheckPermissionOnQuit: false
  # Should invisible players reappear automatically
  # when they join the server and don't have the permission 'sv.use' anymore?
  # Doesn't work if you use GroupManager for permissions
  CheckPermissionOnLogin: false

############## Indication Features ###############
IndicationFeatures:
  LayeredPermissions:
    # Should players with the permission 'sv.see' be able to see invisible players in the tablist & in-game?
    EnableSeePermission: true
    # Should sv.use and sv.see be layered? => sv.use.levelX, sv.see.levelX
    # Players can see a vanished player if their see level is higher or equal to the other player's use level
    # Note: You have to rejoin for changes to take effect if you changed those permissions while being online
    LayeredSeeAndUsePermissions: false
    # What should be the highest level for both permissions?
    # Lower amounts might improve performance with more players since they reduce the amount of permission checks
    MaxLevel: 100
  # Should vanished players show up dark gray in the tablist and should only their head be visible?
  # Only players who are allowed to see the player will see this effect; this helps other staff with
  # differentiating them from players they should talk to; Requires ProtocolLib
  # This currently only works on versions below 1.19
  MarkVanishedPlayersAsSpectators: true

################ Message Options #################
MessageOptions:

  FakeJoinQuitMessages:
    # Should SV broadcast any kind of announcement (fake quit or player vanished) when a player vanishes?
    # You can change the messages in the messages.yml file.
    BroadcastFakeQuitOnVanish: true
    # Should SV broadcast any kind of announcement (fake join or player reappeared) when a player reappears?
    # You can change the messages in the messages.yml file.
    BroadcastFakeJoinOnReappear: true
    # Should players with the permission 'sv.see' get an admin announcement instead of a fake join/quit message?
    # You can change the messages in the messages.yml file.
    AnnounceVanishReappearToAdmins: true
    # Should there only be admin announcements and no fake join/quit messages?
    SendMessageOnlyToAdmins: false
    # Should there only be fake join/quit messages and no admin announcements?
    SendMessageOnlyToUsers: false

  # Should SV hide the real join/leave messages of invisible players?
  HideRealJoinQuitMessages: true
  # Should SV hide the advancement messages of invisible players (only send it to the player)? (paper only)
  HideAdvancementMessages: true
  # Should SV hide leave messages for invisible players if 'VanishStateFeatures->ReappearOnQuit' is turned on?
  # Overrides 'HideRealJoinQuitMessages'
  ReappearOnQuitHideLeaveMsg: true
  # If the setting above is turned on, should players with the permission 'sv.see' get
  # a message when an invisible player joins/quits?
  AnnounceRealJoinQuitToAdmins: true
  # If the setting above is turned on, should players with the permission 'sv.see' get
  # a message when an invisible player dies?
  AnnounceDeathToAdmins: true
  # Should SV remind players who join the server vanished of being invisible (in chat)?
  # You can change the message in the messages.yml file.
  RemindVanishedOnJoin: true
  # Should invisible players have an action bar which tells them that they're invisible?
  # You can change the action bar in the messages.yml file.
  DisplayActionBar: true

############## Restrictive Options ###############
RestrictiveOptions:
  # Should invisible players not be able to break blocks?
  # Bypass permission: sv.breakblocks
  PreventBlockBreaking: false
  # Should invisible players not be able to place blocks?
  # Bypass permission: sv.placeblocks
  PreventBlockPlacing: false
  # Should invisible players not be able to damage players or mobs?
  # Bypass permission: sv.damage
  PreventHittingEntities: false

############# External Invisibility ##############
ExternalInvisibility:

  ServerList:
    # Should this plugin adjust the amount of players in the serverlist? (-1 per invisible player)
    AdjustAmountOfOnlinePlayers: true
    # Should this plugin hide invisible players in the list of logged in players?
    # You can view this list when your mouse hovers over the amount of online players.
    AdjustListOfLoggedInPlayers: true

################## Hook Options ##################
HookOptions:
  # Should SV hide invisible players in /who, /list, /online, /near, etc?
  # Note: Players with the permission essentials.vanish.interact can still see invisible players in these commands
  # Important: You have to reload both SV and Essentials if you change this setting (reload SV first)
  EnableEssentialsHook: true
  # Should SV hide invisible players on your dynamic map and broadcast join/leave messages if you use Dynmap?
  EnableDynmapHook: true
  # Should SV send fake join/leave messages in dynmap's web-chat?
  # You can configure the join/leave messages in the messages.yml file
  DynmapSendJoinLeaveMessages: true
  # Should SV hook into TrailGUI and disable trails while you're vanished?
  EnableTrailGUIHook: true
  # Should SV hook into PlaceholderAPI and add new placeholders to SV + register its own ones for other plugins?
  # Own ones: isvanished, vanishedplayers, playercount
  # Format: %supervanish_<placeholder>%
  EnablePlaceholderAPIHook: true
  # Should SV hook into MVdWPlaceholderAPI and add new placeholders to SV + register its own ones for other
  # plugins?
  # Own ones: isvanished, vanishedplayers, playercount
  # Format: {supervanish_<placeholder>}
  EnableMVdWPlaceholderAPIHook: true
  # Should SV stop NPCs from greeting or talking about hidden players?
  EnableCitizensHook: true

############# Compatibility Options ##############
CompatibilityOptions:
  # This section is for advanced users only!
  # The event priority which SuperVanish should use for the specific event.
  # Allowed values are LOWEST, LOW, NORMAL, HIGH, HIGHEST and MONITOR
  # Higher priorities might override other plugins while lower ones might not

  # The priority for removing the join message
  PlayerJoinEventPriority: HIGH # <- keep HIGH if you use Essentials to modify join/quit messages !!
  # The priority for removing the quit message
  PlayerQuitEventPriority: HIGH

############# Miscellaneous Options ##############
MiscellaneousOptions:

  UpdateChecker:
    # Should SV check for updates on spigot regularly? There is no automatic update; this just informs you
    Enable: true
    # Should players with the permission 'sv.notify' get notified if the current version of SV is outdated?
    NotifyAdmins: true

################# Do Not Touch ###################
ConfigVersion: 6.2.18
 
Code (Text):

# SuperVanish v6.2.13 - Messages
#
# Information:
# <..> means that .. is required; [..] means that .. is optional and can be left out; | inside [] or <> stands for 'OR'
# You can use the & character for color codes; Example: '&cThe color of this text would be red!'
# You can use #XXXXXX for HEX color codes. Example: '#663EF6This text would be purple!'
# You can use %p% to get the player's name; Example: '&4&l%p%, you aren't allowed to execute this command!'
# You can use %other% to get the name of the target or cause
# You can use %d% to get the player's display name; if you use Essentials then the display name contains the prefix too
# You can use %tab% to get the player's name in the player list (TAB)
# You can use %prefix% to get the player's prefix (Requires Vault)
# You can use %suffix% to get the player's suffix (Requires Vault)
# You can use %group% to get the player's group (Requires Vault)
# You can use %nick% to get the player's nickname (Requires Essentials)
# Some messages allow different, unique variables too
#
# NOTE: You can get WAY more placeholders by installing PlaceholderAPI or MVdWPlaceholderAPI
#
# Empty messages will not be sent
# Using \n starts a new line
#
# Important:
# You must double single quotes if you want to use them inside a message.
# You must NOT use any tab characters inside this file (indent key) otherwise YAML will spam your console with errors!
# !! If there are errors in the console after editing this file paste it into an online YAML parser to see if
# there are any YAML syntax errors !!
Messages:
  NoPermission: '&4Denied access! You are not allowed to do this.'
  InvalidUsage: '&cInvalid usage, you can use &6/sv help&c for a list of commands.'
  VanishMessage: '&e%p% left the game'
  ReappearMessage: '&e%p% joined the game'
  VanishMessageWithPermission: '&a[SV] %p% vanished.'
  ReappearMessageWithPermission: '&a[SV] %p% reappeared.'
  OnVanish: '&aYou are now invisible!'
  OnReappear: '&aYou are no longer invisible!'
  OnVanishCausedByOtherPlayer: '&a%other% hid you, you are now invisible!'
  OnReappearCausedByOtherPlayer: '&a%other% showed you, you are now visible!'
  AlreadyVanishedError: '&cYou are already invisible!'
  NotVanishedError: '&cYou are not invisible!'
  SilentJoinMessageForAdmins: '&a[SV] %p% joined silently.'
  SilentQuitMessageForAdmins: '&a[SV] %p% left silently.'
  SilentDeathMessage: '&a[SV] %deathmsg%'
  RemindingMessage: '&aYou are still invisible!'
  ListMessagePrefix: '&aInvisible Players:&f %l'
  ActionBarMessage: '&aYou are invisible to other players!'
  HideOtherMessage: '&aPlayer &e%other%&a is now invisible!'
  ShowOtherMessage: '&aPlayer &e%other%&a is now visible!'
  CannotHideOtherPlayer: '&cYou''re not allowed to change %other%''s visibility!'
  AlreadyInvisibleMessage: '&cPlayer &e%other%&c is already invisible!'
  AlreadyVisibleMessage: '&cPlayer &e%other%&c is already visible!'
  PluginReloaded: '&aSuccessfully reloaded SuperVanish (%time%ms)!'
  InvalidSender: '&cYou must be a player to execute this command!'
  PlayerNotOnline: '&cThat player is not online!'
  PlayerNonExistent: '&cThat player doesn''t exist!'
  ToggledPickingUpItemsOn: '&ePicking up items is now turned &aON&e.'
  ToggledPickingUpItemsOff: '&ePicking up items is now turned &cOFF&e.'
  UpdateWarning: '&cWarning! Recreating %updates% resets %changes%. Please use &e/sv recreatefiles confirm&c if you''d like to continue.'
  RecreatedConfig: '&aSuccessfully recreated %updates%! Please check %changes%.'
  NoConfigUpdateAvailable: '&eYour SuperVanish-files are up to date!'
  RecreationRequiredMsg: '&c[SV] Your SuperVanish-files are not up to date, you can use &e/sv recreatefiles&c to recreate them
  or use /sv recreatefiles dismiss to dismiss this message.
  Recreating SuperVanish''s files gives you access to newer settings and features of the plugin.'
  DismissedRecreationWarning: '&eYou are no longer receiving notifications about this recreation.'
  UndismissedRecreationWarning: '&eYou are now receiving notifications about this recreation.'
  PrintedStacktrace: '&eSuccessfully created a stacktrace, see console!'
  EntityHitDenied: '&c[SV] You can''t hit players or mobs in vanish!'
  BlockPlaceDenied: '&c[SV] You can''t place blocks in vanish!'
  BlockBreakDenied: '&c[SV] You can''t break blocks in vanish!'
  PluginOutdated: '&c[SV] Your current version of SuperVanish is outdated. New version: ''%new%''; Currently: ''%current%'''
  DynmapFakeJoin: '%d% joined'
  DynmapFakeQuit: '%d% quit'
  HelpHeader: "&a<---------------&e SuperVanish-Help &a--------------->"
  HelpFormat: "&6%usage% &7- &b%description% &c(%permission%)"
  PlaceholderIsVanishedYes: "Yes"
  PlaceholderIsVanishedNo: "No"
  PlaceholderVanishPrefix: '&a[V] &r'
  PlaceholderVanishSuffix: ' &r&a[V]'
MessagesVersion: 6.2.13
 
A german translation of the messages.yml file is here.
API
Checking if a player is vanished on Bukkit (no dependencies required)
Code (Text):
private boolean isVanished(Player player) {
        for (MetadataValue meta : player.getMetadata("vanished")) {
            if (meta.asBoolean()) return true;
        }
        return false;
}
This code is supported by SuperVanish, PremiumVanish, EssentialsX, VanishNoPacket and many more vanish plugins.

Basic Bukkit API for SuperVanish and PremiumVanish
SuperVanish and PremiumVanish share the exact same API so you can support both of them with the exact same code.
(Source) (Download)
Code (Text):

First of all you add SuperVanish and PremiumVanish as a (soft-)dependency to your plugin.yml file:

# in the plugin.yml file:
softdepend: [SuperVanish, PremiumVanish]

If you declared it as a soft dependency: Check if SuperVanish or PremiumVanish is enabled before using the API:

if (Bukkit.getPluginManage().isPluginEnabled("SuperVanish") || Bukkit.getPluginManage().isPluginEnabled("PremiumVanish")) {
// use api
}

The next step is to add the SuperVanish.jar file to your java buildpath if you are using an IDE.

Finally you can use the static methods of the VanishAPI class:

// Imports
import de.myzelyam.api.vanish.VanishAPI;
import de.myzelyam.api.vanish.PlayerHideEvent;

public void testTheApi(Player player, Player player2) {
    // A list of all ONLINE vanished players
    List<UUID> invisiblePlayers = VanishAPI.getInvisiblePlayers();
    // Returns a list of the uuids of ALL vanished players, online AND offline
    // MAY INVOLVE A MYSQL-QUERY, so don't use it too often or use it on a different thread!
    List<UUID> allInvisiblePlayers = VanishAPI.getAllInvisiblePlayers();
    // Hide a player
    VanishAPI.hidePlayer(player);
    // Show a player
    VanishAPI.showPlayer(player);
    // Returns true if player is allowed to see player2
    boolean canSee = VanishAPI.canSee(player, player2);
    // Returns true if a player is invisible
    boolean isVanished = VanishAPI.isInvisible(player);
}

If you want to prevent vanishing/reappearing you can use events.
There are two events, PlayerHideEvent and PlayerShowEvent.
PlayerHideEvent triggers when a player vanishs and is online.
PlayerShowEvent triggers when a player reappears and is online.
Example:

@EventHandler
public void onVanish(PlayerHideEvent e) {
    Player p = e.getPlayer();
    if (p.getName().equalsIgnoreCase("Notch")) {
        e.setCancelled(true);
    }
}

IMPORTANT: ALWAYS use MONITOR event priority to get the final outcome of the event but NEVER use MONITOR if you are trying to change the outcome.
 
Code (Text):

    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>

    <dependencies>
        <!-- SuperVanish -->
        <dependency>
            <groupId>com.github.LeonMangler</groupId>
            <artifactId>SuperVanish</artifactId>
            <version>6.2.18-3</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
 

Source
The source of SuperVanish is here.
Feel free to create Pull Requests if you think that you can improve SuperVanish.

Support
How to report a bug:

First of all, please make sure that you're using the latest dev build of ProtocolLib. If something still doesn't work, please pm me with the following information:
  • Detailed description of what's happening in what situation and what you're expecting to happen
  • Are there any stacktraces(errors) in the console? If so, please use pastebin.com to include them in your pm!
  • If not, which plugins are you using? What's your version of SV and Bukkit/Spigot?
  • Does it work if you remove all plugins except ProtocolLib(if you're using it) and SV? If so, remove the other plugins one by one to know which one causes the problem and provide its name and version.
If you need help or found a bug, please pm me!
If you have a general question, please create a comment!

SuperVanish is released under this open-source license.
Please don't use reviews to ask for help/report bugs! Reviews are the last place to go to,
please contact me first if you experience any issues with SV!
Resource Information
Author:
----------
Total Downloads: 880,472
First Release: Oct 3, 2014
Last Update: Aug 3, 2024
Category: ---------------
All-Time Rating:
217 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings