Skip to content

Commit

Permalink
configurable max member size
Browse files Browse the repository at this point in the history
  • Loading branch information
HSGamer committed Mar 19, 2023
1 parent 0c52829 commit 4dd9091
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 4 deletions.
10 changes: 6 additions & 4 deletions src/main/java/me/hsgamer/autoislandpurge/PurgeTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

import java.util.Optional;
import java.util.Queue;
import java.util.UUID;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.TimeUnit;

Expand Down Expand Up @@ -36,7 +37,7 @@ private void checkIslands() {
.filter(i -> !i.isSpawn())
.filter(i -> !i.getPurgeProtected())
.filter(Island::isOwned)
.filter(i -> i.getMembers().size() == 1)
.filter(i -> i.getMembers().size() <= instance.getSettings().getMaxMemberSize())
.filter(i -> {
var uuid = i.getOwner();
if (uuid == null) {
Expand All @@ -52,7 +53,6 @@ private void checkIslands() {
long days = TimeUnit.MILLISECONDS.toDays(duration);
return days > instance.getSettings().getOfflineDays();
})
.filter(i -> !islands.contains(i))
.forEach(islands::add);
}

Expand All @@ -72,11 +72,13 @@ private void scheduleDelete(Island island) {
) {
return;
}

UUID owner = island.getOwner();
String log = String.format(
"Island at %s (%s - %s) deleted",
island.getSpawnPoint(World.Environment.NORMAL),
island.getOwner(),
Optional.ofNullable(island.getOwner())
owner,
Optional.ofNullable(owner)
.map(Bukkit::getOfflinePlayer)
.map(OfflinePlayer::getName)
.orElse(null)
Expand Down
6 changes: 6 additions & 0 deletions src/main/java/me/hsgamer/autoislandpurge/Settings.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public class Settings {
private final AutoIslandPurge addon;
private final List<GameModeAddon> enabledGameModes = new ArrayList<>();
private int offlineDays = 7;
private int maxMemberSize = 1;
private long checkTicks = 300;
private long deleteTicks = 10;
private Location spawnLocation;
Expand All @@ -29,6 +30,7 @@ public void setup() {
.toList()
);
offlineDays = config.getInt("offline-days-until-purge", offlineDays);
maxMemberSize = config.getInt("purge-island-member-size", maxMemberSize);
checkTicks = config.getLong("check-purge-ticks", checkTicks);
deleteTicks = config.getLong("ticks-per-island-deleted", deleteTicks);
try {
Expand All @@ -50,6 +52,10 @@ public int getOfflineDays() {
return offlineDays;
}

public int getMaxMemberSize() {
return maxMemberSize;
}

public long getCheckTicks() {
return checkTicks;
}
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
enabled-modes: []
offline-days-until-purge: 7
purge-island-member-size: 1
check-islands-ticks: 300
ticks-per-island-deleted: 10
spawn-location:
Expand Down

0 comments on commit 4dd9091

Please sign in to comment.