
Vanish++
More Features than other plugins. Be truly invisible EVERYWHERE!
3.7K
10
Список изменений
Added
- Cross-Server Vanish State Reconciliation: When a player joins a server that shares a MySQL/PostgreSQL database with other servers, their vanish state from any other server is immediately applied — no manual
/vanishneeded after switching. Works on BungeeCord/Velocity networks with a shared database. Stale in-memory entries for offline players are also periodically purged so no server accumulates phantom vanished UUIDs. - Instant Proxy-Ready Vanish State on Join: Vanish state is now pre-fetched from the database during
AsyncPlayerPreLoginEvent(before the player fully connects), so it is applied on the very first tick ofPlayerJoinEventwith zero additional delay. On a proxy network, players switching servers appear vanished or visible to staff immediately, with no visible flicker or catch-up period. - Native Velocity Proxy Plugin: A companion Velocity plugin (
vanishpp-velocity) provides a dedicatedvanishpp:proxyplugin messaging channel for real-time cross-server state sync, config push, and network-wide/vanishreload. The proxy maintains an authoritative vanished-player list and broadcasts state changes to all connected Paper servers instantly. Automatically detected on startup — servers fall back to standalone mode if no Velocity proxy is found. - Scoreboard Timezone Offset (
timezone-offset-hours): The scoreboard's%time%and%date%placeholders now support a configurable hour offset applied on top of the base timezone. Settimezone-offset-hours: 2inscoreboards.ymlto shift the displayed time forward by two hours from the base zone (supports decimals like5.5for IST).timezone: "default"already uses the server's system clock; the offset is applied on top of whichever zone is configured. - ProtocolLib Missing Warning — Disabled Features List: The startup warning shown to staff when ProtocolLib is not installed now includes a
[Disabled Features ▶]hover button listing all 7 features that require ProtocolLib (tab-complete scrubbing, entity packet filtering, ghost-proof spawning, scoreboard team scrubbing, server list count adjustment, silent chest animations/sounds, staff glow).
Fixed
- Mobs Looking at Vanished Players (Passive Head Tracking): Re-introduced
MobAiManagerwith a correct implementation. The root cause of the 1.1.5 regression was thatSafeLookAtPlayerGoalreturnedfalsefromshouldActivate()when only vanished players were nearby — this freed theLOOKgoal slot, allowing the vanillaLookAtPlayerGoalto fill it (vanilla has no vanish awareness).SafeLookAtPlayerGoalnow claims theLOOKslot whenever any player is in range (returningtruewith a null target when all nearby players are vanished), so the vanilla goal can never activate for vanished players. A periodic 20-tick sweep also force-clears any combat targets pointing at vanished players as a safety net. - Cross-Server Timed Rule Expiry Message Not Delivered: When a timed rule (e.g.
/vrules <player> mob_targeting time 30) expired on server A while the player was already connected to server B, the notification was never shown. The fix is three-layered: (1) aPLAYER_MESSAGEpacket type routes the message through the Velocity proxy to wherever the player currently is; (2) if no carrier player is available to send the packet, a__notify_expired__<rule>flag is written to the shared database; (3) a 5-second async poll on every server checks online players for pending DB flags and delivers + clears them immediately — no reconnect required. The rule revert itself always completes successfully; only the notification delivery was affected. - ProtocolLib Async Entity Lookup Spam:
getEntityFromID()was being called from ProtocolLib packet listeners on async threads (e.g. triggered by Orebfuscator), causing console spam and unsafe cross-thread world access. Entity ID to UUID resolution is now handled via a localConcurrentHashMapcache populated at join and cleared at quit, keeping all lookups off the world thread entirely. (Thanks SimplyRan, PR #5) - Folia Crash: Night Vision Applied from Global Scheduler: When cross-server vanish sync (Redis) applied vanish effects from the global region scheduler, calling
player.addPotionEffect()andplayer.removePotionEffect()directly caused anUnsupportedOperationExceptionon Folia because the global scheduler does not own any player entity's region. Night vision potion calls inapplyVanishEffects,removeVanishEffects, andresyncVanishEffectsare now dispatched throughvanishScheduler.runEntity(), which routes to the entity's own region scheduler on Folia and to the main thread on all other platforms. (Thanks SimplyRan, PR #1) - Silent Container Item Duplication: Opening containers while vanished could cause items to duplicate or appear as wrong state. The root cause was a snapshot-copy approach — changes were written to a copy of the inventory and synced back on close, but the sync-back could overwrite concurrent item movements (hoppers, other players) and double-count items. Containers are now opened directly against the real inventory, matching vanilla behaviour exactly.
- Storage Backend Not Applied After
/vanishreload: Changingstorage.typeinconfig.yml(e.g. fromYAMLtoPOSTGRESQL) had no effect until the server was fully restarted./vanishreloadnow shuts down the active storage provider and reinitializes it from the current config, making storage type changes take effect immediately. /vanishscoreboardVisible in Tab-Complete for All Players: The command appeared in tab-complete for players who lackedvanishpp.scoreboard, revealing the feature's existence. The command entry inplugin.ymlnow declarespermission: vanishpp.scoreboard, causing Bukkit to hide it from players without that node.- MobAiManager Crash on Spigot/Bukkit:
MobAiManagercalledBukkit.getMobGoals()— a Paper-only API — unconditionally on startup, causingNoSuchMethodErrorcrashes on Spigot and Bukkit when the listener was registered. The manager is now only registered when the Paper API surface is confirmed present (Paper, Purpur, Folia). Mob AI goal injection and the 20-tick sweep remain fully operational on all Paper-family servers; on Spigot/Bukkit mob targeting prevention continues to work viaEntityTargetEvent.
Файлы
vanishpp-1.1.7.jar(7.23 MiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.1.7
Загрузчики
BukkitFoliaPaperPurpurSpigot
Версии игры
1.20.6–1.21.11
Загрузок
86
Дата публикации
4 дн. назад
