public ServerMessage Handle(ValueHolder valueHolder = null) { List <Badge> badges = valueHolder.GetValue <List <Badge> >("Badges"); ServerMessage message = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); message.Init(r63bOutgoing.AddBadges); message.AppendInt32(badges.Count); List <Badge> slotBadges = new List <Badge>(); foreach (Badge badge in badges) { if (badge.SlotID > 0) { slotBadges.Add(badge); } else { message.AppendInt32(BadgeManager.GetBadgeID(badge.BadgeID)); message.AppendString(badge.BadgeID); } } foreach (Badge badge in slotBadges.OrderBy(b => b.SlotID)) //we don't want order whole badge list, fixes issue badges not showing on correct slot id { message.AppendInt32(BadgeManager.GetBadgeID(badge.BadgeID)); message.AppendString(badge.BadgeID); } message.AppendInt32(slotBadges.Count); foreach (Badge badge in slotBadges) { message.AppendInt32(badge.SlotID); message.AppendString(badge.BadgeID); } return(message); }
public ServerMessage Handle(ValueHolder valueHolder = null) { List <Badge> badges = valueHolder.GetValue <List <Badge> >("Badges"); ServerMessage message = BasicUtilies.GetRevisionServerMessage(Revision.R26_20080915_0408_7984_61ccb5f8b8797a3aba62c1fa2ca80169); message.Init(r26Outgoing.Badges); message.AppendInt32(badges.Count); List <Badge> slotBadges = new List <Badge>(); foreach (Badge badge in badges) { if (badge.SlotID > 0) { slotBadges.Add(badge); } else { BadgeManager.GetBadgeID(badge.BadgeID); message.AppendString(badge.BadgeID); } } foreach (Badge badge in slotBadges.OrderBy(b => b.SlotID)) //we don't want order whole badge list, fixes issue badges not showing on correct slot id { BadgeManager.GetBadgeID(badge.BadgeID); message.AppendString(badge.BadgeID); } foreach (Badge badge in slotBadges) { message.AppendInt32(badge.SlotID); message.AppendString(badge.BadgeID); } return(message); }