private static void Process(ZNet __instance, ZDOID zdoID) { if (zdoID.IsNone()) { return; } var zdo = ZDOMan.instance.GetZDO(zdoID); if (zdo == null) { return; } var dead = zdo.GetBool("dead", false); // If dead, and not in deadPlayers, add to deadPlayers and create event // If dead, and in deadPlayers, do nothing // If not dead, and in deadPlayers, remove // If not dead, and not in deadPlayers, do nothing if (dead) { if (DeadPlayers.Contains(zdoID.userID)) { return; } DeadPlayers.Add(zdoID.userID); ValheimEventHandler.OnPlayerDeath(GetPlayerInfo(__instance, zdoID)); } else if (DeadPlayers.Contains(zdoID.userID)) { DeadPlayers.Remove(zdoID.userID); } }
private static void Postfix(ref Player __instance) { if (!ZNet.instance.IsServer() || ZNet.instance.IsDedicated()) { return; } ValheimEventHandler.OnPlayerDeath(getBasicPlayerInfoFromPlayer(__instance)); }
private static void Prefix(ref ZNet __instance) { if (!__instance.IsServer()) { return; } ValheimEventHandler.OnServerStopped(); }
private static void Postfix(ref ZNet __instance) { if (!__instance.IsServer()) { return; } ValheimEventHandler.OnServerStarted(Main.Configuration.FetchAndShowIp.Value ? Utils.FetchIPAddress() : null); }
private static void Prefix(ref Player __instance) { if (hasSpawned || !ZNet.instance.IsServer() || ZNet.instance.IsDedicated()) { return; } hasSpawned = true; ValheimEventHandler.OnPlayerJoined(getBasicPlayerInfoFromPlayer(__instance)); }
private static bool Prefix(ref string user, ref string text, ref Talker.Type type, ref Vector3 pos) { if (!ZNet.instance.IsServer() || IsChatMessageIgnored(user, text)) { return(true); } ValheimEventHandler.OnPlayerMessage(type, user, text, pos); return(true); }
private static void Prefix(ref ZNet __instance, ref ZRpc rpc) { ZNetPeer peer = __instance.GetPeer(rpc); if (peer.m_characterID.IsNone() || !ZNet.instance.IsServer() || !__instance.IsConnected(peer.m_uid)) { return; } ConnectedPlayers.Remove(peer.m_uid); ValheimEventHandler.OnPlayerDisconnected(GetPlayerInfoFromPeer(peer)); }
private static void Postfix(ref ZNet __instance, ref ZRpc rpc) { ZNetPeer peer = __instance.GetPeer(rpc); if (peer.m_characterID.IsNone() || !ZNet.instance.IsServer() || !__instance.IsConnected(peer.m_uid) || ConnectedPlayers.Contains(peer.m_characterID.userID)) { return; } ConnectedPlayers.Add(peer.m_characterID.userID); ValheimEventHandler.OnPlayerJoined(GetPlayerInfoFromPeer(peer)); }