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 WORLDS_BASE_PATH = WORLDS_FOLDER + "/userworlds";
|
||||||
public static final String BUILDER_BASE_PATH = WORLDS_FOLDER + "/builder";
|
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 File directory = null;
|
||||||
private String worldDir = 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.network.NetworkSender;
|
||||||
import de.steamwar.velocitycore.util.BauLock;
|
import de.steamwar.velocitycore.util.BauLock;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.function.Consumer;
|
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()));
|
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);
|
member.system("BAU_DELMEMBER_DELETED_TARGET", owner);
|
||||||
owner.system("BAU_DELMEMBER_DELETED");
|
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)
|
@Mapper(value = "addedUsers", local = true)
|
||||||
public TypeMapper<SteamwarUser> addedUsers() {
|
public TypeMapper<SteamwarUser> addedUsers() {
|
||||||
return new TypeMapper<SteamwarUser>() {
|
return new TypeMapper<SteamwarUser>() {
|
||||||
|
|||||||
Reference in New Issue
Block a user