mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Add player command to reset skill levels
This commit is contained in:
		@@ -0,0 +1,59 @@
 | 
			
		||||
package com.gmail.nossr50.commands.general;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.command.Command;
 | 
			
		||||
import org.bukkit.command.CommandExecutor;
 | 
			
		||||
import org.bukkit.command.CommandSender;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.commands.CommandHelper;
 | 
			
		||||
import com.gmail.nossr50.datatypes.PlayerProfile;
 | 
			
		||||
import com.gmail.nossr50.datatypes.SkillType;
 | 
			
		||||
import com.gmail.nossr50.locale.LocaleLoader;
 | 
			
		||||
import com.gmail.nossr50.util.Users;
 | 
			
		||||
 | 
			
		||||
public class SkillResetCommand implements CommandExecutor {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
 | 
			
		||||
        if (CommandHelper.noConsoleUsage(sender)) {
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        //ensure they have the skillreset perm
 | 
			
		||||
        if (CommandHelper.noCommandPermissions(sender, "mcmmo.skillreset")) {
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        SkillType skillType = null; //simple initialization
 | 
			
		||||
        
 | 
			
		||||
        //make sure there's only one argument.  output at least some kind of error if not
 | 
			
		||||
        if (args.length != 1 && args[0] != null) {
 | 
			
		||||
        	sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        //parse the skilltype that they sent
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
        	skillType = SkillType.valueOf(args[0].toUpperCase().trim());  //ucase needed to match enum since it's case sensitive. trim to be nice
 | 
			
		||||
        }catch(IllegalArgumentException ex)
 | 
			
		||||
    	{
 | 
			
		||||
        	sender.sendMessage(LocaleLoader.getString("Commands.Skill.Invalid"));
 | 
			
		||||
            return true;
 | 
			
		||||
    	}
 | 
			
		||||
        
 | 
			
		||||
        //reset the values in the hash table and persist them
 | 
			
		||||
        PlayerProfile profile = Users.getProfile((Player)sender);
 | 
			
		||||
        profile.resetSkill(skillType);
 | 
			
		||||
        profile.save();
 | 
			
		||||
        
 | 
			
		||||
        //display a success message to the user
 | 
			
		||||
        if (skillType == SkillType.ALL)
 | 
			
		||||
        	sender.sendMessage(LocaleLoader.getString("Commands.Reset.All"));
 | 
			
		||||
        else
 | 
			
		||||
        	sender.sendMessage(LocaleLoader.getString("Commands.Reset.Single", new Object[] { args[0] }));    
 | 
			
		||||
        
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -44,6 +44,10 @@ public class MccCommand implements CommandExecutor {
 | 
			
		||||
        player.sendMessage("/mcstats " + LocaleLoader.getString("Commands.Stats"));
 | 
			
		||||
        player.sendMessage("/mctop " + LocaleLoader.getString("Commands.Leaderboards"));
 | 
			
		||||
 | 
			
		||||
        if (Permissions.getInstance().skillReset(player)) {
 | 
			
		||||
            player.sendMessage("/skillreset <skill|all> " + LocaleLoader.getString("Commands.ToggleAbility"));
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        if (Permissions.getInstance().mcAbility(player)) {
 | 
			
		||||
            player.sendMessage("/mcability " + LocaleLoader.getString("Commands.ToggleAbility"));
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -77,6 +77,7 @@ public class Config extends ConfigLoader {
 | 
			
		||||
    public boolean getCommandMCCEnabled() { return config.getBoolean("Commands.mcc.Enabled", true); }
 | 
			
		||||
    public boolean getCommandMCGodEnabled() { return config.getBoolean("Commands.mcgod.Enabled", true); }
 | 
			
		||||
    public boolean getCommandMCStatsEnabled() { return config.getBoolean("Commands.mcstats.Enabled", true); }
 | 
			
		||||
    public boolean getCommandSkillResetEnabled() { return config.getBoolean("Commands.skillreset.Enabled", true); }
 | 
			
		||||
    public boolean getCommandMmoeditEnabled() { return config.getBoolean("Commands.mmoedit.Enabled", true); }
 | 
			
		||||
    public boolean getCommandMCRemoveEnabled() { return config.getBoolean("Commands.mcremove.Enable", true); }
 | 
			
		||||
    public boolean getCommandPTPEnabled() { return config.getBoolean("Commands.ptp.Enabled", true); }
 | 
			
		||||
 
 | 
			
		||||
@@ -903,6 +903,21 @@ public class PlayerProfile {
 | 
			
		||||
    public void skillUp(SkillType skillType, int newValue) {
 | 
			
		||||
        skills.put(skillType, skills.get(skillType) + newValue);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public void resetSkill(SkillType skillType)
 | 
			
		||||
    {
 | 
			
		||||
    	//do a single skilltype
 | 
			
		||||
    	if (skillType != SkillType.ALL)
 | 
			
		||||
    		skills.put(skillType, 0);
 | 
			
		||||
    	else //do them all
 | 
			
		||||
    	{
 | 
			
		||||
    		for(SkillType skill : SkillType.values()) //iterate over all items in the enumeration
 | 
			
		||||
    		{
 | 
			
		||||
    			if (skill != SkillType.ALL) // skip the "all" value
 | 
			
		||||
    				skills.put(skill,  0);
 | 
			
		||||
    		}
 | 
			
		||||
    	}
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
//    /**
 | 
			
		||||
//     * Adds XP to the player, doesn't calculate for XP Rate
 | 
			
		||||
 
 | 
			
		||||
@@ -21,6 +21,7 @@ import com.gmail.nossr50.commands.general.InspectCommand;
 | 
			
		||||
import com.gmail.nossr50.commands.general.McstatsCommand;
 | 
			
		||||
import com.gmail.nossr50.commands.general.MmoeditCommand;
 | 
			
		||||
import com.gmail.nossr50.commands.general.MmoupdateCommand;
 | 
			
		||||
import com.gmail.nossr50.commands.general.SkillResetCommand;
 | 
			
		||||
import com.gmail.nossr50.commands.general.XprateCommand;
 | 
			
		||||
import com.gmail.nossr50.commands.mc.McabilityCommand;
 | 
			
		||||
import com.gmail.nossr50.commands.mc.MccCommand;
 | 
			
		||||
@@ -365,6 +366,10 @@ public class mcMMO extends JavaPlugin {
 | 
			
		||||
            getCommand("mcstats").setExecutor(new McstatsCommand());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (configInstance.getCommandMCStatsEnabled()) {
 | 
			
		||||
            getCommand("skillreset").setExecutor(new SkillResetCommand());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Party commands
 | 
			
		||||
        if (configInstance.getCommandAcceptEnabled()) {
 | 
			
		||||
            getCommand("accept").setExecutor(new AcceptCommand(this));
 | 
			
		||||
 
 | 
			
		||||
@@ -383,6 +383,11 @@ public class Permissions {
 | 
			
		||||
    public boolean party(Player player) {
 | 
			
		||||
        return player.hasPermission("mcmmo.commands.party");
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public boolean skillReset(Player player) {
 | 
			
		||||
        return player.hasPermission("mcmmo.skillreset");
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * MCMMO.CHAT.*
 | 
			
		||||
 
 | 
			
		||||
@@ -321,6 +321,8 @@ Commands:
 | 
			
		||||
        Enabled: true
 | 
			
		||||
    mcstats:
 | 
			
		||||
        Enabled: true
 | 
			
		||||
    skillreset:
 | 
			
		||||
        Enabled: true
 | 
			
		||||
    mcability:
 | 
			
		||||
        Enabled: true
 | 
			
		||||
    party:
 | 
			
		||||
 
 | 
			
		||||
@@ -410,6 +410,9 @@ Commands.Party=<party-name> [[RED]]- Create/Join designated party
 | 
			
		||||
Commands.PowerLevel.Leaderboard=[[YELLOW]]--mcMMO[[BLUE]] Power Level [[YELLOW]]Leaderboard--
 | 
			
		||||
Commands.PowerLevel.Capped=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0} [[DARK_RED]]MAX LEVEL: [[YELLOW]]{1}
 | 
			
		||||
Commands.PowerLevel=[[DARK_RED]]POWER LEVEL: [[GREEN]]{0}
 | 
			
		||||
Commands.Reset.All=[[GREEN]]All of your skill levels have been reset successfully.
 | 
			
		||||
Commands.Reset.Single=[[GREEN]]Your {0} skill level has been reset successfully.
 | 
			
		||||
Commands.Reset=[[RED]]Reset a skill's level to 0
 | 
			
		||||
Commands.Skill.Invalid=[[RED]]That is not a valid skillname!
 | 
			
		||||
Commands.Skill.Leaderboard=[[YELLOW]]--mcMMO [[BLUE]]{0}[[YELLOW]] Leaderboard--
 | 
			
		||||
Commands.SkillInfo=/<skill> [[RED]]- View detailed information about a skill
 | 
			
		||||
 
 | 
			
		||||
@@ -73,6 +73,9 @@ commands:
 | 
			
		||||
    p:
 | 
			
		||||
        aliases: [pc]
 | 
			
		||||
        description: Toggle Party chat or send party chat messages
 | 
			
		||||
    skillreset:
 | 
			
		||||
        aliases: []
 | 
			
		||||
        description: Reset the level of one or all of your skills
 | 
			
		||||
    excavation:
 | 
			
		||||
        aliases: []
 | 
			
		||||
        description: Detailed skill info
 | 
			
		||||
@@ -583,4 +586,6 @@ permissions:
 | 
			
		||||
    mcmmo.skills.axes:
 | 
			
		||||
        description: Allows access to the Axes skill
 | 
			
		||||
    mcmmo.skills.acrobatics:
 | 
			
		||||
        description: Allows access to the Acrobatics skill
 | 
			
		||||
        description: Allows access to the Acrobatics skill
 | 
			
		||||
    mcmmo.skillreset:
 | 
			
		||||
        description: Allow reset of skill levels
 | 
			
		||||
		Reference in New Issue
	
	Block a user