Пример #1
0
            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));
            }
Пример #3
0
            private static void Prefix(ref ZNet __instance)
            {
                if (!__instance.IsServer())
                {
                    return;
                }

                ValheimEventHandler.OnServerStopped();
            }
Пример #4
0
            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));
            }
Пример #6
0
            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);
            }
Пример #7
0
            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));
            }
Пример #8
0
            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));
            }