PremiumVanish - Stay hidden [+Bungee support]

VIP PremiumVanish - Stay hidden [+Bungee support] 2.9.9

Minecraft Versions
1.8, 1.9, 1.10, 1.11, 1.12, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20
Source
https://www.spigotmc.org/resources/14404/
[IMG]

Important - please install the latest ProtocolLib dev build since it's a dependency!
With PremiumVanish you can be fully invisible and undetectable for other players while being more efficient at your administrative work


PremiumVanish is not just a regular vanish plugin.
It makes you undetectable and provides tools which help with catching rule-breakers. It's designed to be complete, secure and reliable.

It doesn't use the standard way of hiding players - it uses packet interception with ProtocolLib(which is a dependency) to prevent any information about vanished players from being sent to other players.
This is much more secure and complete than the conventional method since it acts like a firewall between the server and other players which actually checks every packet of information sent to other players and doesn't fully rely on Bukkit's hidePlayer() mechanism, which is incomplete and not fully optimized for vanish plugins.

To complete the illusion of you not being online, PremiumVanish can modify the outcome of other plugins' commands, provides support for BungeeCord, adds custom placeholders to lots of plugins and includes direct support for many popular plugins.

There are lots of features and tools to make catching griefers and hackers as easy and quick as possible(details below).

[IMG]

