Ejemplo n.º 1
0
 public static IEnumerable <ServerUsers.User> GetAll(ServerUsers.UserGroup group)
 {
     return
         (from x in ServerUsers.users
          where x.Value.@group == group
          select x.Value);
 }
Ejemplo n.º 2
0
 public static bool Is(ulong uid, ServerUsers.UserGroup group)
 {
     ServerUsers.User user = ServerUsers.Get(uid);
     if (user == null)
     {
         return(false);
     }
     return(user.group == group);
 }
Ejemplo n.º 3
0
 private void IOnServerUsersSet(ulong steamId, ServerUsers.UserGroup group, string playerName, string reason, long expiry)
 {
     if (serverInitialized && group == ServerUsers.UserGroup.Banned)
     {
         string  playerId = steamId.ToString();
         IPlayer player   = Covalence.PlayerManager.FindPlayerById(playerId);
         Interface.CallHook("OnPlayerBanned", playerName, steamId, player?.Address ?? "0", reason, expiry);
         Interface.CallHook("OnUserBanned", playerName, playerId, player?.Address ?? "0", reason, expiry);
     }
 }
Ejemplo n.º 4
0
 private void IOnServerUsersSet(ulong steamId, ServerUsers.UserGroup group, string name, string reason)
 {
     if (serverInitialized)
     {
         string  id      = steamId.ToString();
         IPlayer iplayer = Covalence.PlayerManager.FindPlayerById(id);
         if (group == ServerUsers.UserGroup.Banned)
         {
             Interface.CallHook("OnPlayerBanned", name, steamId, iplayer?.Address ?? "0", reason);
             Interface.CallHook("OnUserBanned", name, id, iplayer?.Address ?? "0", reason);
         }
     }
 }
Ejemplo n.º 5
0
 public static void Set(ulong uid, ServerUsers.UserGroup group, string username, string notes)
 {
     ServerUsers.Remove(uid);
     ServerUsers.User user = new ServerUsers.User()
     {
         steamid  = uid,
         group    = group,
         username = username,
         notes    = notes
     };
     Interface.CallHook("IOnServerUsersSet", (object)uid, (object)group, (object)username, (object)notes);
     ServerUsers.users.Add(uid, user);
 }
Ejemplo n.º 6
0
        private void IOnServerUsersSet(ulong id, ServerUsers.UserGroup group, string name, string reason)
        {
            if (!serverInitialized)
            {
                return;
            }

            var iplayer = Covalence.PlayerManager.FindPlayerById(id.ToString());

            if (group == ServerUsers.UserGroup.Banned)
            {
                Interface.Oxide.CallHook("OnUserBanned", name, id.ToString(), iplayer?.Address ?? "0", reason);
            }
        }
Ejemplo n.º 7
0
 //Hook Load (Load from DB instead of File)
 void OnServerLoadUsers()
 {
     //NOW DO YOUR LOAD STUFF HERE
     LoadingServerUsers = true;
     foreach (var row in banDB.Query($"SELECT * FROM {TableName}"))
     {
         //https://stackoverflow.com/questions/11226448/invalidcastexception-long-to-ulong
         //Never knew you had to cast to long then ulong in a specific situation
         ulong steamID = (ulong)((long)row.Value["steamid"]);
         ServerUsers.UserGroup group = (ServerUsers.UserGroup)row.Value.GetInt("usergroup");
         string name   = row.Value.GetString("username") ?? "";
         string reason = row.Value.GetString("notes") ?? "";
         ServerUsers.Set(steamID, group, name, reason);
     }
     LoadingServerUsers = false;
 }
