74 lines
2.2 KiB
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;
|
|
}
|
|
}
|
|
}
|