过滤不同弹幕类型下,千条内重复弹幕ID

This commit is contained in:
小白猿
2023-04-01 00:09:07 +08:00
parent c13ad5d7e2
commit 4cca3e2212
+21 -2
View File
@@ -146,11 +146,30 @@ namespace BarrageGrab
catch (Exception) { }
}
//用于缓存接收过的消息ID,判断是否重复接收
Dictionary<string,List<long>> msgDic = new Dictionary<string,List<long>>();
//发送事件
private void DoMessage(Message msg)
{
{
List<long> msgIdList;
if (msgDic.ContainsKey(msg.Method))
{
msgIdList = msgDic[msg.Method];
}
else
{
msgIdList = new List<long>(1000);
msgDic.Add(msg.Method, msgIdList);
}
if (msgIdList.Contains(msg.msgId))
{
return;
}
msgIdList.Add(msg.msgId);
if (msgIdList.Count > 990) msgIdList.RemoveAt(0);
try
{
switch (msg.Method)