コード例 #1
0
 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();
             }
     }
 }