From 2b32c1203f307905b0b5e646291137c44d067f4a Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期六, 10 十一月 2018 15:06:04 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/Chat/ChatCenter.cs |   80 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 78 insertions(+), 2 deletions(-)

diff --git a/System/Chat/ChatCenter.cs b/System/Chat/ChatCenter.cs
index 619aa9c..38081ee 100644
--- a/System/Chat/ChatCenter.cs
+++ b/System/Chat/ChatCenter.cs
@@ -26,6 +26,14 @@
             WindowCenter.Instance.windowAfterOpenEvent += WindowAfterOpenEvent;
             StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
             PlayerRealmData.OnPlayerCollectEnd += OnPlayerCollectEnd;
+
+            var time = bandTime;
+            banTimeArray[0] = time.Year;
+            banTimeArray[1] = time.Month;
+            banTimeArray[2] = time.Day;
+            banTimeArray[3] = time.Hour;
+            banTimeArray[4] = time.Minute;
+            banTimeArray[5] = time.Second;
         }
 
         public override void UnInit()
@@ -55,6 +63,12 @@
             chatChannels.Add(ChatInfoType.Trumpet);
             chatChannels.Add(ChatInfoType.Fairy);
             chatChannels.Add(ChatInfoType.Friend);
+
+            var config = Config.Instance.Get<FuncConfigConfig>("ClientChatBan");
+            banCheckSecond = int.Parse(config.Numerical1);
+            repeatCountLimit = int.Parse(config.Numerical2);
+            maliceCheckCount = int.Parse(config.Numerical3);
+            maliceLimitCount = int.Parse(config.Numerical4);
         }
 
         public event Action<string, bool, bool> UpdateChatValueEvent;
@@ -307,7 +321,7 @@
         const string downloadUrl = "http://{0}.voice.2460web.com:53001/voice/download";
         private void SendSpeech(byte[] encode, long _tick)
         {
-            if (IsChatBanned)
+            if (IsChatBanned || clientBanned)
             {
                 SaveSpeech((int)PlayerDatas.Instance.PlayerId, _tick, encode);
                 return;
@@ -873,7 +887,7 @@
 
         public void HandleChatBanned(ChatInfoType channel, string message, int toPlayer)
         {
-            if (IsChatBanned)
+            if (IsChatBanned || clientBanned)
             {
                 var playerId = PlayerDatas.Instance.baseData.PlayerID;
                 var playerName = UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName);
@@ -940,6 +954,68 @@
         }
         #endregion
 
+        #region 鑱婂ぉ绂佽█
+        public bool clientBanned
+        {
+            get
+            {
+                var time = new DateTime(banTimeArray[0], banTimeArray[1], banTimeArray[2],
+                    banTimeArray[3], banTimeArray[4], banTimeArray[5]);
+                return TimeUtility.ServerNow < time;
+            }
+        }
+
+        public int banCheckSecond = 60;
+        public int repeatCountLimit = 5;
+        public int maliceCheckCount = 10;
+        public int maliceLimitCount = 5;
+
+        public int banHour
+        {
+            get { return LocalSave.GetInt("ClientChatBanHour", 0); }
+            set
+            {
+                LocalSave.SetInt("ClientChatBanHour", value);
+            }
+        }
+
+        private int[] banTimeArray = new int[6];
+        private DateTime bandTime
+        {
+            get
+            {
+                var timeArray = LocalSave.GetIntArray("ClientChatBanTime");
+                if (null == timeArray)
+                {
+                    return TimeUtility.OriginalTime;
+                }
+                else
+                {
+                    return new DateTime(timeArray[0], timeArray[1], timeArray[2], timeArray[3], timeArray[4], timeArray[5]);
+                }
+            }
+            set
+            {
+                banTimeArray[0] = value.Year;
+                banTimeArray[1] = value.Month;
+                banTimeArray[2] = value.Day;
+                banTimeArray[3] = value.Hour;
+                banTimeArray[4] = value.Minute;
+                banTimeArray[5] = value.Second;
+                LocalSave.SetIntArray("ClientChatBanTime", banTimeArray);
+            }
+        }
+
+        public void ChatClientBan()
+        {
+            var time = TimeUtility.ServerNow;
+            var hour = Mathf.Min(24, banHour + 1);
+            banHour = hour;
+            time = time.AddTicks(hour * TimeSpan.TicksPerHour);
+            bandTime = time;
+        }
+        #endregion
+
     }
 }
 

--
Gitblit v1.8.0