private void OnPlayerConnected(SteamPlayer steamPlayer)
        {
            string id = steamPlayer.playerID.steamID.ToString();

            // Update player's permissions group and name
            if (permission.IsLoaded)
            {
                permission.UpdateNickname(id, steamPlayer.playerID.playerName);
                OxideConfig.DefaultGroups defaultGroups = Interface.Oxide.Config.Options.DefaultGroups;
                if (!permission.UserHasGroup(id, defaultGroups.Players))
                {
                    permission.AddUserGroup(id, defaultGroups.Players);
                }

                if (steamPlayer.isAdmin && !permission.UserHasGroup(id, defaultGroups.Administrators))
                {
                    permission.AddUserGroup(id, defaultGroups.Administrators);
                }
            }

            // Let covalence know
            Covalence.PlayerManager.PlayerJoin(steamPlayer.playerID.steamID.m_SteamID, steamPlayer.playerID.playerName); // TODO: Move to OnUserApprove hook once available
            Covalence.PlayerManager.PlayerConnected(steamPlayer);

            IPlayer player = Covalence.PlayerManager.FindPlayerById(id);

            if (player != null)
            {
                // Set IPlayer object on SteamPlayer
                steamPlayer.IPlayer = player;

                // Call universal hook
                Interface.Call("OnUserConnected", player);
            }
        }
        private void OnPlayerConnected(ClientInfo client)
        {
            if (permission.IsLoaded)
            {
                permission.UpdateNickname(client.playerId, client.playerName);

                OxideConfig.DefaultGroups defaultGroups = Interface.Oxide.Config.Options.DefaultGroups;

                if (!permission.UserHasGroup(client.playerId, defaultGroups.Players))
                {
                    permission.AddUserGroup(client.playerId, defaultGroups.Players);
                }

                if (GameManager.Instance.adminTools.IsAdmin(client.playerId) && !permission.UserHasGroup(client.playerId, defaultGroups.Administrators))
                {
                    permission.AddUserGroup(client.playerId, defaultGroups.Administrators);
                }
            }

            // Let covalence know
            Covalence.PlayerManager.PlayerConnected(client);
            IPlayer iplayer = Covalence.PlayerManager.FindPlayerById(client.playerId);

            if (iplayer != null)
            {
                client.IPlayer = iplayer;
                Interface.Call("OnUserConnected", iplayer);
            }
        }
示例#3
0
        private void IOnPlayerConnected(BoltConnection connection)
        {
            string  playerId   = SteamDSConfig.clientConnectionInfo[connection.ConnectionId].m_SteamID.ToString();
            IPlayer player     = Covalence.PlayerManager.FindPlayerById(playerId);
            string  playerName = !string.IsNullOrEmpty(player?.Name) ? player.Name : "Unnamed"; // TODO: Localization

            // Update name and groups with permissions
            if (permission.IsLoaded)
            {
                permission.UpdateNickname(playerId, playerName);
                OxideConfig.DefaultGroups defaultGroups = Interface.Oxide.Config.Options.DefaultGroups;
                if (!permission.UserHasGroup(playerId, defaultGroups.Players))
                {
                    permission.AddUserGroup(playerId, defaultGroups.Players);
                }
                if (connection.IsDedicatedServerAdmin() && !permission.UserHasGroup(playerId, defaultGroups.Administrators))
                {
                    permission.AddUserGroup(playerId, defaultGroups.Administrators);
                }
            }

            if (player != null)
            {
                // Call hooks for plugins
                Interface.Call("OnPlayerConnected", connection);
                Interface.Call("OnUserConnected", player);
            }
        }
