36
36
37
37
public class AdminPurgeRegionsCommand extends CompositeCommand implements Listener {
38
38
39
- private int count ;
40
39
private volatile boolean inPurge ;
41
40
private boolean toBeConfirmed ;
42
41
private User user ;
@@ -86,11 +85,18 @@ public boolean execute(User user, String label, List<String> args) {
86
85
// Clear tbc
87
86
toBeConfirmed = false ;
88
87
89
- days = Integer .parseInt (args .get (0 ));
90
- if (days < 1 ) {
88
+ try {
89
+ days = Integer .parseInt (args .get (0 ));
90
+ if (days <= 0 ) {
91
+ user .sendMessage ("commands.admin.purge.days-one-or-more" );
92
+ return false ;
93
+ }
94
+
95
+ } catch (NumberFormatException e ) {
91
96
user .sendMessage ("commands.admin.purge.days-one-or-more" );
92
97
return false ;
93
98
}
99
+
94
100
user .sendMessage ("commands.admin.purge.scanning" );
95
101
// Save all worlds to update any region files
96
102
Bukkit .getWorlds ().forEach (World ::save );
@@ -100,6 +106,7 @@ public boolean execute(User user, String label, List<String> args) {
100
106
return true ;
101
107
}
102
108
109
+
103
110
private boolean deleteEverything () {
104
111
if (deleteableRegions .isEmpty ()) {
105
112
user .sendMessage ("commands.admin.purge.none-found" ); // Should never happen
@@ -146,7 +153,7 @@ private boolean deleteEverything() {
146
153
* @return {@code true} if deletion was performed; {@code false} if cancelled
147
154
* due to any file being newer than the cutoff
148
155
*/
149
- public boolean deleteRegionFiles () {
156
+ private boolean deleteRegionFiles () {
150
157
if (days <= 0 ) {
151
158
getPlugin ().logError ("Days is somehow zero or negative!" );
152
159
return false ;
@@ -292,22 +299,22 @@ private void displayIsland(Island island) {
292
299
+ " who last logged in " + formatLocalTimestamp (getPlugin ().getPlayers ().getLastLoginTimestamp (island .getOwner ()))
293
300
+ " will be deleted" );
294
301
}
295
-
302
+
296
303
/**
297
304
* Formats a millisecond timestamp into a human-readable string
298
305
* using the system's local time zone.
299
306
*
300
307
* @param millis the timestamp in milliseconds
301
308
* @return formatted string in the form "yyyy-MM-dd HH:mm"
302
309
*/
303
- public String formatLocalTimestamp (Long millis ) {
310
+ private String formatLocalTimestamp (Long millis ) {
304
311
if (millis == null ) {
305
312
return "(unknown or never recorded)" ;
306
313
}
307
314
Instant instant = Instant .ofEpochMilli (millis );
308
315
309
316
DateTimeFormatter formatter = DateTimeFormatter .ofPattern ("yyyy-MM-dd HH:mm" )
310
- .withZone (ZoneId .systemDefault ()); // Uses the machine's local time zone
317
+ .withZone (ZoneId .systemDefault ()); // Uses the machine's local time zone
311
318
312
319
return formatter .format (instant );
313
320
}
@@ -350,7 +357,7 @@ private boolean canDeleteIsland(Island island) {
350
357
* @return a list of {@code Pair<regionX, regionZ>} for each region meeting
351
358
* the age criteria
352
359
*/
353
- public List <Pair <Integer , Integer >> findOldRegions (int days ) {
360
+ private List <Pair <Integer , Integer >> findOldRegions (int days ) {
354
361
List <Pair <Integer , Integer >> regions = new ArrayList <>();
355
362
356
363
// Base folders
@@ -429,7 +436,7 @@ public List<Pair<Integer, Integer>> findOldRegions(int days) {
429
436
* @param grid a 2D TreeMap mapping centreX → (centreZ → IslandData)
430
437
* @return a map from region coords to the set of overlapping island IDs
431
438
*/
432
- public Map <Pair <Integer , Integer >, Set <String >> mapIslandsToRegions (
439
+ private Map <Pair <Integer , Integer >, Set <String >> mapIslandsToRegions (
433
440
List <Pair <Integer , Integer >> oldRegions ,
434
441
TreeMap <Integer , TreeMap <Integer , IslandData >> grid
435
442
) {
@@ -475,36 +482,6 @@ public Map<Pair<Integer, Integer>, Set<String>> mapIslandsToRegions(
475
482
return regionToIslands ;
476
483
}
477
484
478
- /**
479
- * @return the inPurge
480
- */
481
- boolean isInPurge () {
482
- return inPurge ;
483
- }
484
-
485
- /**
486
- * Stop the purge
487
- */
488
- void stop () {
489
- inPurge = false ;
490
- }
491
-
492
- /**
493
- * @param user the user to set
494
- */
495
- void setUser (User user ) {
496
- this .user = user ;
497
- }
498
-
499
- /**
500
- * Returns the amount of purged islands.
501
- * @return the amount of islands that have been purged.
502
- * @since 1.13.0
503
- */
504
- int getPurgedIslandsCount () {
505
- return this .count ;
506
- }
507
-
508
485
/**
509
486
* Reads a Minecraft region file (.mca) and returns the most recent
510
487
* per-chunk timestamp found in its header, in milliseconds since epoch.
@@ -513,7 +490,7 @@ int getPurgedIslandsCount() {
513
490
* @return the most recent timestamp (in millis) among all chunk entries,
514
491
* or 0 if the file is invalid or empty
515
492
*/
516
- public long getRegionTimestamp (File regionFile ) {
493
+ private long getRegionTimestamp (File regionFile ) {
517
494
if (!regionFile .exists () || regionFile .length () < 8192 ) {
518
495
return 0L ;
519
496
}
0 commit comments