Aura.Msgr.Network.Send.GuildMemberListR C# (CSharp) Method

GuildMemberListR() public static method

Sends GuildMemberListR to client.
public static GuildMemberListR ( MsgrClient client, Guild guild ) : void
client MsgrClient
guild Guild
return void
		public static void GuildMemberListR(MsgrClient client, Guild guild)
		{
			var packet = new Packet(Op.Msgr.GuildMemberListR, 0);
			packet.PutByte(guild != null);
			if (guild == null)
			{
				packet.PutLong(0);
				packet.PutInt(0);
			}
			else
			{
				var members = guild.GetMembers();

				packet.PutLong(guild.Id);
				packet.PutInt(members.Count);
				foreach (var member in members)
				{
					// TODO: Don't do this for every member.
					var contact = (Contact)MsgrServer.Instance.Database.GetUserByCharacterId(member.CharacterId);
					if (contact == null)
						throw new Exception(string.Format("Contact not found for character id '0x{0:X16}'.", member.CharacterId));

					var user = MsgrServer.Instance.UserManager.GetUserByCharacterId(member.CharacterId);
					var status = (user == null ? ContactStatus.Offline : user.Status);
					var channelName = (user == null ? "" : user.ChannelName);

					packet.PutInt(contact.Id);
					packet.PutByte((byte)status);
					packet.PutInt((int)member.Rank);
					packet.PutString(contact.FullName);
					packet.PutString(channelName);
					packet.PutLong(contact.LastLogin.Ticks);
				}
			}

			client.Send(packet);
		}

Usage Example

示例#1
0
        public void GuildMemberList(MsgrClient client, Packet packet)
        {
            var unkLong = packet.GetLong();

            var guild = MsgrServer.Instance.GuildManager.FindGuildWithMember(client.User.CharacterId);

            if (guild == null)
            {
                Log.Warning("GuildMemberList: User '{0}' requested guild list without being in a guild.", client.User.AccountId);
                return;
            }

            Send.GuildMemberListR(client, guild);
        }