public static bool IsModerator(string user) { if (Viewers.GetViewer(user).mod) { return(true); } if (ToolkitSettings.ViewerModerators == null) { return(false); } return(ToolkitSettings.ViewerModerators.ContainsKey(user)); }
public string FilterTags(ITwitchMessage twitchMessage, string input) { Helper.Log("starting filter"); Viewer viewer = Viewers.GetViewer(twitchMessage.Username); StringBuilder output = new StringBuilder(input); output.Replace("{username}", viewer.username); output.Replace("{balance}", viewer.GetViewerCoins().ToString()); output.Replace("{karma}", viewer.GetViewerKarma().ToString()); output.Replace("{purchaselist}", ToolkitSettings.CustomPricingSheetLink); output.Replace("{coin-reward}", ToolkitSettings.CoinAmount.ToString()); output.Replace("\n", ""); Helper.Log("starting regex"); Regex regex = new Regex(@"\[(.*?)\]"); MatchCollection matches = regex.Matches(output.ToString()); foreach (Match match in matches) { Helper.Log("found match " + match.Value); string code = match.Value; code = code.Replace("[", ""); code = code.Replace("]", ""); //Regex doubleReg = new Regex("double\\<(.*?)\\>"); //foreach (Match innerMatch in doubleReg.Matches(match.Value.ToString())) //{ // Helper.Log("found match " + innerMatch.Value); // string innerCode = innerMatch.Value; // innerCode = innerCode.Replace("double<", ""); // innerCode = innerCode.Replace(">", ""); // Helper.Log("executing double " + innerCode); // output.Replace(innerMatch.Value, MoonSharpDouble(code).ToString()); //} // Helper.Log("finished inner code"); output.Replace(match.Value, MoonSharpString(code)); } return(output.ToString()); }
public static void GiveAllViewersKarma(int amount) { List <string> usernames = ParseViewersFromJson(); if (usernames != null) { foreach (string username in usernames) { Viewer viewer = Viewers.GetViewer(username); if (viewer != null && viewer.GetViewerKarma() > 1) { viewer.SetViewerKarma(Math.Min(ToolkitSettings.KarmaCap, viewer.GetViewerKarma() + amount)); } } } }
public static void GiveAllViewersCoins(int amount) { List <string> usernames = ParseViewersFromJson(); if (usernames != null) { foreach (string username in usernames) { Viewer viewer = Viewers.GetViewer(username); if (viewer != null && viewer.GetViewerKarma() > 1) { viewer.GiveViewerCoins(amount); } } } }
public Viewer GetViewer(string username) { return(Viewers.GetViewer(username)); }
public static void CheckCommand(IRCMessage msg) { if (msg == null) { return; } if (msg.Message == null) { return; } string message = msg.Message; string user = msg.User; if (message.Split(' ')[0] == "/w") { List <string> messagewhisper = message.Split(' ').ToList(); messagewhisper.RemoveAt(0); message = string.Join(" ", messagewhisper.ToArray()); Helper.Log(message); } Viewer viewer = Viewers.GetViewer(user); viewer.last_seen = DateTime.Now; if (viewer.IsBanned) { return; } Command commandDef = DefDatabase <Command> .AllDefs.ToList().Find(s => msg.Message.StartsWith("!" + s.command)); if (commandDef != null) { bool runCommand = true; if (commandDef.requiresMod && (!viewer.mod && viewer.username.ToLower() != ToolkitSettings.Channel.ToLower())) { runCommand = false; } if (commandDef.requiresAdmin && msg.User.ToLower() != ToolkitSettings.Channel.ToLower()) { runCommand = false; } if (!commandDef.enabled) { runCommand = false; } if (commandDef.shouldBeInSeparateRoom && !AllowCommand(msg)) { runCommand = false; } if (runCommand) { commandDef.RunCommand(msg); } } List <TwitchInterfaceBase> modExtensions = Current.Game.components.OfType <TwitchInterfaceBase>().ToList(); if (modExtensions == null) { return; } foreach (TwitchInterfaceBase parser in modExtensions) { parser.ParseCommand(msg); } }