Ejemplo n.º 8
0
        internal static bool sayAs(ChatChannel targetChannel, ulong userId, string username, string message, BasePlayer player = null)
        {
            if (!player)
            {
                player = null;
            }
            if (!enabled)
            {
                return(false);
            }
            if (player != null && player.HasPlayerFlag(BasePlayer.PlayerFlags.ChatMute))
            {
                return(false);
            }
            ServerUsers.UserGroup userGroup = ServerUsers.Get(userId)?.group ?? ServerUsers.UserGroup.None;
            if (userGroup == ServerUsers.UserGroup.Banned)
            {
                return(false);
            }
            string text = message.Replace("\n", "").Replace("\r", "").Trim();

            if (text.Length > 128)
            {
                text = text.Substring(0, 128);
            }
            if (text.Length <= 0)
            {
                return(false);
            }
            if (text.StartsWith("/") || text.StartsWith("\\"))
            {
                Interface.CallHook("IOnPlayerCommand", player, message);
                return(false);
            }
            text = text.EscapeRichText();
            object obj = Interface.CallHook("IOnPlayerChat", userId, username, text, targetChannel, player);

            if (obj is bool)
            {
                return((bool)obj);
            }
            if (serverlog)
            {
                ServerConsole.PrintColoured(ConsoleColor.DarkYellow, string.Concat("[", targetChannel, "] ", username, ": "), ConsoleColor.DarkGreen, text);
                string text2 = player?.ToString() ?? $"{username}[{userId}]";
                switch (targetChannel)
                {
                case ChatChannel.Team:
                    DebugEx.Log("[TEAM CHAT] " + text2 + " : " + text);
                    break;

                case ChatChannel.Cards:
                    DebugEx.Log("[CARDS CHAT] " + text2 + " : " + text);
                    break;

                default:
                    DebugEx.Log("[CHAT] " + text2 + " : " + text);
                    break;
                }
            }
            bool   flag  = userGroup == ServerUsers.UserGroup.Owner || userGroup == ServerUsers.UserGroup.Moderator;
            bool   num   = ((player != null) ? player.IsDeveloper : DeveloperList.Contains(userId));
            string text3 = "#5af";

            if (flag)
            {
                text3 = "#af5";
            }
            if (num)
            {
                text3 = "#fa5";
            }
            string    text4     = username.EscapeRichText();
            ChatEntry chatEntry = default(ChatEntry);

            chatEntry.Channel  = targetChannel;
            chatEntry.Message  = text;
            chatEntry.UserId   = ((player != null) ? player.UserIDString : userId.ToString());
            chatEntry.Username = username;
            chatEntry.Color    = text3;
            chatEntry.Time     = Epoch.Current;
            ChatEntry chatEntry2 = chatEntry;

            History.Add(chatEntry2);
            RCon.Broadcast(RCon.LogType.Chat, chatEntry2);
            switch (targetChannel)
            {
            case ChatChannel.Cards:
            {
                if (player == null)
                {
                    return(false);
                }
                if (!player.isMounted)
                {
                    return(false);
                }
                CardTable cardTable = player.GetMountedVehicle() as CardTable;
                if (cardTable == null || !cardTable.GameController.PlayerIsInGame(player))
                {
                    return(false);
                }
                List <Network.Connection> obj2 = Facepunch.Pool.GetList <Network.Connection>();
                cardTable.GameController.GetConnectionsInGame(obj2);
                if (obj2.Count > 0)
                {
                    ConsoleNetwork.SendClientCommand(obj2, "chat.add2", 3, userId, text, text4, text3, 1f);
                }
                Facepunch.Pool.FreeList(ref obj2);
                return(true);
            }

            case ChatChannel.Global:
                if (Server.globalchat)
                {
                    ConsoleNetwork.BroadcastToAllClients("chat.add2", 0, userId, text, text4, text3, 1f);
                    return(true);
                }
                break;

            case ChatChannel.Team:
            {
                RelationshipManager.PlayerTeam playerTeam = RelationshipManager.ServerInstance.FindPlayersTeam(userId);
                if (playerTeam == null)
                {
                    return(false);
                }
                List <Network.Connection> onlineMemberConnections = playerTeam.GetOnlineMemberConnections();
                if (onlineMemberConnections != null)
                {
                    ConsoleNetwork.SendClientCommand(onlineMemberConnections, "chat.add2", 1, userId, text, text4, text3, 1f);
                }
                Util.BroadcastTeamChat(playerTeam, userId, text4, text, text3);
                return(true);
            }
            }
            if (player != null)
            {
                float num2 = 2500f;
                foreach (BasePlayer activePlayer in BasePlayer.activePlayerList)
                {
                    float sqrMagnitude = (activePlayer.transform.position - player.transform.position).sqrMagnitude;
                    if (!(sqrMagnitude > num2))
                    {
                        ConsoleNetwork.SendClientCommand(activePlayer.net.connection, "chat.add2", 0, userId, text, text4, text3, Mathf.Clamp01(num2 - sqrMagnitude + 0.2f));
                    }
                }
                return(true);
            }
            return(false);
        }
Ejemplo n.º 9
0
 void UpdateUserGroup(ulong steamId, ServerUsers.UserGroup group, string name, string notes)
 {
     banDB.Execute($"INSERT OR REPLACE INTO {TableName} ( steamid, usergroup, username, notes ) VALUES ( ?, ?, ?, ? )", (long)steamId, (int)group, name ?? "", notes ?? "");
 }
Ejemplo n.º 10
0
 public static IEnumerable <ServerUsers.User> GetAll(
     ServerUsers.UserGroup group)
 {
     return(ServerUsers.users.Where <KeyValuePair <ulong, ServerUsers.User> >((Func <KeyValuePair <ulong, ServerUsers.User>, bool>)(x => x.Value.group == group)).Select <KeyValuePair <ulong, ServerUsers.User>, ServerUsers.User>((Func <KeyValuePair <ulong, ServerUsers.User>, ServerUsers.User>)(x => x.Value)));
 }