public override void OnHandle(PacketChat packet) { base.OnHandle(packet); var user = this.User; Server.Instance.Broadcast($"[{user.DisplayName}] : {packet.Message}"); }
public static void HandleServerChatMessage(Packet packet) { PacketChat chatPacket = packet.Holder.Chat = new PacketChat(); var text = new CreatureText { Type = (ChatMessageType)packet.ReadByteE <ChatMessageTypeNew>("SlashCmd"), Language = packet.ReadByteE <Language>("Language"), SenderGUID = packet.ReadPackedGuid128("SenderGUID") }; packet.ReadPackedGuid128("SenderGuildGUID"); packet.ReadPackedGuid128("WowAccountGUID"); text.ReceiverGUID = packet.ReadPackedGuid128("TargetGUID"); packet.ReadUInt32("TargetVirtualAddress"); packet.ReadUInt32("SenderVirtualAddress"); packet.ReadPackedGuid128("PartyGUID"); packet.ReadUInt32("AchievementID"); packet.ReadSingle("DisplayTime"); var bits24 = packet.ReadBits(11); var bits1121 = packet.ReadBits(11); var prefixLen = packet.ReadBits(5); var channelLen = packet.ReadBits(7); var textLen = packet.ReadBits(12); var flags = packet.ReadBits("ChatFlags", ClientVersion.AddedInVersion(ClientVersionBuild.V6_1_2_19802) ? 11 : 10); packet.ReadBit("HideChatLog"); packet.ReadBit("FakeSenderName"); text.SenderName = packet.ReadWoWString("Sender Name", bits24); text.ReceiverName = packet.ReadWoWString("Receiver Name", bits1121); packet.ReadWoWString("Addon Message Prefix", prefixLen); packet.ReadWoWString("Channel Name", channelLen); chatPacket.Text = text.Text = packet.ReadWoWString("Text", textLen); chatPacket.Sender = text.SenderGUID.ToUniversalGuid(); chatPacket.Target = text.ReceiverGUID.ToUniversalGuid(); chatPacket.Language = (int)text.Language; chatPacket.Type = (int)text.Type; chatPacket.Flags = flags; uint entry = 0; if (text.SenderGUID.GetObjectType() == ObjectType.Unit) { entry = text.SenderGUID.GetEntry(); } else if (text.ReceiverGUID.GetObjectType() == ObjectType.Unit) { entry = text.ReceiverGUID.GetEntry(); } if (entry != 0) { Storage.CreatureTexts.Add(entry, text, packet.TimeSpan); } }
public void receiveChatPacket(PacketChat chat) { if (chat.destination == "monitor") { _server.sendPackToMonitor(chat); Console.WriteLine("Sent Pack to monitor"); } else { _server.sendPacketToClient(chat, chat.destinationID); Console.WriteLine("Sent Pack to client"); } }
private void textBox8_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { Chatbox.AppendText("[you] " + this.Sendbox.Text + Environment.NewLine); //send packet to the server PacketChat chat = new PacketChat(this.Sendbox.Text + Environment.NewLine, hostName, "monitor", id); this.serverConnection.WritePacket(chat); Console.WriteLine("Sent message"); Sendbox.Clear(); } }
public void recievePacketChat(PacketChat chat) { //append text to the App form //this.client.appendTextToChat("[dokter] " + chat.messageText + Environment.NewLine); List <Client> clients = this.client.clients; foreach (Client client in clients) { if (client.Identifier.Id == chat.destinationID) { client.Panel.changeChatBoxText("[dokter] " + chat.messageText + Environment.NewLine); } } }
private void SessionHandler() { //Send starting chat packet PacketChat chat = new PacketChat("Session started...", panel.id.Username, "client", panel.id.Id); connection.writePacket(chat); if (radioButton_Time.Checked) { int tt = int.Parse(timeTextBox.Text); int min = tt / 100; int sec = tt % 100; bool flag = true; while (flag) { //Decrease by 1 second sec--; //Check if seconds are over and minutes should be decreased. if (sec == 0) { if (min == 0) { PacketChat end = new PacketChat("Session ended...", panel.id.Username, "client", panel.id.Id); connection.writePacket(end); flag = false; } sec = 60; min--; } Thread.Sleep(1000); } } else if (radioButton_Distance.Checked) { bool flag = true; while (flag) { int distance = int.Parse(panel.ReturnDistanceTextBox().Text); if (distance == 0) { PacketChat end = new PacketChat("Session ended...", panel.id.Username, "client", panel.id.Id); connection.writePacket(end); flag = false; } } } }
public void ThreadClient() { Console.WriteLine("{0}\tStarted{1}", GetHashCode(), ""); while (TcpClient.Connected) { Packet packet = (Packet)formatter.Deserialize(Stream); packet.handleServerSide(this); Console.WriteLine("Packet received from: {0}", GetHashCode()); //Console.WriteLine("packet received from {0}", packet.GetName()); if (packet is PacketChat) { PacketChat chatPacket = (PacketChat)packet; Console.WriteLine("Hostname: {0}, destination: {1}, destinationID: {2}", chatPacket.hostName, chatPacket.destination, chatPacket.destinationID); } } }
public void recieveChat(PacketChat pack) { Console.WriteLine("Recieved Chat Packet"); form.Invoke((Action)(() => { try { form.showMessage(pack.destinationID, pack.messageText); } catch (Exception e) { Console.WriteLine(e.Message); //MessageBox.Show("No connection to the server"); //form.closeApplicaton(); } })); }
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.Enter && ReturnActualPowerTextBox().Focused) { ReturnChatInputTextBox().Select(); RPMTextbox.Text = "text"; } if (keyData == Keys.Enter && ReturnChatInputTextBox().Focused) { ReturnChatInputTextBox().Select(); string chatText = ReturnChatInputTextBox().Text; changeChatBoxTextSelf(chatText); PacketChat chat = new PacketChat(chatText, id.Username, "client", id.Id); connection.writePacket(chat); chatInputTextBox.Clear(); return(true); } return(base.ProcessCmdKey(ref msg, keyData)); }
public static void HandleServerChatMessage(Packet packet) { PacketChat chatPacket = packet.Holder.Chat = new PacketChat(); var text = new CreatureText(); var groupGUIDBytes = new byte[8]; var guildGUIDBytes = new byte[8]; var receiverGUIDBytes = new byte[8]; var senderGUIDBytes = new byte[8]; var bit1316 = !packet.ReadBit(); packet.ReadBit("bit5269"); packet.ReadBit(); // fake bit var hasSender = !packet.ReadBit(); packet.StartBitStream(groupGUIDBytes, 6, 1, 7, 5, 4, 3, 2, 0); packet.ReadBit(); // fake bit var hasChannel = !packet.ReadBit(); packet.StartBitStream(receiverGUIDBytes, 1, 5, 7, 4, 2, 0, 6, 3); packet.ReadBit("bit5268"); var hasReceiver = !packet.ReadBit(); int receiverLen = 0; if (hasReceiver) { receiverLen = (int)packet.ReadBits(11); } packet.ReadBit(); // fake bit packet.StartBitStream(guildGUIDBytes, 0, 6, 1, 5, 7, 3, 4, 2); var hasText = !packet.ReadBit(); var hasPrefix = !packet.ReadBit(); int senderName = 0; if (hasSender) { senderName = (int)packet.ReadBits(11); } int textLen = 0; if (hasText) { textLen = (int)packet.ReadBits(12); } var hasConstTime = !packet.ReadBit(); var hasAchi = !packet.ReadBit(); packet.ReadBit(); // fake bit packet.StartBitStream(senderGUIDBytes, 5, 4, 1, 0, 6, 2, 7, 3); int channelLen = 0; if (hasChannel) { channelLen = (int)packet.ReadBits(7); } var bit2630 = !packet.ReadBit(); if (bit2630) { packet.ReadBitsE <ChatTag>("Chat Tag", 9); } var hasLang = !packet.ReadBit(); int prefixLen = 0; if (hasPrefix) { prefixLen = (int)packet.ReadBits(5); } if (hasPrefix) { packet.ReadWoWString("Addon Message Prefix", prefixLen); } packet.ParseBitStream(guildGUIDBytes, 3, 1, 5, 4, 6, 2, 0, 7); packet.ParseBitStream(receiverGUIDBytes, 7, 4, 2, 3, 1, 5, 6, 0); packet.ParseBitStream(senderGUIDBytes, 5, 0, 7, 4, 3, 2, 1, 6); packet.ParseBitStream(groupGUIDBytes, 3, 5, 2, 6, 4, 0, 1, 7); text.SenderGUID = packet.WriteGuid("SenderGUID", senderGUIDBytes); text.ReceiverGUID = packet.WriteGuid("ReceiverGUID", receiverGUIDBytes); packet.WriteGuid("GroupGUID", groupGUIDBytes); packet.WriteGuid("GuildGUID", guildGUIDBytes); if (hasAchi) { packet.ReadInt32 <AchievementId>("Achievement Id"); } if (hasReceiver) { text.ReceiverName = packet.ReadWoWString("Receiver Name", receiverLen); } text.Type = (ChatMessageType)packet.ReadByteE <ChatMessageTypeNew>("Chat type"); if (hasText) { text.Text = packet.ReadWoWString("Text", textLen); } if (hasConstTime) { packet.ReadInt32("Constant time"); } if (bit1316) { packet.ReadSingle("float1316"); } if (hasChannel) { packet.ReadWoWString("Channel Name", channelLen); } if (hasSender) { text.SenderName = packet.ReadWoWString("Sender Name", senderName); } if (hasLang) { text.Language = packet.ReadByteE <Language>("Language"); } uint entry = 0; if (text.SenderGUID.GetObjectType() == ObjectType.Unit) { entry = text.SenderGUID.GetEntry(); } else if (text.ReceiverGUID.GetObjectType() == ObjectType.Unit) { entry = text.ReceiverGUID.GetEntry(); } if (entry != 0) { Storage.CreatureTexts.Add(entry, text, packet.TimeSpan); } chatPacket.Text = text.Text; chatPacket.Sender = text.SenderGUID.ToUniversalGuid(); chatPacket.Target = text.ReceiverGUID.ToUniversalGuid(); chatPacket.Language = (int?)text.Language ?? 0; chatPacket.Type = (int?)text.Type ?? 0; }
protected override bool Process(PacketBase basePacket, PacketChat packet) { return(packet.Sender.Equals(playerGuid)); }
protected override UniversalGuid?Process(PacketBase basePacket, PacketChat packet) { return(packet.Sender); }
public static void HandleServerChatMessage(Packet packet) { PacketChat chatPacket = packet.Holder.Chat = new PacketChat(); var text = new CreatureText { Type = packet.ReadByteE <ChatMessageType>("Type"), Language = packet.ReadInt32E <Language>("Language"), SenderGUID = packet.ReadGuid("GUID") }; packet.ReadInt32("Constant time"); switch (text.Type) { case ChatMessageType.Achievement: case ChatMessageType.GuildAchievement: { packet.ReadGuid("Sender GUID"); break; } case ChatMessageType.WhisperForeign: { packet.ReadInt32("Name Length"); text.SenderName = packet.ReadCString("Name"); text.ReceiverGUID = packet.ReadGuid("Receiver GUID"); break; } case ChatMessageType.BattlegroundNeutral: case ChatMessageType.BattlegroundAlliance: case ChatMessageType.BattlegroundHorde: { var target = packet.ReadGuid("Sender GUID"); switch (target.GetHighType()) { case HighGuidType.Creature: case HighGuidType.Vehicle: case HighGuidType.GameObject: case HighGuidType.Transport: case HighGuidType.Pet: packet.ReadInt32("Sender Name Length"); packet.ReadCString("Sender Name"); break; } break; } case ChatMessageType.MonsterSay: case ChatMessageType.MonsterYell: case ChatMessageType.MonsterParty: case ChatMessageType.MonsterEmote: case ChatMessageType.MonsterWhisper: case ChatMessageType.RaidBossEmote: case ChatMessageType.RaidBossWhisper: case ChatMessageType.BattleNet: { packet.ReadInt32("Name Length"); text.SenderName = packet.ReadCString("Name"); text.ReceiverGUID = packet.ReadGuid("Receiver GUID"); switch (text.ReceiverGUID.GetHighType()) { case HighGuidType.Creature: case HighGuidType.Vehicle: case HighGuidType.GameObject: case HighGuidType.Transport: packet.ReadInt32("Receiver Name Length"); text.ReceiverName = packet.ReadCString("Receiver Name"); break; } break; } default: { if (packet.Opcode == Opcodes.GetOpcode(Opcode.SMSG_GM_MESSAGECHAT, Direction.ServerToClient)) { packet.ReadInt32("GMNameLength"); packet.ReadCString("GMSenderName"); } if (text.Type == ChatMessageType.Channel) { packet.ReadCString("Channel Name"); } packet.ReadGuid("Sender GUID"); break; } } if (ClientVersion.AddedInVersion(ClientVersionBuild.V4_1_0_13914) && text.Language == Language.Addon) { packet.ReadCString("Addon Message Prefix"); } packet.ReadInt32("Text Length"); text.Text = packet.ReadCString("Text"); if (ClientVersion.AddedInVersion(ClientVersionBuild.V5_1_0_16309)) { packet.ReadInt16E <ChatTag>("Chat Tag"); } else { packet.ReadByteE <ChatTag>("Chat Tag"); } if (ClientVersion.AddedInVersion(ClientVersionBuild.V4_2_0_14333)) { if (text.Type == ChatMessageType.RaidBossEmote || text.Type == ChatMessageType.RaidBossWhisper) { packet.ReadSingle("Unk single"); packet.ReadByte("Unk byte"); } } if (text.Type == ChatMessageType.Achievement || text.Type == ChatMessageType.GuildAchievement) { packet.ReadInt32 <AchievementId>("Achievement Id"); } uint entry = 0; if (text.SenderGUID.GetObjectType() == ObjectType.Unit) { entry = text.SenderGUID.GetEntry(); } else if (text.ReceiverGUID != null && text.ReceiverGUID.GetObjectType() == ObjectType.Unit) { entry = text.ReceiverGUID.GetEntry(); } if (entry != 0) { Storage.CreatureTexts.Add(entry, text, packet.TimeSpan); } chatPacket.Text = text.Text; chatPacket.Sender = text.SenderGUID.ToUniversalGuid(); chatPacket.Target = text.ReceiverGUID?.ToUniversalGuid(); chatPacket.Language = (int)text.Language; chatPacket.Type = (int)text.Type; }
public override void OnHandle(PacketChat packet) { base.OnHandle(packet); Client.Instance.Console.SendMessage(packet.Message); }
protected override bool Process(PacketBase basePacket, PacketChat packet) { return(packet.Sender.Type == UniversalHighGuid.Player); }
public static void HandleServerChatMessage(Packet packet) { PacketChat chatPacket = packet.Holder.Chat = new PacketChat(); var text = new CreatureText(); var senderGUIDBytes = new byte[8]; var guildGUIDBytes = new byte[8]; var receiverGUIDBytes = new byte[8]; var groupGUIDBytes = new byte[8]; var bit1495 = packet.ReadBit(); var hasText = !packet.ReadBit(); var hasAchi = !packet.ReadBit(); var hasSender = !packet.ReadBit(); packet.ReadBit(); // fake bit packet.StartBitStream(senderGUIDBytes, 2, 4, 0, 6, 1, 3, 5, 7); packet.ReadBit(); // fake bit packet.StartBitStream(groupGUIDBytes, 6, 0, 4, 1, 2, 3, 7, 5); var hasPrefix = !packet.ReadBit(); var bit1494 = packet.ReadBit(); var hasRealmId = !packet.ReadBit(); var bit1490 = !packet.ReadBit(); int senderName = 0; if (hasSender) { senderName = (int)packet.ReadBits(11); } packet.ReadBit(); // fake bit packet.StartBitStream(receiverGUIDBytes, 4, 0, 6, 7, 5, 1, 3, 2); int prefixLen = 0; if (hasPrefix) { prefixLen = (int)packet.ReadBits(5); } var hasReceiver = !packet.ReadBit(); var bit148C = !packet.ReadBit(); int textLen = 0; if (hasText) { textLen = (int)packet.ReadBits(12); } var hasLang = !packet.ReadBit(); int countBits148C = 0; if (bit148C) { countBits148C = (int)packet.ReadBits(9); } packet.ReadBit(); // fake bit int receiverLen = 0; if (hasReceiver) { receiverLen = (int)packet.ReadBits(11); } packet.StartBitStream(guildGUIDBytes, 0, 2, 1, 4, 6, 7, 5, 3); var hasChannel = !packet.ReadBit(); if (hasChannel) { var channelLen = (int)packet.ReadBits(7); packet.ReadWoWString("Channel Name", channelLen); } if (hasSender) { text.SenderName = packet.ReadWoWString("Sender Name", senderName); } packet.ParseBitStream(groupGUIDBytes, 6, 7, 1, 2, 4, 3, 0, 5); packet.ParseBitStream(receiverGUIDBytes, 0, 4, 1, 3, 5, 7, 2, 6); text.Type = (ChatMessageType)packet.ReadByteE <ChatMessageTypeNew>("SlashCmd"); packet.ParseBitStream(senderGUIDBytes, 7, 6, 5, 4, 0, 2, 1, 3); if (hasPrefix) { packet.ReadWoWString("Addon Message Prefix", prefixLen); } if (hasRealmId) { packet.ReadInt32("Realm Id"); } packet.ParseBitStream(guildGUIDBytes, 1, 0, 3, 7, 6, 5, 2, 4); if (hasReceiver) { text.ReceiverName = packet.ReadWoWString("Receiver Name", receiverLen); } if (hasAchi) { packet.ReadInt32 <AchievementId>("Achievement Id"); } if (hasLang) { text.Language = packet.ReadByteE <Language>("Language"); } if (hasText) { text.Text = packet.ReadWoWString("Text", textLen); } if (bit1490) { packet.ReadSingle("Float1490"); } text.SenderGUID = packet.WriteGuid("SenderGUID", senderGUIDBytes); text.ReceiverGUID = packet.WriteGuid("ReceiverGUID", receiverGUIDBytes); packet.WriteGuid("GuildGUID", guildGUIDBytes); packet.WriteGuid("GroupGUID", groupGUIDBytes); chatPacket.Text = text.Text; chatPacket.Sender = text.SenderGUID.ToUniversalGuid(); chatPacket.Target = text.ReceiverGUID.ToUniversalGuid(); chatPacket.Language = (int?)text.Language ?? 0; chatPacket.Type = (int)text.Type; uint entry = 0; if (text.SenderGUID.GetObjectType() == ObjectType.Unit) { entry = text.SenderGUID.GetEntry(); } else if (text.ReceiverGUID.GetObjectType() == ObjectType.Unit) { entry = text.ReceiverGUID.GetEntry(); } if (entry != 0) { Storage.CreatureTexts.Add(entry, text, packet.TimeSpan); } }
protected virtual T?Process(PacketBase basePacket, PacketChat packet) => default;
public void recievePacketChat(PacketChat chat) { //append text to the App form this.client.appendTextToChat("[doctor] " + chat.messageText); }