public void CheckStatusCommands(TwitchMessage message) { if (message.user.isBroadcaster || message.user.isMod) { if (message.message.ToLower().Contains("!gm reset")) { Plugin.cooldowns.ResetCooldowns(); TwitchPowers.ResetPowers(true); Plugin.twitchPowers.StopAllCoroutines(); Plugin.charges = ChatConfig.chargesPerLevel; TwitchWebSocketClient.SendMessage("Resetting non Permanent Powers"); } } if (message.message.ToLower().Contains("!gm pp")) { if (Plugin.currentpp != 0) { TwitchWebSocketClient.SendMessage("Streamer Rank: #" + Plugin.currentRank + ". Streamer pp: " + Plugin.currentpp + "pp"); } else { TwitchWebSocketClient.SendMessage("Currently do not have streamer info"); } } if (message.message.ToLower().Contains("!gm status")) { string scopeMessage = ""; int scope = CheckCommandScope(); switch (scope) { case 0: scopeMessage = "Everyone has access to commands"; break; case 1: scopeMessage = "Subscribers have access to commands"; break; case 2: scopeMessage = "Moderators have access to commands"; break; } Plugin.beepSound.Play(); if (GMPUI.chatIntegration) { TwitchWebSocketClient.SendMessage("Chat Integration Enabled. " + scopeMessage); } else { TwitchWebSocketClient.SendMessage("Chat Integration Not Enabled. " + scopeMessage); } } }
/// <summary> /// Sends a message to all connected chat clients /// </summary> /// <param name="message">The message to be sent.</param> public static void SendMessage(string message) { if (YouTubeConnection.initialized && YouTubeLiveBroadcast.currentBroadcast != null) { YouTubeLiveChat.SendMessage(message); } if (TwitchWebSocketClient.Initialized && TwitchWebSocketClient.IsChannelValid) { TwitchWebSocketClient.SendMessage(message); } }
private void SendChatMessage(string message) { try { Plugin.Log($"Sending message: \"{message}\""); TwitchWebSocketClient.SendMessage($"PRIVMSG #{Config.Instance.TwitchChannelName} :{message}"); TwitchMessage tmpMessage = new TwitchMessage(); tmpMessage.user = TwitchWebSocketClient.OurTwitchUser; MessageParser.Parse(new ChatMessage(message, tmpMessage)); } catch (Exception e) { Plugin.Log($"Exception was caught when trying to send bot message. {e.ToString()}"); } }
// if (!silence) QueueChatMessage($"{request.Key.song["songName"].Value}/{request.Key.song["authorName"].Value} ({songId}) added to the blacklist."); private void SendChatMessage(string message) { try { Plugin.Log($"Sending message: \"{message}\""); //TwitchWebSocketClient.SendMessage($"PRIVMSG #{TwitchLoginConfig.Instance.TwitchChannelName} :{message}"); TwitchWebSocketClient.SendMessage(message); TwitchMessage tmpMessage = new TwitchMessage(); tmpMessage.user = TwitchWebSocketClient.OurTwitchUser; //MessageParser.Parse(new ChatMessage(message, tmpMessage)); // This call is obsolete, when sending a message through TwitchWebSocketClient, the message should automatically appear in chat. } catch (Exception e) { Plugin.Log($"Exception was caught when trying to send bot message. {e.ToString()}"); } }
public void CheckChargeMessage(TwitchMessage message) { if (message.bits >= ChatConfig.bitsPerCharge && ChatConfig.bitsPerCharge > 0) { Plugin.charges += (message.bits / ChatConfig.bitsPerCharge); TwitchWebSocketClient.SendMessage("Current Charges: " + Plugin.charges); } if (message.user.displayName.ToLower() == "kyle1413k" && message.message.ToLower().Contains("!charge")) { Plugin.charges += (ChatConfig.chargesForSuperCharge / 2 + 5); TwitchWebSocketClient.SendMessage("Current Charges: " + Plugin.charges); } if (message.message.ToLower().Contains("!gm") && message.message.ToLower().Contains("super")) { Plugin.trySuper = true; } }
public void CheckInfoCommands(TwitchMessage message) { if (message.message.ToLower().Contains("!gm help")) { TwitchWebSocketClient.SendMessage("Guides: For Regular Users - http://bit.ly/1413ChatUser | For Streamers - http://bit.ly/1413Readme | For moderators also view http://bit.ly/1413Config"); } if (message.message.ToLower().Contains("!currentsong")) { if (!Plugin.isValidScene) { TwitchWebSocketClient.SendMessage("No song is currently being played."); } else { TwitchWebSocketClient.SendMessage("Current Song: " + Plugin.levelData.GameplayCoreSceneSetupData.difficultyBeatmap.level.songName + " - " + Plugin.levelData.GameplayCoreSceneSetupData.difficultyBeatmap.level.songSubName + " mapped by " + Plugin.levelData.GameplayCoreSceneSetupData.difficultyBeatmap.level.songAuthorName); } } if (message.message.ToLower().Contains("!gm chargehelp")) { if (ChatConfig.timeForCharges == 0 || ChatConfig.chargesOverTime == 0) { TwitchWebSocketClient.SendMessage("Every " + ChatConfig.bitsPerCharge + " bits sent with a message adds a charge, which are used to activate commands! If you add super at the end of a command, it will cost " + ChatConfig.chargesForSuperCharge + " Charges but will make the effect last much longer! " + ChatConfig.chargesPerLevel + " Charges are generated every song with chat mode on."); } else { TwitchWebSocketClient.SendMessage("Every " + ChatConfig.bitsPerCharge + " bits sent with a message adds a charge, which are used to activate commands! If you add super at the end of a command, it will cost " + ChatConfig.chargesForSuperCharge + " Charges but will make the effect last much longer! " + ChatConfig.chargesPerLevel + " Charges are generated every song with chat mode on. Every " + ChatConfig.timeForCharges + " seconds, " + ChatConfig.chargesOverTime + " are added."); } } if (message.message.ToLower().Contains("!gm commands")) { TwitchWebSocketClient.SendMessage("Currently supported commands | status: Currrent Status of chat integration | charges: view current charges and costs | chargehelp: Explain charge system"); } if (message.message.ToLower().Contains("!gm charges")) { TwitchWebSocketClient.SendMessage("Charges: " + Plugin.charges + " | Commands Per Message: " + ChatConfig.commandsPerMessage + " | " + ChatConfig.GetChargeCostString()); } }
internal static void SendAsyncMessage(string message) { TwitchWebSocketClient.SendMessage(message); }