Add deletion of PlayerData on /bau delmember

This commit is contained in:
2026-07-17 09:47:40 +02:00
parent c0668723d7
commit 64e627514d
2 changed files with 26 additions and 1 deletions
@@ -55,7 +55,7 @@ public class ServerStarter {
public static final String WORLDS_BASE_PATH = WORLDS_FOLDER + "/userworlds";
public static final String BUILDER_BASE_PATH = WORLDS_FOLDER + "/builder";
private static final String WORLDS_STORAGE_BASE_PATH = "/mnt/storage/worlds/userworlds";
public static final String WORLDS_STORAGE_BASE_PATH = "/mnt/storage/worlds/userworlds";
private File directory = null;
private String worldDir = null;
@@ -44,6 +44,7 @@ import de.steamwar.velocitycore.inventory.SWItem;
import de.steamwar.velocitycore.network.NetworkSender;
import de.steamwar.velocitycore.util.BauLock;
import java.io.File;
import java.util.Collection;
import java.util.function.Consumer;
@@ -187,11 +188,35 @@ public class BauCommand extends SWCommand {
bauserver.getRegisteredServer().getPlayersConnected().stream().findAny().ifPresent(player -> NetworkSender.send(player, new BaumemberUpdatePacket()));
}
try {
deletePlayerData(owner, user);
} catch (Exception e) {
// Ignore this silently since it does not matter in any way if the data is not deleted properly.
}
member.system("BAU_DELMEMBER_DELETED_TARGET", owner);
owner.system("BAU_DELMEMBER_DELETED");
});
}
private void deletePlayerData(Chatter owner, SteamwarUser user) {
String worldName = String.valueOf(owner.user().getId());
String targetDat = user.getUUID().toString().toLowerCase() + ".dat";
String targetDatOld = user.getUUID().toString().toLowerCase() + ".dat_old";
for (ServerVersion version : ServerVersion.values()) {
File playerData = new File(new File(version.getWorldFolder(ServerStarter.WORLDS_BASE_PATH), worldName), "playerdata");
if (playerData.exists()) {
new File(playerData, targetDat).delete();
new File(playerData, targetDatOld).delete();
}
File playerDataStorage = new File(new File(version.getWorldFolder(ServerStarter.WORLDS_STORAGE_BASE_PATH), worldName), "playerdata");
if (playerDataStorage.exists()) {
new File(playerDataStorage, targetDat).delete();
new File(playerDataStorage, targetDatOld).delete();
}
}
}
@Mapper(value = "addedUsers", local = true)
public TypeMapper<SteamwarUser> addedUsers() {
return new TypeMapper<SteamwarUser>() {