Skip to content

Commit 7522658

Browse files
committed
Use MySQL offset instead of weird between logic
1 parent c6380f7 commit 7522658

3 files changed

Lines changed: 6 additions & 13 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ plugins {
88
}
99

1010
group = "com.dumbdogdiner"
11-
version = "3.1.0"
11+
version = "3.1.1"
1212

1313
repositories {
1414
mavenCentral()

src/main/java/com/dumbdogdiner/stickycommands/commands/Sell.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,8 @@ ExitCode handleLog(Player sender, Arguments a) {
141141
return ExitCode.EXIT_INVALID_SYNTAX.setMessage(locale.translate("invalid-syntax", variables));
142142

143143
// I hate and love this.
144-
Integer page = a.get("page") == null ? 1
145-
: (NumberUtil.isNumeric(a.get("page")) ? Integer.parseInt(a.get("page")) : 1);
144+
Integer page = a.get("page") == null ? 0
145+
: (NumberUtil.isNumeric(a.get("page")) ? Integer.parseInt(a.get("page")) : 0);
146146
Database database = StickyCommands.getInstance().getDatabase();
147147
var salesList = database.getSaleLog(page);
148148

src/main/java/com/dumbdogdiner/stickycommands/utils/Database.java

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -242,16 +242,9 @@ public TreeMap<String, String> getUserData(@NotNull String username) {
242242
*/
243243
public List<Sale> getSaleLog(Integer page) {
244244
try {
245-
// I can't select `DESC id` before I do my `BETWEEN` query...
246-
// So, we just select everything at the bottom first!
247-
// This ensures that all latest sales are at the top of the list
248-
final var TOTAL = getSaleLogSize();
249-
final var MAX = TOTAL - (page == 1 ? 0 : (page * 8)); // If the page is 1, we don't want to subtract 8...
250-
final var MIN = MAX - 7;
251-
252-
PreparedStatement getSales = connection.prepareStatement("SELECT * FROM " + withPrefix("sales") + " WHERE id BETWEEN ? AND ? ORDER BY id DESC");
253-
getSales.setInt(1, MIN);
254-
getSales.setInt(2, MAX);
245+
final var OFFSET = page * 8;
246+
PreparedStatement getSales = connection.prepareStatement("SELECT * FROM " + withPrefix("sales") + " ORDER BY id DESC LIMIT 8 OFFSET ?");
247+
getSales.setInt(1, OFFSET);
255248
ResultSet rs = getSales.executeQuery();
256249
ArrayList<Sale> sales = new ArrayList<Sale>();
257250
while (rs.next()) {

0 commit comments

Comments
 (0)