Most significant features

  • Fully hides players on packet level which is much more secure and cant be broken by other plugins (Hidden in the game, tablist, playercounts, serverlist, etc; It's exactly like you are not online)
  • You can specify which player can see which player more precisely using layered permissions, e.g. nobody but the owner can see admins but admins can still see mods and mods can see each other; you can change your vanish level at any time with a command
  • You can toggle spectator mode to glide through walls or teleport to players by simply pressing shift twice
  • There is a customizable scoreboard that shows information about a target (nearest or specific player) which is highlighted using a glow effect in-game which only you can see
  • Full Bungeecord support which hides invisible players in /glist, /server and /find
  • PremiumVanish can be configured to modify the outcome of other plugins' commands to support its functionality (primarily to fake "Player not found" messages)
  • You can limit what vanished players can do based on permissions
  • There is a HUGE config file which can customize anything (seriously, check it out)
  • Support for lots of plugins by implementing the APIs of popular vanish plugins, providing full placeholder support and hooking into many popular plugins
  • Fixes flaws of Bukkit's standard methods of hiding players, which most other vanish plugins use (PV checks all tab-completions and the serverlist, which fixes flaws that could otherwise be abused to know who is currently on the server)
  • You can customize the ability of invisible players to break blocks, place blocks, hit entities, chat, view their coordinates, modify their inventory, modify other inventories and more
  • You can open a player's inventory by right-clicking the player
  • You get an action bar so you always know that you're vanished
  • You are still invisible after quit/restart/reload
  • You can show and hide offline players and players on other servers if bungeecord support is turned on
  • If desired, PremiumVanish can automatically reset your gamemode and/or teleport you back to where you vanished, depending on the world you're in
  • If you are vanished, you can choose whether you can pick-up items (/pv tipu)
  • You can open a player's inventory by right-clicking the player
  • You can choose to always join a server or the whole network vanished
  • You can choose to fly even if you're in survival/adventure mode
  • You can neither be damaged nor can you lose food bars
  • You are hidden in any tab-completion (also supports bungee commands)
  • You can get night vision without particles (night vision effects prior to vanishing are kept in memory and will be restored on reappear)
  • You can block neither projectiles nor the placement of blocks
  • You can open and edit chests, shulker boxes and enderchests silently
  • You can edit inventories even in spectator mode
  • You can require your chat messages to be confirmed so you don't accidentally chat while vanished
  • Hides the real join/quit messages of invisible players
  • Broadcasts a fake customizable join/quit message when a player vanishs or reappears which can look different for admins (You can always choose to not send this message using the -s flag in the vanish command)
  • Most mobs wont target or attack you even if you are in survival mode (none if you are in spectator mode)
  • Integrated compatibility with the following plugins: Essentials, LibsDisguises, DisguiseCraft, dynmap, TrailGUI, SuperTrails, PlaceholderAPI, MVdWPlaceholderAPI, Citizens, NametagEdit, Featherboard, ServerListPlus, Party and Friends (with the author's addon), DiscordSRV, TitleManager; and indirect support for more plugins
  • Custom placeholders for Maxim's plugins (Featherboard, Tab, AnimatedNames, etc):
    {premiumvanish_isvanished},
    {premiumvanish_vanishprefix}, (to get a prefix like "[V] " in Tab)
    {premiumvanish_vanishsuffix},
    {premiumvanish_vanishedplayers},
    {premiumvanish_playercount}, (the amount of players you can see)
    {premiumvanish_bungeeplayercount},
    {premiumvanish_bungeeplayercount@<server>},
    {premiumvanish_playercountwithoutshowintab},
    {premiumvanish_target},
    {premiumvanish_uselevel},
    {premiumvanish_seelevel}
    (same for PlaceholderAPI, but with %placeholder%. Some placeholders work in ServerListPlus, too)
  • You can install BBV by Haskins to get a bossbar vanish indicator
  • Detailed and nice /pv help command which is 100% customizable and makes use of 1.8 click and hover events and only shows relevant but also detailed information about commands and permissions
  • Two commands to broadcast fake join/quit messages without vanishing
  • A command to reload or recreate the configuration files in-game
  • PremiumVanish's commands offer useful tab-completions
  • A command which shows all hidden players and if they're offline it also shows you how long they've been offline for
  • Commands to control the player on your scoreboard and to teleport to the player
  • You can toggle your vanish scoreboard with /pv scoreboard
  • You can configure command blacklists/whitelists for vanished players and execute commands when a player vanishes/reappears
  • PremiumVanish offers multiple methods of hiding players
  • You can prevent invisible players from cheating items in creative mode
  • You can prevent invisible players from pushing other players and from being pushed (This doesn't work with some plugins)
  • When you reappear you don't take environmental damage for a few seconds
  • You can prevent invisible players in spectator mode from teleporting using the teleport feature of the spectator mode
  • Invisible players cannot trigger sculk sensors
  • You can turn nearly every feature listed above off and/or change it
  • You can change nearly every message PremiumVanish sends to you
  • It's possible to change PV's commands and aliases (Useful if you use a plugin like PlayerVaults which uses /pv as main command as well)
  • Limited support for RedisBungee (Currently only hiding all vanished players from /glist, more support when there is more demand for it)
  • Hides vanished players in the query (query_enabled option in Waterfall's config.yml file). This only works with Waterfall proxies due to API limitations.
  • And it also offers all the things I forgot in the list above

There are many differences, SV tries to stay simple while PV has all kinds of features. Also, PV helps you with doing your admin duties while providing invisibility, SV just provides invisibility. Notable PV features:
  • Bungee/Database support
  • PV doesnt use Bukkit's standard method of hiding players that pretty much all other vanish plugins use but it uses ProtocolLib to hide players on packet level which leads to a much more reliable and complete invisibility by cancelling packets directly (The standard method doesnt cancel all tab-completions and it doesnt cancel ping update packets which means that hacked clients can figure out whether you are online even if you are vanished with the standard method; this also prevents incompatibilities with other plugins since they cant reveil you using the standard method; this is like a second layer of protection on top of the standard one)
  • A target system and a customizable scoreboard that shows you info about your target
  • You can teleport to your target, choose a different one, etc.
  • PV can change the outcome of other plugins' commands for more compatibility with PV
  • You can glide through doors and walls by pressing shift twice
  • Many more options to limit what vanished players can do (hiding coordinates, preventing interaction, etc)
  • You can open other players' inventories by right-clicking them
  • PV's commands and messages offer hover and click effects, e.g. /pv help shows more info about a command when you hover over it and it inserts it into your chat when you click on it; /pv list shows you whether a vanished player is online or how long he has been offline for
  • You can choose to have to confirm your chat messages so you can't accidentally chat while you're vanished
  • You can make PV execute commands you define when vanishing/reappearing
  • You can change PV's main command and aliases in the config
  • There are sooo many config options in general, you can take a look at it in PV's description

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]

[IMG]


(you can get more details by doing /pv help in-game)
You can change /pv to something else in the config file if there are conflicts with other plugins

[IMG]


There is also a bungeecord command called /networkvanish which toggles whether you always join the bungeecord vanished (Requires PV to be installed on bungeecord).

[IMG]

(you can get more details by doing /pv help in-game)

  • /pv help - pv.help
  • /pv [on|off] - pv.use
  • /pv [on|off] <player> - pv.others
  • /pv list - pv.list
  • /pv login - pv.login
  • /pv logout - pv.logout
  • /pv tipu - pv.toggleitems
  • /pv recreatefiles - pv.recreatefiles
  • /pv reload - pv.reload
  • /pv target <player> - pv.target
  • /pv unlock - pv.unlock
  • /pv tptg - pv.tptg
  • /pv printstacktrace - pv.printstacktrace
  • /pv setlevel - pv.setlevel
  • /pv scoreboard - pv.togglescoreboard
Command Flags for /pv [on|off] and /pv [on|off] <player>:
  • -t with the permission pv.showintab
  • -s with the permission pv.silent

Miscellaneous permissions:
[IMG]


Note
the permission pv.see doesn't only work on bukkit servers but also on bungeecord, on bungeecord it allows seeing hidden players in bungeecord's commands

You can also use pv.use.levelX and pv.see.levelX if enabled in the config, higher levels override lower ones so you can specify which player can see which player more precisely. Details:

  • A higher or equal level of pv.see overrides a lower or equal level of pv.use; A higher level of pv.use overrides a lower level of pv.see
  • Format: pv.use.level1, pv.use.level12, etc; pv.see.level1, pv.see.level43, etc
  • Example: If John has pv.use.level3 and Max has pv.see.level3 then Max can see John even if John is vanished, however if John has pv.use.level4 then Max cant see him if he's vanished unless Max has pv.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
  • Players need to rejoin for layered permission changes to register! Keep this in mind when demoting players.
  • pv.use and pv.see without any level still work and both are level 1
  • Players with pv.* and/or premiumvanish.* have access to pv.use.level1 and pv.see.level1 by default
  • Opped players or players with * perm have access to pv.see.level100 and pv.use.level100 and can therefore see any player and can not be seen by any player who hasn't got pv.see.level100 (you can change this using negated permissions)
  • Maximum level: 100; Higher levels don't work (this is a default value, you can change this in the config)
  • This needs to be enabled in the config file by setting 'LayeredSeeAndUsePermissions' to 'true' in PV's config.yml file. This setting can also be activated in PV's bungeecord configuration.yml to add layered permissions support to bungee commands if your permissions plugin can change bungee permissions (or you set them up manually)

There is also the permission pv.networkvanish for the bungeecord command /networkvanish (Requires PV to be installed on bungeecord).
Other permissions can be found in the config file.

[IMG]

The configuration is split into messages.yml for messages and config.yml for settings. On bungeecord premiumvanish's config file is called configuration.yml.


Code:
# PremiumVanish v2.8.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 #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)
# You can use %special{<text>|<hoverMessage>|[clickCommand]|[run|suggest]}% to create a clickable/hoverable
#  message part for any message (only one per message possible)
# You can use %time{<format>}% to get the current time (Uses the server's timezone)
#  Replace <format> with the date format of your choice. Example: %time{hh:mma | yyyy/MM/dd}%
#  More info: http://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
# You can use %uselevel% and %seelevel% to get the player's respective vanish level (with LayeredPermissions)
# There is also %health%, %maxhealth%, %tps%, %plain_tps%, %ping% and %plain_ping%
# Some messages allow different, unique variables too
#
# NOTE: You can get WAY more placeholders by installing PlaceholderAPI or MVdWPlaceholderAPI
#
# You can also make any message dependent on a player's group by adding 'PerGroup' in front of the message:
# PerGroupNoPermission:
#   Admin: 'What, this should not happen you are the Admin!'
#   Player: 'You have like no permissions anyway'
#   Silence: ''
#   Default: 'Access denied.'
#
# You can start a message with [JSON] to send JSON text directly.
# Example: '[JSON]{"text":"Welcome %p%","color":"yellow"}'
#
# 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 %special{&6''/pv help''|&6Click here for help!|/pv help|suggest}% &cfor help.'
  VanishMessage: '&e%p% left the game'
  ReappearMessage: '&e%p% joined the game'
  VanishMessageWithPermission: '&a[PV] %p% vanished.'
  ReappearMessageWithPermission: '&a[PV] %p% reappeared.'
  OnVanish: '&aYou are now invisible! (%time{hh:mm a}%)'
  OnReappear: '&aYou are no longer invisible! (%time{hh:mm a}%)'
  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!'
  AppliedSilentFlag: '  &eUsing flag -s: No fake join/quit broadcast'
  AppliedShowInTabFlag: '  &eUsing flag -t: Not hidden in the tablist'
  SilentJoinMessageForAdmins: '&a[PV] %p% joined silently.'
  SilentQuitMessageForAdmins: '&a[PV] %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 PremiumVanish (%time%ms)!'
  InvalidSender: '&cYou must be a player to execute this command!'
  PlayerNotOnline: '&cThat player is not online!'
  PlayerNonExistent: '&cThat player doesn''t exist!'
  TeleportationFailed: '&cYour teleportation failed because another plugin disallowed it.'
  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/pv recreatefiles confirm&c if you''d like to continue.'
  RecreatedConfig: '&aSuccessfully recreated %updates%! Please check %changes%.'
  NoConfigUpdateAvailable: '&eYour PremiumVanish-files are up to date!'
  RecreationRequiredMsg: '&c[PV] Your PremiumVanish-files are not up to date. You can use &e/pv recreatefiles&c to recreate them
  or click %special{&6here|&6Click here to dismiss this message!|/pv recreatefiles dismiss|suggest}% &cto dismiss this message.
  Recreating PremiumVanish''s files is optional and gives you access to newer config settings and messages of the plugin.
  If you don''t want to redo the entire config files you can also copy in new messages/settings manually
  (see default config files in resource description).'
  DismissedRecreationWarning: '&eYou are no longer receiving notifications about this recreation.'
  UndismissedRecreationWarning: '&eYou are now receiving notifications about this recreation.'
  MustBeVanished: '&cYou must be invisible to use this command!'
  ScoreboardDisabled: '&cThe scoreboard has been disabled in the configuration.'
  NoTarget: '&cYou don''t have any target at the moment!'
  NoLockedTarget: '&cYou don''t have any locked target at the moment!'
  UnlockedPlayer: '&6Successfully unlocked your target!'
  TargetedPlayer: '&eSuccessfully targeted the player ''&a%other%&e''!'
  ScoreboardLockedTarget: '&e[L]'
  ScoreboardNoTarget: 'None'
  ToggledScoreboardOn: '&eYour vanish scoreboard is now turned &aON&e.'
  ToggledScoreboardOff: '&eYour vanish scoreboard is now turned &cOFF&e.'
  PrintedStacktrace: '&eSuccessfully created a stacktrace, see console!'
  ChatMessageWarning: '&c[PV] Your message must end with a %char% to be sent!'
  ChatMessageWarning2: '&cPlease click %special{&6here|&6Click here to send your message!|%message%/|suggest}% &cto send the message.'
  ChatMessageDenied: '&c[PV] You can''t send messages in vanish! %special{&6[Reappear]|&eClick here to reappear!|/pv off|suggest}%'
  CommandAccessDenied: '&c[PV] You can''t use this command in vanish!'
  CreativeItemDenied: '&c[PV] You can''t cheat items in vanish!'
  SpectatorTeleportDenied: '&c[PV] You can''t teleport using the spectator menu in vanish!'
  EntityHitDenied: '&c[PV] You can''t hit players or mobs in vanish!'
  BlockInteractDenied: '&c[PV] You can''t interact with this block in vanish!'
  BlockUseDenied: '&c[PV] You can''t use this block in vanish!'
  BlockPlaceDenied: '&c[PV] You can''t place blocks in vanish!'
  BlockBreakDenied: '&c[PV] You can''t break blocks in vanish!'
  InventoryModifyDenied: '&c[PV] You can''t edit this inventory in vanish!'
  MessageFailedAntiSpam: '&c[PV] Please slow down and wait at least %time% before running this command again.'
  SwitchedGameMode: '&a[PV] Switched gamemode (Double-Shift)'
  PluginOutdated: '&c[PV] Your current version of PremiumVanish is outdated. New version: ''%new%''; Currently: ''%current%'''
  NoDatabaseConnection: '&c[PV] Error: Failed to connect to the database, more info in console.'
  DynmapFakeJoin: '%d% joined'
  DynmapFakeQuit: '%d% quit'
  HelpHeader: '&e<&f---------------&6PremiumVanish-Help&f-----------------&e>'
  HelpHint: '&7You can hover over a command to show more information about it and click on a command to
  insert it into your chat.'
  HelpCommands: '&eCommands:'
  HelpCommandFormat: '%special{&a- &c%usage% &b%shortdesc%|&a%usage%\n&f%longdesc%\n&4Permission:&e
  %permission%\n&2Console:&e %console%|%usage%|suggest}%'
  HelpCustomCommandShortDescriptions:
#    '/pv help': 'Custom short description; Keep the indentation, only remove the hashtag!'
  HelpCustomCommandLongDescriptions:
#    '/pv target <player>': 'Custom long description'
  HelpConsoleYes: 'Yes'
  HelpConsoleNo: 'No'
  HelpOtherPermissions: '%special{&e> Other permissions <|&aOther permissions%permissions%}%'
  HelpOtherPermissionsPermissionsFormat: '\n&c%permission% &e> &f%description%'
  HelpFooter: ''
  InvalidVanishLevel: "&c'%arg%' is not a valid vanish level (Maximum=%maxlevel%)."
  SetVanishLevelDenied: "&cYou are not allowed to set your level to %level%!"
  LayeredPermissionsDisabled: "&cLayered permissions must be enabled in the config."
  SetVanishLevel: "&aYou set your vanish level to %level%!"
  DiscordSRVFakeQuit: "&e%p% left the game"
  DiscordSRVFakeJoin: "&e%p% joined the game"
  PlaceholderIsVanishedYes: 'Yes'
  PlaceholderIsVanishedNo: 'No'
  PlaceholderVanishPrefix: '&a[V] &r'
  PlaceholderVanishSuffix: ' &r&a[V]'
MessagesVersion: 2.8.0

Code:
# PremiumVanish v2.7.7 - Bungeecord proxy extension config
Configuration:
  Database:
    # The credentials for the database, make sure to use the same database for PV on any bukkit/bungee server.
    # This has to be enabled for this plugin to work on bungeecord.
    #
    # Important: Please make sure that ip-forwarding is enabled on your Bungee AND your Bukkit servers.
    # It's also important that your database is firewalled so it's not accessible from the internet.
    Enable: true
    # The ip of your database server
    Ip: ""
    # The port of your database, usually 3306; just leave it empty if there is no specific port
    Port: "3306"
    # You can make PremiumVanish ignore the two options above and use a direct URI to connect instead
    # Format for MySQL servers: jdbc:mysql://<yourIp>:<yourPort>/<yourDatabase>?useSSL=false
    CustomURI: ""
    # The name of your database user
    User: ""
    # The password of your database user
    # WARNING: Please make sure only people who are allowed to know the password can access this file
    Password: ""
    # The name of the database which PremiumVanish should create its tables in
    # Note: PremiumVanish won't create this database, it must be pre-created using eg. phpMyAdmin
    Database: ""
    # Not recommended; Makes PV use the standard JDBC connector instead of the more powerful multi-pooled HikariCP one
    # You can give this a try if you have strange problems with connecting to your database
    BasicDatabaseConnector: false
  Features:
    # Should PremiumVanish hide invisible players in the bungeecord commands /glist, /server and /find?
    # Note: You can use 'pv.see' as a bungeecord permission to determine which players should be able to see
    # invisible players in these commands. (This doesn't replace the bukkit permission, it's recommended to use both)
    ReplaceBungeeCommands: true
    # Should PremiumVanish adjust the playercount in the serverlist? (-1 per invisible player)
    AdjustPlayerCount: true
    # Should PremiumVanish remove the names of vanished players from tab-completions for players without pv.see?
    FilterTabCompletions: true
    # A whitelist of command usages where it should be allowed to tab-complete vanished players that you can't see.
    # You can use this for commands that generally tab-complete any player, online or not.
    # This section is for advanced users only and uses regular expressions.
    # For changes to apply you need to change this on all spigot servers and on the bungee.
    TabCompleteWhitelist:
      - "/(ps|plotsquared|p2|2|plotme|plot|p)\\s(visit|v|tp|teleport|goto|warp).*"
    # You can make any command not execute and instead return a custom message if an argument is a vanished
    # player's name. Useful for faking 'Player not found' messages if there are unsupported plugins.
    # You can use <vanished> as a placeholder for any vanished player's name and <...> as a placeholder for
    # anything but whitespace. Any message which STARTS WITH the text you define below (case-insensitive) will
    # be cancelled and will instead send the sender of the command a message you specify.
    # This is network-wide and not optimized for Bukkit commands, for non-bungeecord commands go to the
    # server's PV config; exempt permission: pv.see
    CustomCommandMessages:
      '/examplemsg1 <vanished>': "&cPlayer not found"
      '/makemeadmin2 group <...> useradd <vanished>': "&c<vanished> is totally not online!"
    # Should pv.use and pv.see be layered? => pv.use.levelX, pv.see.levelX
    # Players can see a vanished player if their see level is higher or equal to the other player's use level
    # This setting only applies to PV's bungee features. Layered permissions need to be enabled on the spigot servers.
    # Note: For performance reasons permissions are currently only recomputed on join; '/pv setlevel' isn't supported
    LayeredSeeAndUsePermissions: false
    # What should be the highest level for both layered permissions?
    # Lower amounts might improve performance with more players since that reduces the amount of permission checks
    # This setting only applies to PV's bungee features. Layered permissions need to be enabled on the spigot servers.
    LayeredPermissionsMaxLevel: 100
  Messages:
    MustBePlayer: "&cYou must be a player to use this command!"
    NetworkVanishOn: "&aYou are now joining the network vanished automatically."
    NetworkVanishOff: "&aYou are no longer joining the network vanished automatically."

[IMG]

1. Install PremiumVanish

Compatibility Notes:

  • A server running Spigot 1.8.8/1.9.X/1.10.X/1.11.X/1.12.X/1.13.X/1.14.X/1.15.X/1.16.X/1.17.X/1.18.X/1.19.X/1.20.X is a requirement.
    If spigot is older than 1.16.5 then there can be database connection issues if you use a MySQL database of version 8 or higher, since those newer versions of MySQL weren't supported back then.
  • A version of ProtocolLib which supports your current server version is required
  • The bungee features require PV to be installed on the spigot servers and on an up-to-date bungeecord/waterfall server. Velocity is not supported yet.
  • Java 8 or higher is required
  • The AutoVanishOnLogin option might not work if you use GroupManager
  • PremiumVanish is meant to be a replacement for SuperVanish so you cannot have both installed on the same server
Installing PremiumVanish is really simple.
  1. Install a version of ProtocolLib which supports your current server version (it's best to use the latest ProtocolLib dev build)
  2. Drag & drop PremiumVanish.jar into your plugins folder
  3. Load PremiumVanish (Restart server or use a plugin manager)
  4. Adjust the config files
  5. Adjust your permissions (Use /pv help for a list of permissions)
  6. Reload it (/pv reload)
  7. Optional: Enable bungeecord/database support (see below)

2. Setup Database support

Enabling database support requires a MySQL-Database. (Other SQL-based databases can work as well if you specify a direct URI, however only MySQL is officially supported and guaranteed to work)
This is also possible without using Bungeecord, simply skip the Bungeecord steps if you don't use it.
Note: If you use BungeeCord this is only possible if ip-forwarding is turned on and 'bungeecord' is set to true in spigot.yml.
  1. Install PremiumVanish on the actual bukkit servers (see above)
  2. Adjust the bungeecord settings in PremiumVanish's config.yml file (don't forget to set Enable to true; don't reload it yet)
  3. Drag & drop PremiumVanish.jar into the plugins folder of your bungeecord (Yes, it's the same .jar)
  4. Stop and start your bungeecord server
  5. Adjust the settings of PremiumVanish's configuration.yml file on your bungeecord server
  6. Check all the settings, make sure they're correct
  7. Stop your bungeecord server
  8. Reload PremiumVanish on your bukkit servers
  9. Start your bungeecord server
If you manage to do it correctly everything is gonna work, if not you will be spammed with warnings.
If it's not working, please read what the warnings say and try to fix the problems yourself. Common issues are firewalled databases/servers, ip-forwarding not being enabled on both your bukkit servers and on the bungeecord or not using the same database for everything PV-related. If you can't seem to fix it, please send me a pm containing all the PV-related errors/warnings in your consoles / log files, the output of /pv printstacktrace and a screenshot of premiumvanish's database table in e.g. a phpmyadmin interface (if it exists).

3. Report an issue

Did something not work? First of all check this:
  1. Look at the error, some errors tell you how to fix them
  2. Make sure that you're using the latest version of PremiumVanish
  3. Please make sure that your version of ProtocolLib supports your server version. It's best to use the latest ProtocolLib dev build.
  4. Please see the troubleshooting information below
  5. Restart your server and see if that fixes the issue

[IMG]

General troubleshooting
  • Please make sure that your version of ProtocolLib supports your server version. It's best to use the latest ProtocolLib dev build.
  • Much of the plugin's behavior is documented in the comments of the config file, so please definitely check out the config file.
  • Please try setting PlayerHider to Prevention in PV's config. This makes PV use more stable API and can help with many issues that are caused by ProtocolLib-heavy code. Some features aren't supported by the Prevention PlayerHider so please definitely report any issues with the default PlayerHider. Knowing whether problems also occur with the Prevention hider helps me narrow down the problem in a bug report.
  • Please test if the issue happens on a test server without any plugins but PV and ProtocolLib. Often the issue is that another plugin clashes with one of PV's many features and causes unexpected behavior. To find out which plugin causes the issue you can setup a copy of your actual server and remove the other plugins one by one to see which one causes the problem. You can then include that plugin's name and version in a bug report so I can fix the issue or give more insights about how it can be fixed. Often it's only one of PV's features that is incompatible with the other plugin and that feature can simply be turned off in the config until I find a proper fix.
  • For lag/TPS issues: Please try turning off the background compiler in ProtocolLib's config file

Common issues with popular plugins
  • Tab by Neznamy
    • TAB's author has added support for vanished players in the global tablist
    • The perm tab.seevanished may be required to see vanished players
    • It's recommended to install TAB's Bukkit Bridge on the spigot servers
    • The TAB setting "display-vanished-players-as-spectators" can cause players to be put into a 'weird spectator mode', so please try turning it off if there are issues like that
    • It has also been reported that certain layout.yml configurations can cause 'ghost player' issues, so please try the default layout if there are issues like that.
  • BungeeTabListPlus
    • More information on how to configure vanish support is on the BTLP Wiki page.
  • Geyser/Floodgate
    • Issues with vanished players appearing in the bedrock serverlist playercount can be fixed with Geyser's legacy-ping-passthrough option
    • As for the in-game tablist, you can configure PV to cancel ScoreboardTeam packets, which prevents vanished players from appearing in the bedrock tablist. It can be enabled in PV's config by removing "ScoreboardTeam" from the list of "DisabledInvisibilityModules".
  • Tab or AnimatedNames by Maximvdw
    • You can uncomment PlayerInfo in the list of DisabledInvisibilityModules in PV's config if you have issues with disappearing nametags/white names of vanished players. You will still be hidden in tab if you use the default Hybrid PlayerHider.
  • Essentials
    • Please make sure allow-silent-join-quit is turned off in Essentials config.
[IMG]

Checking if a player is vanished on Bukkit (no dependencies required)

Code:
private boolean isVanished(Player player) {
        for (MetadataValue meta : player.getMetadata("vanished")) {
            if (meta.asBoolean()) return true;
        }
        return false;
}

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

Code:
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.getPluginManager().isPluginEnabled("SuperVanish") || Bukkit.getPluginManager().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:
   <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.6-4</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

Full Bukkit and Bungeecord API for PremiumVanish
There are also a few additional classes and methods which are PremiumVanish-only. If you'd like to use those or interact with PremiumVanish Bungeecord-sided, you can also find PremiumVanish's full API here:
(Source/Repo)
Author
Kritzz
Downloads
1
Views
272
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from Kritzz

Latest updates

  1. 2.9.9

    Fixed connection to MariaDB database (requires using a custom URI and loading database drivers...
  2. 2.9.6

    Improved handling of null pointer exceptions in the end event of the bungee extension tab
  3. 2.9.4

    Added support for %premiumvanish_bungeeplayercount% and...

About Minecraft Forums

Here you will find everything you need to know about the exciting world of Minecraft, from creative game creations to helpful tutorials and multiplayer adventures. Share your passion!
Back
Top