Inheritance: SqlRow, TwitchUser
Esempio n. 1
0
 private void GetVote(SqlTwitchUser speaker, string additionalText)
 {
     uint pollNumber;
     if(uint.TryParse(additionalText, out pollNumber)) {
         string pollResults = Strawpoll.Strawpoll.GetWinner(pollNumber);
         room.SendChatMessage(pollResults);
     } else {
         room.SendWhisper(speaker, "Sorry, I didn't catch that poll number... try again - !getvote 123");
     }
 }
        public TwitchUserPointManager ForUser(SqlTwitchUser user)
        {
            TwitchUserPointManager manager;
            if(!userManagers.TryGetValue(user, out manager)) {
                manager = new TwitchUserPointManager(channel, user);
                userManagers.Add(user, manager);
            }

            return manager;
        }
Esempio n. 3
0
 private void BragCommand(SqlTwitchUser speaker, string message)
 {
     TwitchUserPointManager yourPoints = room.pointManager.ForUser(speaker);
     if(yourPoints.AvailablePoints >= 50) {
         yourPoints.Award(0, -50);
         string chatMessage = speaker.name + " has " + room.pointManager.ToPointsString(yourPoints.AvailablePoints);
         room.SendChatMessage(chatMessage);
     } else {
         room.SendWhisper(speaker, "You can't afford a brag...");
     }
 }
Esempio n. 4
0
        private void LeaderboardCommand(SqlTwitchUser speaker, string message)
        {
            SqlTwitchUserPoints[] leadersPoints = SqlTwitchUserPoints.GetTopUsersForChannel(room.twitchConnection.channel, 5);
            if(leadersPoints != null) {
                string chatMessage = "";
                foreach(var points in leadersPoints) {
                    chatMessage += points.user.name + " has " + room.pointManager.ToPointsString(points.points, true) + "  ";
                }

                room.SendChatMessage(chatMessage);
            }
        }
Esempio n. 5
0
 public TwitchUser GetUserFromName(string username)
 {
     try {
         var user = SqlTwitchUser.FromName(username);
         if (user != null)
         {
             return(user);
         }
         else
         {
             return(twitchApi.GetUser(username));
         }
     } catch (Exception e) {
         Log.error("Twitch get user from name", e);
         return(null);
     }
 }
Esempio n. 6
0
        void ListCommands(SqlTwitchUser speaker, string additionalText)
        {
            var commands = ChatCommand.ForRoom(room);

            string chatMessage = "";
            if(commands != null) {
                foreach(var command in commands) {
                    if(!command.modOnly) {
                        if(chatMessage.Length > 0) {
                            chatMessage += ", ";
                        }
                        chatMessage += command.commandName;
                    }
                }
            }

            room.SendWhisper(speaker, chatMessage);
        }
Esempio n. 7
0
        public static SqlTwitchUser[] GetAll()
        {
            List <object[]> results = _table.Select(null, null, null, null, null, 0);

            if (results != null)
            {
                SqlTwitchUser[] users = new SqlTwitchUser[results.Count];
                for (int i = 0; i < results.Count; i++)
                {
                    users[i] = new SqlTwitchUser(results[i][0].FromSql <uint>(), results[i][1].FromSql <string>(), results[i][2].FromSql <DateTime>(),
                                                 results[i][3].FromSql <string>(), results[i][4].FromSql <string>());
                }

                return(users);
            }
            else
            {
                return(null);
            }
        }
Esempio n. 8
0
        private void PointCommand(SqlTwitchUser speaker, string message)
        {
            string otherUserName = message.GetBefore(" ");
            if(otherUserName == null) {
                otherUserName = message;
            }
            otherUserName = otherUserName?.Trim().ToLower();
            SqlTwitchUser otherUser = SqlTwitchUser.GetFromName(otherUserName);

            TwitchUserPointManager yourPoints = room.pointManager.ForUser(speaker);
            string chatMessage = "You have ";
            chatMessage += room.pointManager.ToPointsString(yourPoints.AvailablePoints);

            if(otherUser != null && !otherUser.id.Equals(speaker.id)) {
                TwitchUserPointManager otherPoints = room.pointManager.ForUser(otherUser);

                chatMessage += " & " + otherUser.name + " has " + room.pointManager.ToPointsString(otherPoints.AvailablePoints);
            }

            room.SendWhisper(speaker, chatMessage);
        }