示例#4
0
        private void OnPlayerConnected(PlayerSession session)
        {
            if (session == null)
            {
                return;
            }

            // Update player's permissions group and name
            if (permission.IsLoaded)
            {
                string id = session.SteamId.ToString();
                permission.UpdateNickname(id, session.Identity.Name);
                OxideConfig.DefaultGroups defaultGroups = Interface.Oxide.Config.Options.DefaultGroups;
                if (!permission.UserHasGroup(id, defaultGroups.Players))
                {
                    permission.AddUserGroup(id, defaultGroups.Players);
                }

                if (session.IsAdmin && !permission.UserHasGroup(id, defaultGroups.Administrators))
                {
                    permission.AddUserGroup(id, defaultGroups.Administrators);
                }
            }

            // Let covalence know
            Covalence.PlayerManager.PlayerConnected(session);
            IPlayer iplayer = Covalence.PlayerManager.FindPlayerById(session.SteamId.ToString());

            if (iplayer != null)
            {
                session.IPlayer = iplayer;
                Interface.CallHook("OnUserConnected", session.IPlayer);
            }
        }
        private void IOnPlayerConnected(Player rokPlayer)
        {
            // Ignore the server player
            if (rokPlayer.Id == 9999999999)
            {
                return;
            }

            string playerId = rokPlayer.Id.ToString();

            // Update name and groups with permissions
            if (permission.IsLoaded)
            {
                permission.UpdateNickname(playerId, rokPlayer.Name);
                OxideConfig.DefaultGroups defaultGroups = Interface.Oxide.Config.Options.DefaultGroups;
                if (!permission.UserHasGroup(playerId, defaultGroups.Players))
                {
                    permission.AddUserGroup(playerId, defaultGroups.Players);
                }
                if (rokPlayer.HasPermission("admin") && !permission.UserHasGroup(playerId, defaultGroups.Administrators))
                {
                    permission.AddUserGroup(playerId, defaultGroups.Administrators);
                }
            }

            // Let covalence know
            Covalence.PlayerManager.PlayerConnected(rokPlayer);

            // Find covalence player
            IPlayer player = Covalence.PlayerManager.FindPlayerById(playerId);

            if (player != null)
            {
                rokPlayer.IPlayer = player;

                // Ignore the server player
                if (rokPlayer.Id != 9999999999)
                {
                    // Call hooks for plugins
                    Interface.Call("OnPlayerConnected", rokPlayer);
                    Interface.Call("OnUserConnected", player);
                }
            }
        }
示例#6
0
        private object IOnUserApprove(Connection connection)
        {
            string name      = connection.username;
            string id        = connection.userid.ToString();
            string ip        = Regex.Replace(connection.ipaddress, ipPattern, "");
            uint   authLevel = connection.authLevel;

            // Update player's permissions group and name
            if (permission.IsLoaded)
            {
                permission.UpdateNickname(id, name);

                OxideConfig.DefaultGroups defaultGroups = Interface.Oxide.Config.Options.DefaultGroups;

                if (!permission.UserHasGroup(id, defaultGroups.Players))
                {
                    permission.AddUserGroup(id, defaultGroups.Players);
                }

                if (authLevel == 2 && !permission.UserHasGroup(id, defaultGroups.Administrators))
                {
                    permission.AddUserGroup(id, defaultGroups.Administrators);
                }
            }

            Covalence.PlayerManager.PlayerJoin(connection.userid, name); // TODO: Handle this automatically

            object loginSpecific  = Interface.CallHook("CanClientLogin", connection);
            object loginCovalence = Interface.CallHook("CanUserLogin", name, id, ip);
            object canLogin       = loginSpecific ?? loginCovalence; // TODO: Fix hook conflict when multiple return

            if (canLogin is string || canLogin is bool && !(bool)canLogin)
            {
                ConnectionAuth.Reject(connection, canLogin is string?canLogin.ToString() : lang.GetMessage("ConnectionRejected", this, id));
                return(true);
            }

            // Call game and covalence hooks
            object approvedSpecific  = Interface.CallHook("OnUserApprove", connection);
            object approvedCovalence = Interface.CallHook("OnUserApproved", name, id, ip);

            return(approvedSpecific ?? approvedCovalence); // TODO: Fix hook conflict when multiple return
        }
