From 64e627514d6f4bde652439802259639bbef3d088 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Fri, 17 Jul 2026 09:47:40 +0200 Subject: [PATCH] Add deletion of PlayerData on /bau delmember --- .../steamwar/velocitycore/ServerStarter.java | 2 +- .../velocitycore/commands/BauCommand.java | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/VelocityCore/src/de/steamwar/velocitycore/ServerStarter.java b/VelocityCore/src/de/steamwar/velocitycore/ServerStarter.java index 762d6960..a4dc58fc 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/ServerStarter.java +++ b/VelocityCore/src/de/steamwar/velocitycore/ServerStarter.java @@ -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; diff --git a/VelocityCore/src/de/steamwar/velocitycore/commands/BauCommand.java b/VelocityCore/src/de/steamwar/velocitycore/commands/BauCommand.java index f58d30a8..048e3125 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/commands/BauCommand.java +++ b/VelocityCore/src/de/steamwar/velocitycore/commands/BauCommand.java @@ -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 addedUsers() { return new TypeMapper() {