Example #1
0
        /// <summary>
        /// Handles the specified <see cref="Message"/>.
        /// </summary>
        /// <param name="Device">The device.</param>
        /// <param name="Message">The message.</param>
        /// <param name="Cancellation">The cancellation.</param>
        public static async Task Handle(Device Device, Message Message, CancellationToken Cancellation)
        {
            var AskForAvatarLocalRankingListMessage = (AskForAvatarLocalRankingListMessage)Message;

            if (AskForAvatarLocalRankingListMessage == null)
            {
                throw new LogicException(typeof(AskForAvatarLocalRankingListHandler), nameof(AskForAvatarLocalRankingListMessage) + " == null at Handle(Device, Message, CancellationToken).");
            }

            LeaderboardPlayers Leaderboard = Leaderboards.GetRegionalPlayers(Device.Defines.Region);

            if (Leaderboard != null)
            {
                Device.NetworkManager.SendMessage(new AvatarLocalRankingListMessage()
                {
                    Entries           = Leaderboard.Players.ToArray(),
                    LastSeasonEntries = Leaderboard.LastSeason.ToArray()
                });
            }
            else
            {
                Logging.Error(typeof(AskForAvatarLocalRankingListHandler), "Leaderboard == null at Handle(Device, Message, CancellationToken).");
            }
        }