forked from SteamWar/SteamWar
Add deletion of PlayerData on /bau delmember
This commit is contained in:
@@ -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>() {
|
||||
|
||||
Reference in New Issue
Block a user