Наследование: CountedInstance
 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();
         }
     }
 }
Пример #2
0
        // chat.say()
        public static void Chat(ConsoleSystem.Arg arg)
        {
            if (arg.ArgsStr.StartsWith("\"/") && !arg.ArgsStr.StartsWith("\"/ ")) {
                Command(arg);
                return;
            }

            if (!ConVar.Chat.enabled) {
                arg.ReplyWith("Chat is disabled.");
            } else {
                if (arg.ArgsStr == "\"\"") {
                    return;
                }

                BasePlayer basePlayer = arg.Player();
                if (!basePlayer) {
                    return;
                }

                ChatEvent pChat = new ChatEvent(Server.GetPlayer(basePlayer), arg);

                string str = arg.GetString(0, "text");

                if (str.Length > 128)
                    str = str.Substring(0, 128);

                if (str.Length <= 0)
                    return;

                if (ConVar.Chat.serverlog) {
                    ServerConsole.PrintColoured(new object[] {
                        ConsoleColor.DarkYellow,
                        basePlayer.displayName + ": ",
                        ConsoleColor.DarkGreen,
                        str
                    });
                    ConVar.Server.Log("Log.Chat.txt", string.Format("{0}/{1}: {2}\r\n", basePlayer.userID, basePlayer.displayName, str));
                    Debug.Log(string.Format("[CHAT] {0}: {1}", basePlayer.displayName, str));
                }

                string arg2 = "#5af";
                if (basePlayer.IsAdmin()) {
                    arg2 = "#af5";
                }

                if (DeveloperList.IsDeveloper(basePlayer)) {
                    arg2 = "#fa5";
                }

                OnChat.OnNext(pChat);

                string text2 = string.Format("<color={2}>{0}</color>: {1}", basePlayer.displayName.Replace('<', '[').Replace('>', ']'), pChat.FinalText, arg2);

                if (pChat.FinalText != "") {
                    Logger.ChatLog(pChat.BroadcastName, pChat.OriginalText);
                    arg.ReplyWith(pChat.Reply);

                    if (ConVar.Server.globalchat) {
                        ConsoleSystem.Broadcast("chat.add", basePlayer.userID, text2, 1);
                    } else {
                        float num = 2500;
                        foreach (Connection current in Net.sv.connections) {
                            if (current.player != null) {
                                float sqrMagnitude = (current.player.transform.position - basePlayer.transform.position).sqrMagnitude;
                                if (sqrMagnitude <= num) {
                                    ConsoleSystem.SendClientCommand(current, "chat.add", basePlayer.userID, text2, Mathf.Clamp01(num - sqrMagnitude + 0.2f));
                                }
                            }
                        }
                    }
                }
            }
        }