private static void HandleGuildMail(GameSession session, IPacketReader packet) { string title = packet.ReadUnicodeString(); string body = packet.ReadUnicodeString(); Player sender = session.Player; Guild guild = sender.Guild; if (guild == null) { return; } byte senderRank = sender.GuildMember.Rank; GuildRank guildRank = guild.Ranks[senderRank]; if (!guildRank.HasRight(GuildRights.CanGuildMail)) { session.Send(GuildPacket.ErrorNotice((byte)GuildErrorNotice.InsufficientPermissions)); return; } session.Send(GuildPacket.SendMail()); IEnumerable <long> recipientIds = guild.Members.Select(c => c.Player.CharacterId); foreach (long recipientId in recipientIds) { MailHelper.SendMail(MailType.Player, recipientId, sender.CharacterId, sender.Name, title, body, "", "", new(), 0, 0, out Mail mail); } }