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; }
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..."); } }
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); } }
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); } }
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); }
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); } }
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); }
private void AboutPointsCommand(SqlTwitchUser speaker, string message) { room.SendWhisper(speaker, room.pointManager.GetAboutPoints()); }
static void Observe(TwitchChatRoom room, SqlTwitchUser speaker, string message) { foreach(var observer in observers) { observer(room, speaker, message); } }
public TwitchChatMessage(SqlTwitchChannel channel, SqlTwitchUser speaker, string message) : base(channel) { this.speaker = speaker; this.message = message?.Trim(); }
internal void SendWhisper(SqlTwitchUser speakee, string message) { SendIrcMessage("PRIVMSG #jtv :/w " + speakee.userName + " " + message); }
public void SendWhisper(SqlTwitchUser speakee, string message) { whisperIrcConnection.SendWhisper(speakee, message); }
public TwitchUserPointManager(SqlTwitchChannel channel, SqlTwitchUser user) { sqlPoints = new SqlTwitchUserPoints(user, channel); }
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; } }
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."); } } } } }
public TwitchChatWhisper(SqlTwitchUser speaker, string message) { this.speaker = speaker; this.message = message; }