From 87dbb7433be6f156f1e05ec021a2dc83b7618aac Mon Sep 17 00:00:00 2001 From: KHobbits Date: Fri, 14 Sep 2012 02:30:24 +0100 Subject: [PATCH] /ess reset - Clears stored data about a user. --- .../src/com/earth2me/essentials/UserData.java | 11 +++++++++-- .../essentials/commands/Commandessentials.java | 16 ++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index 383c0ccf4..be25cf665 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -13,13 +13,14 @@ import org.bukkit.inventory.ItemStack; public abstract class UserData extends PlayerExtension implements IConf { protected final transient IEssentials ess; - private final EssentialsConf config; + private EssentialsConf config; + private final File folder; protected UserData(Player base, IEssentials ess) { super(base); this.ess = ess; - File folder = new File(ess.getDataFolder(), "userdata"); + folder = new File(ess.getDataFolder(), "userdata"); if (!folder.exists()) { folder.mkdirs(); @@ -27,6 +28,12 @@ public abstract class UserData extends PlayerExtension implements IConf config = new EssentialsConf(new File(folder, Util.sanitizeFileName(base.getName()) + ".yml")); reloadConfig(); } + + public final void reset () { + config.getFile().delete(); + config = new EssentialsConf(new File(folder, Util.sanitizeFileName(base.getName()) + ".yml")); + reloadConfig(); + } @Override public final void reloadConfig() diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java b/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java index d030ec5fb..fe33aebd7 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandessentials.java @@ -1,6 +1,7 @@ package com.earth2me.essentials.commands; import static com.earth2me.essentials.I18n._; +import com.earth2me.essentials.User; import com.earth2me.essentials.metrics.Metrics; import java.io.IOException; import java.util.HashMap; @@ -41,6 +42,10 @@ public class Commandessentials extends EssentialsCommand { run_moo(server, sender, commandLabel, args); } + else if (args[0].equalsIgnoreCase("reset")) + { + run_reset(server, sender, commandLabel, args); + } else if (args[0].equalsIgnoreCase("opt-out")) { run_optout(server, sender, commandLabel, args); @@ -69,6 +74,17 @@ public class Commandessentials extends EssentialsCommand } } + private void run_reset(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception + { + if (args.length < 2) + { + throw new NotEnoughArgumentsException("/ reset "); + } + final User user = getPlayer(server, args, 1, true); + user.reset(); + sender.sendMessage("Reset Essentials userdata for player: " + user.getDisplayName()); + } + private void run_debug(final Server server, final CommandSender sender, final String commandLabel, final String[] args) throws Exception { ess.getSettings().setDebug(!ess.getSettings().isDebug());