示例#7
0
        private void OnPlayerConnected(PlayerSession session)
        {
            if (session == null)
            {
                return;
            }

            string playerId = session.SteamId.ToString();

            // Update name and groups with permissions
            if (permission.IsLoaded)
            {
                permission.UpdateNickname(playerId, session.Identity.Name);
                OxideConfig.DefaultGroups defaultGroups = Interface.Oxide.Config.Options.DefaultGroups;
                if (!permission.UserHasGroup(playerId, defaultGroups.Players))
                {
                    permission.AddUserGroup(playerId, defaultGroups.Players);
                }
                if (session.IsAdmin && !permission.UserHasGroup(playerId, defaultGroups.Administrators))
                {
                    permission.AddUserGroup(playerId, defaultGroups.Administrators);
                }
            }

            // Let covalence know
            Covalence.PlayerManager.PlayerConnected(session);

            IPlayer player = Covalence.PlayerManager.FindPlayerById(session.SteamId.ToString());

            if (player != null)
            {
                // Set default language for player if not set
                if (string.IsNullOrEmpty(lang.GetLanguage(playerId)))
                {
                    lang.SetLanguage(player.Language.TwoLetterISOLanguageName, playerId);
                }

                session.IPlayer = player;

                // Call hooks for plugins
                Interface.CallHook("OnUserConnected", session.IPlayer);
            }
        }
示例#8
0
        private object IOnUserApprove(Connection connection)
        {
            string playerName   = connection.username;
            string connectionId = connection.userid.ToString();
            string connectionIp = Regex.Replace(connection.ipaddress, ipPattern, "");
            uint   authLevel    = connection.authLevel;

            // Update name and groups with permissions
            if (permission.IsLoaded)
            {
                permission.UpdateNickname(connectionId, playerName);
                OxideConfig.DefaultGroups defaultGroups = Interface.Oxide.Config.Options.DefaultGroups;
                if (!permission.UserHasGroup(connectionId, defaultGroups.Players))
                {
                    permission.AddUserGroup(connectionId, defaultGroups.Players);
                }
                if (authLevel == 2 && !permission.UserHasGroup(connectionId, defaultGroups.Administrators))
                {
                    permission.AddUserGroup(connectionId, defaultGroups.Administrators);
                }
            }

            // Let covalence know
            Covalence.PlayerManager.PlayerJoin(connection.userid, playerName);

            // Call hooks for plugins
            object loginSpecific  = Interface.CallHook("CanClientLogin", connection);
            object loginCovalence = Interface.CallHook("CanUserLogin", playerName, connectionId, connectionIp);
            object canLogin       = loginSpecific is null ? loginCovalence : loginSpecific;

            if (canLogin is string || canLogin is bool loginBlocked && !loginBlocked)
            {
                ConnectionAuth.Reject(connection, canLogin is string?canLogin.ToString() : lang.GetMessage("ConnectionRejected", this, connectionId));
                return(true);
            }

            // Call hooks for plugins
            object approvedSpecific  = Interface.CallHook("OnUserApprove", connection);
            object approvedCovalence = Interface.CallHook("OnUserApproved", playerName, connectionId, connectionIp);

            return(approvedSpecific is null ? approvedCovalence : approvedSpecific);
        }
        private void IOnPlayerConnected(Player player)
        {
            // Ignore the server player
            if (player.Id == 9999999999)
            {
                return;
            }

            // Update player's permissions group and name
            if (permission.IsLoaded)
            {
                string id = player.Id.ToString();
                permission.UpdateNickname(id, player.Name);
                OxideConfig.DefaultGroups defaultGroups = Interface.Oxide.Config.Options.DefaultGroups;
                if (!permission.UserHasGroup(id, defaultGroups.Players))
                {
                    permission.AddUserGroup(id, defaultGroups.Players);
                }

                if (player.HasPermission("admin") && !permission.UserHasGroup(id, defaultGroups.Administrators))
                {
                    permission.AddUserGroup(id, defaultGroups.Administrators);
                }
            }

            // Call game-specific hook
            Interface.Call("OnPlayerConnected", player);

            // Let covalence know player connected
            Covalence.PlayerManager.PlayerConnected(player);

            // Find covalence player
            IPlayer iplayer = Covalence.PlayerManager.FindPlayerById(player.Id.ToString());

            if (iplayer != null)
            {
                player.IPlayer = iplayer;

                // Call universal hook
                Interface.Call("OnUserConnected", iplayer);
            }
        }