Browse Source

Next and previous buttons bug fix

Tigran 4 years ago
parent
commit
cedebfd090
1 changed files with 6 additions and 4 deletions
  1. 6 4
      MafiaTelegramBot/Resources/Keyboard.cs

+ 6 - 4
MafiaTelegramBot/Resources/Keyboard.cs

@@ -113,19 +113,21 @@ namespace MafiaTelegramBot.Resources
         public static InlineKeyboardMarkup RoomsKeyboard(List<GameRoom> rooms, long userId, int page)
         {
             var previousButton = page != 0;
-            var nextButton = rooms.Count > (page + 1) * 10;
-            var buttonsCount = rooms.Count >= (page + 1) * 10 ? 10 : rooms.Count - page*10;
+            var nextButton = rooms.Count > (page + 1) * Constants.MAX_SHOWING_ROOMS;
+            var buttonsCount = rooms.Count >= (page + 1) * Constants.MAX_SHOWING_ROOMS ? Constants.MAX_SHOWING_ROOMS : rooms.Count - page * Constants.MAX_SHOWING_ROOMS;
             if (previousButton || nextButton) buttonsCount++;
             var inlineButtons = new InlineKeyboardButton[buttonsCount][];
-            for (var i = 0 + page * 10; i < rooms.Count && i < Constants.MAX_SHOWING_ROOMS * (page + 1); ++i) // buttons
+            var j = 0;
+            for (var i = page * Constants.MAX_SHOWING_ROOMS; i < rooms.Count && i < Constants.MAX_SHOWING_ROOMS * (page + 1); ++i) // buttons
             {
                 var s = rooms[i].IsExtended ? "Р" : "C";
-                inlineButtons[i] = new []
+                inlineButtons[j] = new []
                 {
                     InlineKeyboardButton.WithCallbackData(
                         $"[{s}] {rooms[i].RoomName} ({rooms[i].Players.Values.Count.ToString()}/{rooms[i].MaxPlayers.ToString()})",
                     $"{Callback.ConnectToSelectedRoom}|{userId}|{RoomEncrypter.GetCode(rooms[i].RoomName)}")
                 };
+                ++j;
             }
             if (previousButton && nextButton) inlineButtons[buttonsCount - 1] = new[]
             {