package consolecommands; import java.io.File; import java.util.List; import javax.xml.bind.Unmarshaller; import javax.xml.bind.annotation.*; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.services.teleport.TeleportService; import com.aionemu.gameserver.utils.PacketSendUtility; import com.aionemu.gameserver.utils.chathandlers.ConsoleCommand; import com.aionemu.gameserver.utils.xml.JAXBUtil; /** * @author ginho1 */ public class Teleport_to_named extends ConsoleCommand { public Teleport_to_named() { super("teleport_to_named"); } @Override public void execute(Player admin, String... params) { if (params.length < 1) { info(admin, null); return; } String npcName = params[0]; File xml = new File("./data/handlers/consolecommands/data/npcs.xml"); NpcData data = JAXBUtil.deserialize(xml, NpcData.class); NpcTemplate npcTemplate = data.getNpcTemplate(npcName); if (npcTemplate != null) { PacketSendUtility.sendMessage(admin, "Teleporting to Npc: " + npcTemplate.getTemplateId()); TeleportService.teleportToNpc(admin, npcTemplate.getTemplateId()); } } @Override public void info(Player admin, String message) { PacketSendUtility.sendMessage(admin, "syntax ///teleport_to_named "); } @XmlAccessorType(XmlAccessType.NONE) @XmlType(namespace = "", name = "NpcTemplate") private static class NpcTemplate { @XmlAttribute(name = "id", required = true) @XmlID private String id; @XmlAttribute(name = "name") private String name; public String getName() { return name; } public int getTemplateId() { return npcId; } private int npcId; public void setNpcId(int npcId) { this.npcId = npcId; } @SuppressWarnings("unused") void afterUnmarshal(Unmarshaller u, Object parent) { setNpcId(Integer.parseInt(id)); } } @XmlRootElement(name = "npcs") @XmlAccessorType(XmlAccessType.FIELD) private static class NpcData { @XmlElement(name = "npc") private List its; public NpcTemplate getNpcTemplate(String npc) { for (NpcTemplate it : getData()) { if (it.getName().toLowerCase().equals(npc.toLowerCase())) return it; } return null; } protected List getData() { return its; } } }