SuperVanish >> Be invisible 6.1.0

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

  1. MyzelYam
    Native Minecraft Version:
    1.13
    Tested Minecraft Versions:
    • 1.7
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    Source Code:
    https://github.com/MyzelYam/SuperVanish
    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 and/or silent chest features.
    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)
    Hacked clients can't see invisible players
    Layered permissions which allow for more detailed permissions management

    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- and LeaveMessages 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
    Hides invisible players in the list of logged in players in the serverlist (Requires ProtocolLib)
    Placeholder support for other plugins
    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 invisible 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
    • 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
    • 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.0.0 - 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; Requires ProtocolLib)
      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

      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
      MarkVanishedPlayersAsSpectators: true

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

      FakeJoinQuitMessages:
        # Should SV broadcast a fake quit message when a player vanishs?
        # You can change this message in the messages.yml file.
        BroadcastFakeQuitOnVanish: true
        # Should SV broadcast a fake join message when a player reappears?
        # You can change this message in the messages.yml file.
        BroadcastFakeJoinOnReappear: true
        # Should players with the permission 'sv.see' get a different message when a player vanishs/reappears?
        # You can change this message in the messages.yml file.
        AnnounceVanishReappearToAdmins: true
        # Should only players with the permission 'sv.see' receive fake join/quit messages?
        SendMessageOnlyToAdmins: false
        # Should only players without the permission 'sv.see' receive fake join/quit messages?
        SendMessageOnlyToUsers: false

      # Should SV hide the real join/leave messages of invisible players?
      HideRealJoinQuitMessages: 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
      # 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 SuperTrails and disable trails while you're vanished?
      EnableSuperTrailsHook: true
      # Should SV hook into PlaceholderAPI and add new placeholders to SV + register its own ones for other plugins?
      # Own ones: isvanished, vanishedplayers, playercount, bungeeplayercount
      # 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, bungeeplayercount
      # 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.0.0
     
    Code (Text):

    # SuperVanish v6.0.0 - 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 %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.'
      RemindingMessage: '&aYou are still invisible!'
      ListMessagePrefix: '&aInvisible Players:&f '
      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%)"
    MessagesVersion: 6.0.0
     
    A french translation of the messages.yml file by WasabIII 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, VanishNoPacket and a few 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>cubekrowd-repo</id>
                <url>https://mavenrepo.cubekrowd.net/artifactory/repo/</url>
            </repository>
        </repositories>

        <dependencies>
            <!-- SuperVanish -->
            <dependency>
                <groupId>de.myzelyam</groupId>
                <artifactId>SuperVanish</artifactId>
                <version>6.0.4</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 check if your config is up-to-date with /sv updatecfg. 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!

    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!
    Ulti_Mate, Elias_ViSiT, Saqe and 13 others like this.

Recent Updates

  1. [6.1.0] 1.13.1 support
  2. [6.0.5] Bug fixes
  3. [6.0.4] Bug fixes

Recent Reviews

  1. eot13
    eot13
    5/5,
    Version: 6.0.5
    Excellent plugin! please add placeholders like: %players_vanish%, %players_no_vanish% and it would be perfect!
  2. sfBanjo
    sfBanjo
    5/5,
    Version: 6.0.5
    Fantastic!
    I just messed up the config.... (maybe something should be more clear...) but playing around with all settings, I had what I wanted!
    It works and I love the visibility level in the perms!
    Just great!
    Please continue this great job!
  3. Reblxtemp3r
    Reblxtemp3r
    5/5,
    Version: 6.0.5
    Amazing plugin and amazing developer, everyone should download the plugin and use it on their server.
  4. Vexius
    Vexius
    5/5,
    Version: 6.0.5
    Amazing plugin and more amazing Developer! He helped me out with some questions I had, hes willing to help you out and hes actually caring. I will recommend premium version of this to everyone!
  5. DavidTEC
    DavidTEC
    5/5,
    Version: 6.0.5
    This is easily the best vanish plugin that you can find for free. Sadly the API hasn't been implemented in plugins like Tablist to my knowledge. Great plugin.
  6. Aketo29
    Aketo29
    1/5,
    Version: 6.0.5
    Bug and bug everyday. Please fix your plug.
    With sv.see perms you not see player ans player tab.
    And more bugs..
    1. MyzelYam
      Author's Response
      Since you havent made any attempt to contact me about the issues so I can help you with them and solve errors if there are any I have to assume that this is rather caused by misconfiguration or not reading the resource description.
  7. XpcAdam
    XpcAdam
    5/5,
    Version: 6.0.5
    The only vanish plugin that actually vanishes you! No one knows that you are on and it is great
  8. Chin
    Chin
    1/5,
    Version: 6.0.5
    Trash people can see you with tab completion (/msg /glist / tell etc)
    -----------------------------
    1. MyzelYam
      Author's Response
      Bukkit plugins have no power over bungee plugins. Use PremiumVanish for bungee support.
  9. MrDarkness462
    MrDarkness462
    5/5,
    Version: 6.0.5
    This is a nice plugin, the config is a little bit tricky
    .................................
  10. Takis967
    Takis967
    5/5,
    Version: 6.0.5
    relly cool plugin but i have a problem
    i have in the tab the code : {online} but when i'm vanish in my server it says that i'm online what i need to type???