Added /addlevels command (Implements MCCORE-23)

This commit is contained in:
GJ 2012-02-24 21:05:01 -05:00
parent 73f1c08366
commit 649bccb0d0
7 changed files with 133 additions and 2 deletions

View File

@ -17,6 +17,7 @@ Version 1.3.00-dev
+ Added Blast Mining subskills to Mining
+ Added Fast Food Service subskill to Taming
+ Added size limit to Tree Feller in config as Tree Feller Threshold
+ Added /addlevels command
+ Re-added mcMMO reporting damage events
= Fixed bug where Swords command showed Bleed Length twice instead of Bleed Chance
= Fixed bug where Tree Feller wasn't checking for Tree Feller permission

View File

@ -0,0 +1,87 @@
package com.gmail.nossr50.commands.general;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import com.gmail.nossr50.Users;
import com.gmail.nossr50.m;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.mcPermissions;
import com.gmail.nossr50.config.LoadProperties;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.locale.mcLocale;
import com.gmail.nossr50.skills.Skills;
public class AddlevelsCommand implements CommandExecutor{
private final mcMMO plugin;
public AddlevelsCommand(mcMMO instance) {
this.plugin = instance;
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player player = null;
if (sender instanceof Player) {
player = (Player) sender;
}
if (player != null && !mcPermissions.getInstance().mmoedit(player)) {
sender.sendMessage("This command requires permissions.");
return true;
}
if (!LoadProperties.addlevelsEnable) {
sender.sendMessage("This command is not enabled.");
return true;
}
if (!(sender instanceof Player)) {
if (args.length < 2) {
System.out.println("Usage is /addlevels playername skillname levels");
return true;
} else if (args.length == 3) {
if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) {
int levels = Integer.valueOf(args[2]);
Users.getProfile(plugin.getServer().getPlayer(args[0])).addLevels(Skills.getSkillType(args[1]), levels);
System.out.println(args[1] + " has been modified for " + plugin.getServer().getPlayer(args[0]).getName() + ".");
}
} else {
System.out.println("Usage is /addlevels playername skillname levels");
}
return true;
}
PlayerProfile PP = Users.getProfile(player);
if (!mcPermissions.getInstance().mmoedit(player)) {
player.sendMessage(ChatColor.YELLOW + "[mcMMO] " + ChatColor.DARK_RED + mcLocale.getString("mcPlayerListener.NoPermission"));
return true;
}
if (args.length < 2) {
player.sendMessage(ChatColor.RED + "Usage is /addlevels playername skillname levels");
return true;
}
if (args.length == 3) {
if ((plugin.getServer().getPlayer(args[0]) != null) && m.isInt(args[2]) && Skills.isSkill(args[1])) {
int levels = Integer.valueOf(args[2]);
Users.getProfile(plugin.getServer().getPlayer(args[0])).addLevels(Skills.getSkillType(args[1]), levels);
player.sendMessage(ChatColor.RED + args[1] + " has been modified.");
}
} else if (args.length == 2) {
if (m.isInt(args[1]) && Skills.isSkill(args[0])) {
int levels = Integer.valueOf(args[1]);
PP.addLevels(Skills.getSkillType(args[0]), levels);
player.sendMessage(ChatColor.RED + args[0] + " has been modified.");
}
} else {
player.sendMessage(ChatColor.RED + "Usage is /addlevels playername skillname newvalue");
}
return true;
}
}

View File

