public void On_Chat(ChatEvent ce) { if (NoChatSpam && !ce.User.Admin) { if (NoChatSpamIgnoreMod && ce.User.Moderator) { return; } try { var player = ce.User.GameID; var time = Plugin.GetTimestamp(); if (!DataStore.ContainsKey("NoChatSpamMsgCount", player)) { Server.Broadcast("player spam count set to 0"); DataStore.Add("NoChatSpamMsgCount", player, 0); DataStore.Add("NoChatSpamTimeStamp", player, time); } var count = (int)DataStore.Get("NoChatSpamMsgCount", player); var stamp = (float)DataStore.Get("NoChatSpamTimeStamp", player); var cooldown = (int)DataStore.Get("NoChatSpamCooldown", player); DataStore.Add("NoChatSpamMsgCount", player, count + 1); Server.Broadcast("player count + 1"); if (count >= NoChatSpamMaxMessages && stamp + cooldown > time) { ce.Cancel(); ce.User.MessageFrom("NoChatSpam", "Stop spamming chat!"); return; } DataStore.Remove("NoChatSpamMsgCount", player); DataStore.Remove("NoChatSpamTimeStamp", player); } catch (Exception e) { Pluton.Logger.LogException(e); } } if (ce.Arg.ArgsStr.ToLower().Contains("admin")) { ce.User.Message("Contacting an admin."); var test = @"{""data"":{""message"":""{0}""},""to"":""/topics/global""}"; byte[] requestData = Encoding.UTF8.GetBytes(test.Replace("{0}", ce.Arg.ArgsStr)); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://android.googleapis.com/gcm/send"); request.Method = "POST"; request.Headers.Add("Authorization", "key=" + gcmAuth); request.ContentType = "application/json"; using (Stream st = request.GetRequestStream()) st.Write(requestData, 0, requestData.Length); using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) using (StreamReader reader = new StreamReader(response.GetResponseStream())) { reader.ReadToEnd(); } } }