57 lines
1.8 KiB
C#
57 lines
1.8 KiB
C#
//This code create by CodeEngine
|
|
|
|
using System;
|
|
using Module.Log;
|
|
using Google.ProtocolBuffers;
|
|
using System.Collections;
|
|
|
|
namespace SPacket.SocketInstance
|
|
{
|
|
public class GC_CHATHandler : Ipacket
|
|
{
|
|
public uint Execute(PacketDistributed ipacket)
|
|
{
|
|
GC_CHAT packet = (GC_CHAT )ipacket;
|
|
if (null == packet) return (uint)PACKET_EXE.PACKET_EXE_ERROR;
|
|
//enter your logic
|
|
|
|
if (null == GameManager.gameManager.PlayerDataPool.BlackList)
|
|
{
|
|
return (uint)PACKET_EXE.PACKET_EXE_CONTINUE;
|
|
}
|
|
|
|
if (packet.HasSenderguid)
|
|
{
|
|
if (GameManager.gameManager.PlayerDataPool.BlackList.IsExist(packet.Senderguid))
|
|
{
|
|
return (uint)PACKET_EXE.PACKET_EXE_CONTINUE;
|
|
}
|
|
}
|
|
|
|
GameManager.gameManager.PlayerDataPool.ChatHistory.OnReceiveChat(packet);
|
|
if (FriendAndMailRoot.Instance() != null)
|
|
{
|
|
FriendAndMailRoot.Instance().OnReceiveChat();
|
|
}
|
|
if (ChatFrameLogic.Instance() != null)
|
|
{
|
|
ChatFrameLogic.Instance().OnReceiveChat(packet);
|
|
}
|
|
if (ChatInfoLogic.Instance() != null)
|
|
{
|
|
ChatInfoLogic.Instance().OnReceiveChat();
|
|
}
|
|
|
|
int HistoryCount = GameManager.gameManager.PlayerDataPool.ChatHistory.ChatHistoryList.Count;
|
|
var LastHistory = GameManager.gameManager.PlayerDataPool.ChatHistory.ChatHistoryList[HistoryCount - 1];
|
|
if (LastHistory.ChatInfo.StartsWith(ChatVoiceInputLogic._VoiceChatStart))
|
|
{
|
|
ChatVoice.Instance().AutoVoice(LastHistory);
|
|
}
|
|
|
|
|
|
return (uint)PACKET_EXE.PACKET_EXE_CONTINUE;
|
|
}
|
|
}
|
|
}
|