@ -44,7 +44,7 @@ public class LoadProperties {
mccEnable, mcmmoEnable, partyEnable, inviteEnable, acceptEnable,
whoisEnable, mcstatsEnable, addxpEnable, ptpEnable, mmoeditEnable,
clearmyspawnEnable, mcgodEnable, mcabilityEnable, mctopEnable,
mcrefreshEnable, aEnable, pEnable, enableMotd, enableMySpawn,
addlevelsEnable, mcrefreshEnable, aEnable, pEnable, enableMotd, enableMySpawn,
enableCobbleToMossy, useMySQL, toolsLoseDurabilityFromAbilities,
pvpxp, miningrequirespickaxe, excavationRequiresShovel,
woodcuttingrequiresaxe, anvilmessages, mayDowngradeEnchants,
@ -400,6 +400,7 @@ public class LoadProperties {
xprateEnable = readBoolean("Commands.xprate.Enabled", true);
mctopEnable = readBoolean("Commands.mctop.Enabled", true);
addxpEnable = readBoolean("Commands.addxp.Enabled", true);
addlevelsEnable = readBoolean("Commands.addlevels.Enabled", true);
mcabilityEnable = readBoolean("Commands.mcability.Enabled", true);
mcrefreshEnable = readBoolean("Commands.mcrefresh.Enabled", true);
mcmmoEnable = readBoolean("Commands.mcmmo.Enabled", true);

View File

@ -1069,9 +1069,45 @@ public class PlayerProfile
skillsXp.put(SkillType.FISHING, 0);
} else {
skills.put(skillType, newvalue);
skillsXp.put(skillType, newvalue);
skillsXp.put(skillType, 0);
}
}
public void addLevels(SkillType skillType, int levels)
{
if(skillType == SkillType.ALL)
{
skills.put(SkillType.TAMING, skills.get(SkillType.TAMING)+levels);
skills.put(SkillType.MINING, skills.get(SkillType.MINING)+levels);
skills.put(SkillType.WOODCUTTING, skills.get(SkillType.WOODCUTTING)+levels);
skills.put(SkillType.REPAIR, skills.get(SkillType.REPAIR)+levels);
skills.put(SkillType.HERBALISM, skills.get(SkillType.HERBALISM)+levels);
skills.put(SkillType.ACROBATICS, skills.get(SkillType.ACROBATICS)+levels);
skills.put(SkillType.SWORDS, skills.get(SkillType.SWORDS)+levels);
skills.put(SkillType.ARCHERY, skills.get(SkillType.ARCHERY)+levels);
skills.put(SkillType.UNARMED, skills.get(SkillType.UNARMED)+levels);
skills.put(SkillType.EXCAVATION, skills.get(SkillType.EXCAVATION)+levels);
skills.put(SkillType.AXES, skills.get(SkillType.AXES)+levels);
skills.put(SkillType.FISHING, skills.get(SkillType.FISHING)+levels);
skillsXp.put(SkillType.TAMING, 0);
skillsXp.put(SkillType.MINING, 0);
skillsXp.put(SkillType.WOODCUTTING, 0);
skillsXp.put(SkillType.REPAIR, 0);
skillsXp.put(SkillType.HERBALISM, 0);
skillsXp.put(SkillType.ACROBATICS, 0);
skillsXp.put(SkillType.SWORDS, 0);
skillsXp.put(SkillType.ARCHERY, 0);
skillsXp.put(SkillType.UNARMED, 0);
skillsXp.put(SkillType.EXCAVATION, 0);
skillsXp.put(SkillType.AXES, 0);
skillsXp.put(SkillType.FISHING, 0);
} else {
skills.put(skillType, skills.get(skillType)+levels);
skillsXp.put(skillType, 0);
}
}
public Integer getXpToLevel(SkillType skillType)
{
return (int) ((1020+(skills.get(skillType) * 20)));

View File

@ -313,6 +313,7 @@ public class mcMMO extends JavaPlugin
//Other commands
if(LoadProperties.addxpEnable) getCommand("addxp").setExecutor(new AddxpCommand(this));
if(LoadProperties.addlevelsEnable) getCommand("addlevels").setExecutor(new AddlevelsCommand(this));
if(LoadProperties.clearmyspawnEnable) getCommand("clearmyspawn").setExecutor(new ClearmyspawnCommand());
if(LoadProperties.mmoeditEnable) getCommand("mmoedit").setExecutor(new MmoeditCommand(this));
getCommand("mmoupdate").setExecutor(new MmoupdateCommand());

View File

@ -1134,6 +1134,8 @@ Commands:
Enabled: true
addxp:
Enabled: true
addlevels:
Enabled: true
clearmyspawn:
Enabled: true
ptp:

View File

@ -24,6 +24,9 @@ commands:
addxp:
description: Add XP to a user
permission: mcmmo.tools.mmoedit
addlevels:
description: Add levels to a user
permission: mcmmo.tools.mmoedit
mcability:
description: Toggle whether or not abilities get readied on right click
permission: mcmmo.commands.ability