Looks like the Naval added or changed visibility + networking recalculation during teleport. This is what I've done in order to resolve it, until Whisper comes out with an updated version. But this seems to have resolved it for me ...
Replace lines 160 to 192 with the following;
private void InitVanishedPlayers()
{
foreach (BasePlayer player in BasePlayer.activePlayerList)
{
if (IsHidden(player) && !_hiddenPlayers.Contains(player))
{
if (!player.IsConnected)
{
List<Connection> connections = Pool.Get<List<Connection>>();
foreach (var con in Net.sv.connections)
{
if (con.connected && con.isAuthenticated && con.player is BasePlayer && con.player != player)
connections.Add(con);
}
player.OnNetworkSubscribersLeave(connections);
player.DisablePlayerCollider();
player.syncPosition = false;
player.limitNetworking = true;
Pool.FreeUnmanaged(ref connections);
}
else
{
Disappear(player);
}
}
}
}
private void EnforceHiddenState(BasePlayer player)
{
if (player == null || !_hiddenPlayers.Contains(player))
return;
if (!player.IsConnected)
return;
List<Connection> connections = Pool.Get<List<Connection>>();
foreach (var con in Net.sv.connections)
{
if (con.connected && con.isAuthenticated && con.player is BasePlayer && con.player != player)
connections.Add(con);
}
player.OnNetworkSubscribersLeave(connections);
player.DisablePlayerCollider();
player.syncPosition = false;
player.limitNetworking = true;
Pool.FreeUnmanaged(ref connections);
}
#endregion Configuration
#region Localization
Then replace lines 1118 to 1136 with;
//for shotgun traps & to keep vanished players hidden after teleports
[HarmonyPatch(typeof(BasePlayer), "Teleport", typeof(Vector3)), AutoPatch]
private static class BasePlayer_Teleport_Patch
{
[HarmonyPostfix]
private static void Postfix(BasePlayer __instance)
{
if (__instance == null || vanish == null)
return;
// Only care about players that are currently considered vanished by this plugin
if (!_hiddenPlayers.Contains(__instance))
return;
// Re-enforce the hidden state after any teleport.
vanish.EnforceHiddenState(__instance);
}
}
#endregion Harmony
}
}