package consolecommands; import java.io.File; import java.util.List; import javax.xml.bind.annotation.*; import com.aionemu.gameserver.model.gameobjects.VisibleObject; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.utils.PacketSendUtility; import com.aionemu.gameserver.utils.chathandlers.ConsoleCommand; import com.aionemu.gameserver.utils.xml.JAXBUtil; /** * @author ginho1 */ public class Addcskill extends ConsoleCommand { public Addcskill() { super("addcskill"); } @Override public void execute(Player admin, String... params) { if (params.length < 1) { info(admin, null); return; } final VisibleObject target = admin.getTarget(); if (target == null) { PacketSendUtility.sendMessage(admin, "No target selected."); return; } if (!(target instanceof Player)) { PacketSendUtility.sendMessage(admin, "This command can only be used on a player!"); return; } final Player player = (Player) target; String skillName = params[0]; int skillId = 0; File xml = new File("./data/handlers/consolecommands/data/skills.xml"); SkillData data = JAXBUtil.deserialize(xml, SkillData.class); SkillTemplate skillTemplate = data.getSkillTemplate(skillName); if (skillTemplate != null) skillId = skillTemplate.getSkillId(); if (skillId > 0) { player.getSkillList().addSkill(player, skillId, 1); PacketSendUtility.sendMessage(admin, "You have success add skill"); } } @Override public void info(Player admin, String message) { PacketSendUtility.sendMessage(admin, "syntax ///addcskill "); } @XmlRootElement(name = "skill") @XmlAccessorType(XmlAccessType.FIELD) private static class SkillTemplate { @XmlAttribute(name = "id", required = true) private int skillId; @XmlAttribute(name = "name") private String name; public String getName() { return name; } public int getSkillId() { return skillId; } } @XmlRootElement(name = "skills") @XmlAccessorType(XmlAccessType.FIELD) private static class SkillData { @XmlElement(name = "skill") private List its; public SkillTemplate getSkillTemplate(String skill) { for (SkillTemplate it : getData()) { if (it.getName().toLowerCase().equals(skill.toLowerCase())) return it; } return null; } protected List getData() { return its; } } }