Skip to content

Commit 009b3cb

Browse files
Potential fix for archived consoles #1009
1 parent 36eee99 commit 009b3cb

File tree

4 files changed

+54
-15
lines changed

4 files changed

+54
-15
lines changed

src/main/java/me/eccentric_nz/TARDIS/desktop/TARDISFullThemeRunnable.java

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,12 @@ public void run() {
147147
// abort
148148
Player cp = plugin.getServer().getPlayer(uuid);
149149
plugin.getMessenger().send(cp, TardisModule.TARDIS, "ARCHIVE_NOT_FOUND");
150+
// reset next archive back to 0
151+
new ArchiveReset(plugin, uuid.toString(), 1,0).resetUse();
152+
if (tud.getPrevious().getPermission().equals("archive")) {
153+
// reset previous back to 1
154+
new ArchiveReset(plugin, uuid.toString(), 2,1).resetUse();
155+
}
150156
// cancel task
151157
plugin.getServer().getScheduler().cancelTask(taskID);
152158
return;
@@ -163,6 +169,12 @@ public void run() {
163169
// abort
164170
Player cp = plugin.getServer().getPlayer(uuid);
165171
plugin.getMessenger().send(cp, TardisModule.TARDIS, "ARCHIVE_NOT_FOUND");
172+
if (tud.getSchematic().getPermission().equals("archive")) {
173+
// reset next back to 0
174+
new ArchiveReset(plugin, uuid.toString(), 1,0).resetUse();
175+
}
176+
// reset previous archive back to 1
177+
new ArchiveReset(plugin, uuid.toString(), 2,1).resetUse();
166178
// cancel task
167179
plugin.getServer().getScheduler().cancelTask(taskID);
168180
return;
@@ -218,6 +230,14 @@ public void run() {
218230
wherea.put("uuid", uuid.toString());
219231
int amount = plugin.getArtronConfig().getInt("upgrades." + tud.getSchematic().getPermission());
220232
plugin.getQueryFactory().alterEnergyLevel("tardis", amount, wherea, player);
233+
if (tud.getSchematic().getPermission().equals("archive")) {
234+
// reset next archive back to 0
235+
new ArchiveReset(plugin, uuid.toString(), 1,0).resetUse();
236+
}
237+
if (tud.getPrevious().getPermission().equals("archive")) {
238+
// reset previous back to 1
239+
new ArchiveReset(plugin, uuid.toString(), 2,1).resetUse();
240+
}
221241
}
222242
Tardis tardis = rs.getTardis();
223243
slot = tardis.getTIPS();
@@ -477,9 +497,9 @@ public void run() {
477497
where.put("tardis_id", id);
478498
plugin.getQueryFactory().doUpdate("tardis", set, where);
479499
}
480-
if (!tud.getSchematic().getPermission().equals("archive")) {
481-
// reset archive use back to 0
482-
new ArchiveReset(plugin, uuid.toString(), 0).resetUse();
500+
// reset archive use back to 0
501+
if (tud.getPrevious().getPermission().equals("archive") && !tud.getSchematic().getPermission().equals("archive")) {
502+
new ArchiveReset(plugin, uuid.toString(), 1, 0).resetUse();
483503
}
484504
// jettison blocks if downgrading to smaller size
485505
if (downgrade) {

src/main/java/me/eccentric_nz/TARDIS/desktop/TARDISThemeProcessor.java

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,12 @@ public void changeDesktop() {
8989
// abort
9090
Player cp = plugin.getServer().getPlayer(uuid);
9191
plugin.getMessenger().send(cp, TardisModule.TARDIS, "ARCHIVE_NOT_FOUND");
92+
// reset next archive back to 0
93+
94+
if (tud.getPrevious().getPermission().equals("archive")) {
95+
// reset previous back to 1
96+
97+
}
9298
return;
9399
}
94100
} else {
@@ -120,6 +126,12 @@ public void changeDesktop() {
120126
// abort
121127
Player cp = plugin.getServer().getPlayer(uuid);
122128
plugin.getMessenger().send(cp, TardisModule.TARDIS, "ARCHIVE_NOT_FOUND");
129+
if (tud.getSchematic().getPermission().equals("archive")) {
130+
// reset next back to 0
131+
132+
}
133+
// reset previous archive back to 1
134+
123135
return;
124136
}
125137
} else {
@@ -147,7 +159,11 @@ public void changeDesktop() {
147159
plugin.getMessenger().send(cp, TardisModule.TARDIS, "UPGRADE_PERCENT_REASON");
148160
if (tud.getPrevious().getPermission().equals("archive")) {
149161
// reset archive use back to 1
150-
new ArchiveReset(plugin, uuid.toString(), 1).resetUse();
162+
if (tud.getSchematic().getPermission().equals("archive")) {
163+
// reset next back to 0
164+
new ArchiveReset(plugin, uuid.toString(), 1, 0).resetUse();
165+
}
166+
new ArchiveReset(plugin, uuid.toString(), 2, 1).resetUse();
151167
}
152168
return;
153169
}
@@ -158,9 +174,13 @@ public void changeDesktop() {
158174
if (checkARSGrid(size_prev, size_next, uuid)) {
159175
plugin.getMessenger().send(plugin.getServer().getPlayer(uuid), TardisModule.TARDIS, "UPGRADE_ABORT_SPACE");
160176
plugin.getTrackerKeeper().getUpgrades().remove(uuid);
177+
if (tud.getSchematic().getPermission().equals("archive")) {
178+
// reset next archive back to 0
179+
new ArchiveReset(plugin, uuid.toString(), 1,0).resetUse();
180+
}
161181
if (tud.getPrevious().getPermission().equals("archive")) {
162-
// reset archive use back to 1
163-
new ArchiveReset(plugin, uuid.toString(), 1).resetUse();
182+
// reset previous back to 1
183+
new ArchiveReset(plugin, uuid.toString(), 2,1).resetUse();
164184
}
165185
return;
166186
}

src/main/java/me/eccentric_nz/TARDIS/desktop/TARDISThemeRepairRunnable.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -376,10 +376,6 @@ public void run() {
376376
where.put("tardis_id", id);
377377
plugin.getQueryFactory().doUpdate("tardis", set, where);
378378
}
379-
if (!tud.getSchematic().getPermission().equals("archive")) {
380-
// reset archive use back to 0
381-
new ArchiveReset(plugin, uuid.toString(), 0).resetUse();
382-
}
383379
if (tud.getSchematic().getPermission().equals("coral") && tud.getPrevious().getConsoleSize().equals(ConsoleSize.TALL)) {
384380
// clean up space above coral console
385381
int tidy = starty + h;

src/main/java/me/eccentric_nz/TARDIS/schematic/ArchiveReset.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,31 +33,34 @@ public class ArchiveReset {
3333
private final Connection connection = service.getConnection();
3434
private final TARDIS plugin;
3535
private final String uuid;
36-
private final int use;
36+
private final int from;
37+
private final int to;
3738
private final String prefix;
3839

39-
public ArchiveReset(TARDIS plugin, String uuid, int use) {
40+
public ArchiveReset(TARDIS plugin, String uuid, int from, int to) {
4041
this.plugin = plugin;
4142
this.uuid = uuid;
42-
this.use = use;
43+
this.from = from;
44+
this.to = to;
4345
prefix = this.plugin.getPrefix();
4446
}
4547

4648
public void resetUse() {
4749
PreparedStatement statement = null;
4850
PreparedStatement ps = null;
4951
ResultSet rs = null;
50-
String query = "SELECT archive_id FROM " + prefix + "archive WHERE uuid = ? AND `use` IN (1,2)";
52+
String query = "SELECT archive_id FROM " + prefix + "archive WHERE uuid = ? AND `use` = ?";
5153
try {
5254
service.testConnection(connection);
5355
statement = connection.prepareStatement(query);
5456
statement.setString(1, uuid);
57+
statement.setInt(2, from);
5558
rs = statement.executeQuery();
5659
if (rs.isBeforeFirst()) {
5760
String update = "UPDATE " + prefix + "archive SET `use` = ? WHERE archive_id = ?";
5861
ps = connection.prepareStatement(update);
5962
while (rs.next()) {
60-
ps.setInt(1, use);
63+
ps.setInt(1, to);
6164
ps.setInt(2, rs.getInt("archive_id"));
6265
ps.executeUpdate();
6366
}

0 commit comments

Comments
 (0)