public static void Init() { Client.EventMessageReceived += Client_EventMessageReceived; // Client.ClientLevelStarted += Client_ClientLevelStarted; Client.ClientJoinedRoom += Client_ClientJoinedRoom; MultiMain.Log("initializing"); }
private static void Client_EventMessageReceived(string header, string data) { MultiMain.Log("Message Recieved: " + header + " : " + data); if (header != "GMP") { return; } if (otherGmpPlayer) { if (data.Contains("!gmm")) { string command = data.ToLower(); MultiMain.multiCommands.CheckHealthCommands(command); MultiMain.multiCommands.CheckSizeCommands(command); MultiMain.multiCommands.CheckGameplayCommands(command); MultiMain.multiCommands.CheckSpeedCommands(command); } } else { if (data == "HasPlugin" + version) { if (!GMPUI.AllowMulti) { return; } if (spectating) { return; } otherGmpPlayer = true; if (playerName == "") { playerName = Client.instance.playerInfo.playerName; } Client.instance.playerInfo.playerName += " (GMP)"; Client.disableScoreSubmission = true; } else if (data.Contains("HavePlugin?")) { if (!GMPUI.AllowMulti) { return; } if (spectating) { return; } Client.instance.SendEventMessage("GMP", "HasPlugin" + version); } } if (otherGmpPlayer && !initialized) { MultiMain.Activate(); initialized = true; } }
public void CheckGameplayCommands(String message) { if (message.Contains("!gmm da") && message.Contains(MultiClientInterface.version) && !Plugin.cooldowns.GetCooldown("DA")) { MultiMain.Log("Trying DA"); // Plugin.beepSound.Play(); MultiMain.Powers.StartCoroutine(MultiPowers.TempDA(MultiMain.Config.daDuration)); MultiMain.Powers.StartCoroutine(MultiPowers.CoolDown(MultiMain.Config.daCooldown, "DA", "DA Active.")); Plugin.commandsLeftForMessage -= 1; globalActive = true; } if (message.Contains("!gmm njsrandom") && message.Contains(MultiClientInterface.version) && !Plugin.cooldowns.GetCooldown("RandomNJS")) { // Plugin.beepSound.Play(); MultiMain.Powers.StartCoroutine(MultiPowers.NjsRandom(MultiMain.Config.njsRandomDuration)); MultiMain.Powers.StartCoroutine(MultiPowers.CoolDown(MultiMain.Config.njsRandomCooldown, "NJSRandom", "Random Note Jump Speed Active.")); Plugin.commandsLeftForMessage -= 1; globalActive = true; } if (message.Contains("!gmm noarrows") && message.Contains(MultiClientInterface.version) && !Plugin.cooldowns.GetCooldown("NoArrows")) { // Plugin.beepSound.Play(); MultiMain.Powers.StartCoroutine(MultiPowers.TempNoArrows(MultiMain.Config.noArrowsDuration)); MultiMain.Powers.StartCoroutine(MultiPowers.CoolDown(MultiMain.Config.noArrowsCooldown, "NoArrows", "Temporary No Arrows Activated")); Plugin.commandsLeftForMessage -= 1; globalActive = true; } if (message.Contains("!gmm funky") && message.Contains(MultiClientInterface.version) && !Plugin.cooldowns.GetCooldown("Funky")) { // Plugin.beepSound.Play(); MultiMain.Powers.StartCoroutine(MultiPowers.Funky(MultiMain.Config.funkyDuration)); MultiMain.Powers.StartCoroutine(MultiPowers.CoolDown(MultiMain.Config.funkyCooldown, "Funky", "Funky Mode Activated")); Plugin.commandsLeftForMessage -= 1; globalActive = true; } if (message.Contains("!gmm rainbow") && message.Contains(MultiClientInterface.version) && !Plugin.cooldowns.GetCooldown("Rainbow")) { // Plugin.beepSound.Play(); MultiMain.Powers.StartCoroutine(MultiPowers.Rainbow(MultiMain.Config.rainbowDuration)); MultiMain.Powers.StartCoroutine(MultiPowers.CoolDown(MultiMain.Config.rainbowCooldown, "Rainbow", "Rainbow Activated")); Plugin.commandsLeftForMessage -= 1; globalActive = true; } if (message.Contains("!gmm bombs") && message.Contains(MultiClientInterface.version) && !Plugin.cooldowns.GetCooldown("Bombs") && MultiMain.Config.bombChance > 0) { // Plugin.beepSound.Play(); MultiMain.Powers.StartCoroutine(MultiPowers.RandomBombs(MultiMain.Config.bombDuration)); MultiMain.Powers.StartCoroutine(MultiPowers.CoolDown(MultiMain.Config.bombCooldown, "Bombs", "Sneaking Bombs into the map.")); Plugin.commandsLeftForMessage -= 1; globalActive = true; } }
public static void Client_ClientLevelStarted() { MultiMain.Log("Multiplayer Level Started"); Client.disableScoreSubmission = false; if (!GMPUI.AllowMulti) { return; } if (spectating) { return; } SharedCoroutineStarter.instance.StartCoroutine(DelayedSendPluginCheck()); // Client_EventMessageReceived("GMP", "HasPlugin" + version); }
private static void Client_ClientJoinedRoom() { MultiMain.Log("Joined Room, Logging spectator setting"); spectating = BeatSaberMultiplayer.Config.Instance.SpectatorMode; }
public static void SendCommand(string command) { MultiMain.Log("Sending Command: " + command + version); Client.Instance.SendEventMessage("GMP", command + version); }