Esempio n. 9
0
 private void AboutPointsCommand(SqlTwitchUser speaker, string message)
 {
     room.SendWhisper(speaker, room.pointManager.GetAboutPoints());
 }
Esempio n. 10
0
 static void Observe(TwitchChatRoom room, SqlTwitchUser speaker, string message)
 {
     foreach(var observer in observers) {
         observer(room, speaker, message);
     }
 }
Esempio n. 11
0
 public TwitchChatMessage(SqlTwitchChannel channel, SqlTwitchUser speaker, string message)
     : base(channel)
 {
     this.speaker = speaker;
     this.message = message?.Trim();
 }
Esempio n. 12
0
 internal void SendWhisper(SqlTwitchUser speakee, string message)
 {
     SendIrcMessage("PRIVMSG #jtv :/w " + speakee.userName + " " + message);
 }
Esempio n. 13
0
 public void SendWhisper(SqlTwitchUser speakee, string message)
 {
     whisperIrcConnection.SendWhisper(speakee, message);
 }
 public TwitchUserPointManager(SqlTwitchChannel channel, SqlTwitchUser user)
 {
     sqlPoints = new SqlTwitchUserPoints(user, channel);
 }
Esempio n. 15
0
        public static SqlTwitchUser[] GetAll()
        {
            List<object[]> results = _table.Select(null, null, null, null, null, 0);
            if(results != null) {
                SqlTwitchUser[] users = new SqlTwitchUser[results.Count];
                for(int i = 0; i < results.Count; i++) {
                    users[i] = new SqlTwitchUser(results[i][0].FromSql<uint>(), results[i][1].FromSql<string>(), results[i][2].FromSql<DateTime>(),
                        results[i][3].FromSql<string>(), results[i][4].FromSql<string>());
                }

                return users;
            } else {
                return null;
            }
        }
Esempio n. 16
0
        internal override void ObserveCommand(SqlTwitchUser speaker, string message)
        {
            if(enabled) {
                message = message?.Trim();
                string reqestedCommandName = message?.GetBefore(" ");
                if(reqestedCommandName == null) {
                    reqestedCommandName = message;
                }

                if(reqestedCommandName != null) {
                    bool match = reqestedCommandName.Equals(commandName, StringComparison.CurrentCultureIgnoreCase);
                    if(!match) {
                        if(aliases != null) {
                            foreach(var alias in aliases) {
                                if(reqestedCommandName.Equals(alias, StringComparison.CurrentCultureIgnoreCase)) {
                                    match = true;
                                    break;
                                }
                            }
                        }
                    }

                    if(match) {
                        if(!modOnly || speaker.id.Equals(room.twitchConnection.channel.user.id)) {
                            ulong id = 0;
                            if(throttlePerUser) {
                                id = speaker.id;
                            }
                            if(throttle == null || throttle.ExecuteIfReady(id)) {
                                string additionalText = message.GetAfter(" ")?.Trim();
                                action(speaker, additionalText);
                            } else {
                                room.SendWhisper(speaker, "Too soon... wait at least " + throttle.TimeRemaining(id).ToSimpleString() + " before running !" + commandName + " again.");
                            }
                        } else {
                            room.SendWhisper(speaker, "Sorry, !" + commandName + " is for mods only.");
                        }
                    }
                }
            }
        }
Esempio n. 17
0
 public TwitchChatWhisper(SqlTwitchUser speaker, string message)
 {
     this.speaker = speaker;
     this.message = message;
 }