Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package admincommands;
- import com.aionengine.gameserver.configs.administration.AdminConfig;
- import com.aionengine.gameserver.dataholders.DataManager;
- import com.aionengine.gameserver.dataholders.SpawnsData;
- import com.aionengine.gameserver.model.gameobjects.player.Player;
- import com.aionengine.gameserver.model.templates.WorldMapTemplate;
- import com.aionengine.gameserver.model.templates.spawn.SpawnGroup;
- import com.aionengine.gameserver.utils.PacketSendUtility;
- import com.aionengine.gameserver.utils.chathandlers.AdminCommand;
- import org.apache.log4j.Logger;
- import org.xml.sax.SAXException;
- import javax.xml.XMLConstants;
- import javax.xml.bind.JAXBContext;
- import javax.xml.bind.JAXBException;
- import javax.xml.bind.Marshaller;
- import javax.xml.validation.Schema;
- import javax.xml.validation.SchemaFactory;
- import java.io.File;
- import java.util.List;
- /**
- * @author Luno
- * @author ATracer (xml version)
- */
- public class SaveSpawnData extends AdminCommand {
- private static Logger log = Logger.getLogger(SaveSpawnData.class);
- public SaveSpawnData() {
- super("save_spawn");
- }
- @Override
- public void executeCommand(Player admin, String[] params) {
- if (admin.getAccessLevel() < AdminConfig.COMMAND_SAVESPAWNDATA) {
- PacketSendUtility.sendMessage(admin, "You dont have enough rights to execute this command");
- return;
- }
- Schema schema = null;
- SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
- try {
- schema = sf.newSchema(new File("./data/static_data/spawns/spawns.xsd"));
- }
- catch (SAXException e1) {
- log.error(e1.getCause());
- PacketSendUtility.sendMessage(admin, "Unexpected error occured during saving");
- return;
- }
- boolean isAllSave = params.length == 1 && "all".equalsIgnoreCase(params[0]);
- SpawnsData spawnsData = DataManager.SPAWNS_DATA;
- for (WorldMapTemplate template : DataManager.WORLD_MAPS_DATA) {
- List<SpawnGroup> spawnsForWorld = null;
- if (isAllSave)
- spawnsForWorld = spawnsData.getSpawnsForWorld(template.getMapId());
- else
- spawnsForWorld = spawnsData.getNewSpawnsForWorld(template.getMapId());
- if (spawnsForWorld != null && spawnsForWorld.size() > 0) {
- SpawnsData data = new SpawnsData();
- data.getSpawnGroups().addAll(spawnsForWorld);
- File xml = new File("./data/static_data/spawns/new/" + template.getMapId() + ".xml");
- JAXBContext jc;
- Marshaller marshaller;
- try {
- jc = JAXBContext.newInstance(SpawnsData.class);
- marshaller = jc.createMarshaller();
- marshaller.setSchema(schema);
- marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
- marshaller.marshal(data, xml);
- }
- catch (JAXBException e) {
- log.error(e.getCause());
- PacketSendUtility.sendMessage(admin, "Unexpected error occured during saving");
- return;
- }
- }
- }
- PacketSendUtility.sendMessage(admin, "Spawn data was saved into /static_data/spawns/new folder");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement