lifesteal/src/ca/thetechrobo/smp/DeleteMyData.java

74 lines
2.2 KiB
Java

package ca.thetechrobo.smp;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Random;
import org.bukkit.Bukkit;
import org.bukkit.BanList.Type;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextColor;
public class DeleteMyData implements CommandExecutor {
private ScoreboardWrapper scores;
public void initialise(ScoreboardWrapper scores) {
this.scores = scores;
}
@Override
public boolean onCommand(CommandSender senderr, Command arg1, String arg2, String[] args) {
// TODO Auto-generated method stub
if (args.length != 1) {
return false;
}
Boolean number = true;
try {
Integer.parseInt(args[0]);
}
catch(NumberFormatException e) {
number = false;
}
if (number) {
Player sender = (Player) senderr;
if (args[0].equals(String.valueOf(this.scores.load(sender, "delete", null, false)))) {
Bukkit.getBanList(Type.NAME).addBan(sender.getName(), "Deleted data.", null, null);
Component kickmsg = Component.text("Your server data has been ")
.append(Component.text("irrecoverably deleted.")
.color(TextColor.color(245, 5, 5)));
sender.kick(kickmsg);
String uuid = sender.getUniqueId().toString();
Path path = Paths.get("world/playerdata/" + uuid+".dat");
try {
Files.delete(path);
}
catch(IOException e) {
e.printStackTrace();
}
return true;
}
return false;
}
else {
if (!(senderr.isOp())) {
senderr.sendMessage("Sorry, You must be op");
return false;
}
Player sender = Bukkit.getPlayer(args[0]);
Random random = new Random();
Integer randumber = random.nextInt(69421);
this.scores.save(sender, randumber, "delete");
sender.sendMessage("§eIf you would like to delete all trace of you from the server, enter /deletemydata " + String.valueOf(randumber));
sender.sendMessage("NOTE! For security reasons, if you perform this operation, you will never be able to log in to the server with this account ever again.");
return true;
}
}
}