1
0
mirror of https://github.com/Rogiel/l2jserver2 synced 2025-12-05 23:22:47 +00:00

Implements automatically generated template classes from XSD schemas

This commit is contained in:
2011-12-31 13:09:56 -02:00
parent 273b872d53
commit beea690568
3394 changed files with 15664 additions and 10012 deletions

View File

@@ -34,17 +34,8 @@ import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamResult;
import com.l2jserver.model.id.template.CharacterTemplateID;
import com.l2jserver.model.template.character.CharacterTemplate;
import com.l2jserver.model.template.character.CharacterTemplate.CharacterStatsMetadata;
import com.l2jserver.model.template.character.CharacterTemplate.CollitionMetadataContainer;
import com.l2jserver.model.template.character.CharacterTemplate.CharacterStatsMetadata.AttackMetadata;
import com.l2jserver.model.template.character.CharacterTemplate.CharacterStatsMetadata.BaseMetadata;
import com.l2jserver.model.template.character.CharacterTemplate.CharacterStatsMetadata.DefenseMetadata;
import com.l2jserver.model.template.character.CharacterTemplate.CharacterStatsMetadata.MoveMetadata;
import com.l2jserver.model.template.character.CharacterTemplate.CharacterStatsMetadata.Stat;
import com.l2jserver.model.template.character.CharacterTemplate.CharacterStatsMetadata.AttackMetadata.AttackValueMetadata;
import com.l2jserver.model.template.character.CharacterTemplate.CharacterStatsMetadata.DefenseMetadata.DefenseValueMetadata;
import com.l2jserver.model.template.character.CharacterTemplate.CollitionMetadataContainer.CollisionMetadata;
import com.l2jserver.model.template.CharacterTemplate;
import com.l2jserver.model.template.ObjectFactory;
/**
* The need to use this package to get access to protected fields.
@@ -88,7 +79,8 @@ public class CharacterTemplateConverter {
CharacterTemplate t = fillTemplate(rs);
final File file = new File(target, "character/"
+ camelCase(t.getCharacterClass().name()) + ".xml");
+ camelCase(t.getID().getCharacterClass().name())
+ ".xml");
file.getParentFile().mkdirs();
m.marshal(t, file);
@@ -106,68 +98,83 @@ public class CharacterTemplateConverter {
private static CharacterTemplate fillTemplate(ResultSet rs)
throws SQLException {
final CharacterTemplate t = new CharacterTemplate();
t.id = new CharacterTemplateID(rs.getInt("Classid"), null);
final ObjectFactory factory = new ObjectFactory();
t.stats = new CharacterStatsMetadata();
t.stats.hp = new Stat();
t.stats.hp.base = rs.getDouble("defaulthpbase");
t.stats.hp.modifier = rs.getDouble("defaulthpmod");
t.stats.hp.add = rs.getDouble("defaulthpadd");
final CharacterTemplate t = factory.createCharacterTemplate();
t.setID(new CharacterTemplateID(rs.getInt("Classid"), null));
t.setStats(factory.createCharacterTemplateStats());
t.stats.mp = new Stat();
t.stats.mp.base = rs.getDouble("defaultmpbase");
t.stats.mp.modifier = rs.getDouble("defaultmpmod");
t.stats.mp.add = rs.getDouble("defaultmpadd");
t.getStats().setHp(factory.createCharacterTemplateStatsHp());
t.getStats().getHp().setBase(rs.getDouble("defaulthpbase"));
t.getStats().getHp().setModifier(rs.getDouble("defaulthpmod"));
t.getStats().getHp().setAdd(rs.getDouble("defaulthpadd"));
t.stats.cp = new Stat();
t.stats.cp.base = rs.getDouble("defaultcpbase");
t.stats.cp.modifier = rs.getDouble("defaultcpmod");
t.stats.cp.add = rs.getDouble("defaultcpadd");
t.getStats().setMp(factory.createCharacterTemplateStatsMp());
t.getStats().getMp().setBase(rs.getDouble("defaultmpbase"));
t.getStats().getMp().setModifier(rs.getDouble("defaultmpmod"));
t.getStats().getMp().setAdd(rs.getDouble("defaultmpadd"));
t.stats.base = new BaseMetadata();
t.stats.base.intelligence = rs.getInt("_INT");
t.stats.base.strength = rs.getInt("STR");
t.stats.base.concentration = rs.getInt("CON");
t.stats.base.mentality = rs.getInt("MEN");
t.stats.base.dexterity = rs.getInt("DEX");
t.stats.base.witness = rs.getInt("WIT");
t.getStats().setCp(factory.createCharacterTemplateStatsCp());
t.getStats().getCp().setBase(rs.getDouble("defaultcpbase"));
t.getStats().getCp().setModifier(rs.getDouble("defaultcpmod"));
t.getStats().getCp().setAdd(rs.getDouble("defaultcpadd"));
t.stats.attack = new AttackMetadata();
t.stats.attack.critical = rs.getInt("CRITICAL");
t.stats.attack.evasion = rs.getInt("EVASION");
t.stats.attack.accuracy = rs.getInt("ACC");
t.getStats().setBase(factory.createCharacterTemplateStatsBase());
t.getStats().getBase().setInt(rs.getInt("_INT"));
t.getStats().getBase().setStr(rs.getInt("STR"));
t.getStats().getBase().setCon(rs.getInt("CON"));
t.getStats().getBase().setMen(rs.getInt("MEN"));
t.getStats().getBase().setDex(rs.getInt("DEX"));
t.getStats().getBase().setWit(rs.getInt("WIT"));
t.stats.attack.physical = new AttackValueMetadata();
t.stats.attack.physical.damage = rs.getDouble("P_ATK");
t.stats.attack.physical.speed = rs.getDouble("P_SPD");
t.stats.attack.magical = new AttackValueMetadata();
t.stats.attack.magical.damage = rs.getDouble("M_ATK");
t.stats.attack.magical.speed = rs.getDouble("M_SPD");
t.getStats().setAttack(factory.createCharacterTemplateStatsAttack());
t.getStats().getAttack().setCritical(rs.getInt("CRITICAL"));
t.getStats().getAttack().setEvasion(rs.getInt("EVASION"));
t.getStats().getAttack().setAccuracy(rs.getInt("ACC"));
t.stats.defense = new DefenseMetadata();
t.stats.defense.physical = new DefenseValueMetadata();
t.stats.defense.physical.value = rs.getDouble("P_DEF");
t.stats.defense.magical = new DefenseValueMetadata();
t.stats.defense.magical.value = rs.getDouble("M_DEF");
t.getStats()
.getAttack()
.setPhysical(
factory.createCharacterTemplateStatsAttackPhysical());
t.getStats().getAttack().getPhysical().setDamage(rs.getDouble("P_ATK"));
t.getStats().getAttack().getPhysical().setSpeed(rs.getDouble("P_SPD"));
t.getStats()
.getAttack()
.setMagical(factory.createCharacterTemplateStatsAttackMagical());
t.getStats().getAttack().getMagical().setDamage(rs.getDouble("M_ATK"));
t.getStats().getAttack().getMagical().setSpeed(rs.getDouble("M_SPD"));
t.stats.move = new MoveMetadata();
t.stats.move.run = rs.getInt("MOVE_SPD");
t.getStats().setDefense(factory.createCharacterTemplateStatsDefense());
t.getStats()
.getDefense()
.setPhysical(
factory.createCharacterTemplateStatsDefensePhysical());
t.getStats().getDefense().getPhysical().setValue(rs.getDouble("P_DEF"));
t.getStats()
.getDefense()
.setMagical(
factory.createCharacterTemplateStatsDefenseMagical());
t.getStats().getDefense().getMagical().setValue(rs.getDouble("M_DEF"));
t.getStats().setMove(factory.createCharacterTemplateStatsMove());
t.getStats().getMove().setRun(rs.getInt("MOVE_SPD"));
// TODO this is not really the same
t.getStats().getMove().setWalk(rs.getInt("MOVE_SPD"));
// TODO this is not really the same
t.stats.move.walk = rs.getInt("MOVE_SPD");
t.stats.level = rs.getInt("class_lvl");
t.stats.maximumLoad = rs.getInt("_LOAD");
t.stats.crafter = rs.getBoolean("canCraft");
t.getStats().setLevel(rs.getInt("class_lvl"));
t.getStats().setMaxload(rs.getInt("_LOAD"));
t.getStats().setCrafter(rs.getBoolean("canCraft"));
t.collision = new CollitionMetadataContainer();
t.collision.male = new CollisionMetadata();
t.collision.male.radius = rs.getDouble("M_COL_R");
t.collision.male.height = rs.getDouble("M_COL_H");
t.collision.female = new CollisionMetadata();
t.collision.female.radius = rs.getDouble("F_COL_R");
t.collision.female.height = rs.getDouble("F_COL_H");
t.setCollision(factory.createCharacterTemplateCollision());
t.getCollision()
.setMale(factory.createCharacterTemplateCollisionMale());
t.getCollision().getMale().setRadius(rs.getDouble("M_COL_R"));
t.getCollision().getMale().setHeigth(rs.getDouble("M_COL_R"));
t.getCollision().setFemale(
factory.createCharacterTemplateCollisionFemale());
t.getCollision().getMale().setRadius(rs.getDouble("F_COL_R"));
t.getCollision().getMale().setHeigth(rs.getDouble("F_COL_R"));
return t;
}

View File

@@ -46,27 +46,14 @@ import com.l2jserver.model.id.template.ItemTemplateID;
import com.l2jserver.model.id.template.NPCTemplateID;
import com.l2jserver.model.id.template.SkillTemplateID;
import com.l2jserver.model.id.template.TeleportationTemplateID;
import com.l2jserver.model.template.NPCTemplate;
import com.l2jserver.model.template.NPCTemplate.Droplist;
import com.l2jserver.model.template.NPCTemplate.Droplist.Item.DropCategory;
import com.l2jserver.model.template.NPCTemplate.Skills;
import com.l2jserver.model.template.NPCTemplate.Talk;
import com.l2jserver.model.template.NPCTemplate.Talk.Chat;
import com.l2jserver.model.template.ObjectFactory;
import com.l2jserver.model.template.actor.ActorSex;
import com.l2jserver.model.template.npc.NPCRace;
import com.l2jserver.model.template.npc.NPCTemplate;
import com.l2jserver.model.template.npc.NPCTemplate.DropItemMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.SkillMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.TalkMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.DropItemMetadata.DropCategory;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.CollisionMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.ItemMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.NPCNameMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.NPCStatsMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.NPCTitleMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.NPCStatsMetadata.AttackMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.NPCStatsMetadata.BaseMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.NPCStatsMetadata.DefenseMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.NPCStatsMetadata.MoveMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.NPCStatsMetadata.Stat;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.NPCStatsMetadata.AttackMetadata.AttackValueMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.NPCInformationMetadata.NPCStatsMetadata.DefenseMetadata.DefenseValueMetadata;
import com.l2jserver.model.template.npc.NPCTemplate.TalkMetadata.Chat;
import com.l2jserver.model.template.npc.TeleportationTemplate.TeleportRestriction;
import com.l2jserver.model.world.npc.BaseNPCController;
import com.l2jserver.model.world.npc.NPCController;
@@ -81,11 +68,11 @@ import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
@SuppressWarnings("restriction")
public class NPCTemplateConverter {
private static final String JDBC_URL = "jdbc:mysql://localhost/l2jlegacy";
private static final String JDBC_USERNAME = "l2j";
private static final String JDBC_PASSWORD = "changeme";
private static final String JDBC_URL = "jdbc:mysql://localhost/l2jserver_legacy";
private static final String JDBC_USERNAME = "root";
private static final String JDBC_PASSWORD = "";
private static final File L2J_HTML_FOLDER = new File(
"../L2J_DataPack_BETA/data/html");
"../../L2J_DataPack_BETA/dist/game/data/html");
private static final Map<String, Class<? extends NPCController>> controllers = CollectionFactory
.newMap();
@@ -104,7 +91,7 @@ public class NPCTemplateConverter {
Class.forName("com.mysql.jdbc.Driver");
final File target = new File("generated/template/npc");
System.out.println("Scaning legacy HTML files...");
htmlScannedFiles = FileUtils.listFiles(L2J_HTML_FOLDER, new String[] {
"html", "htm" }, true);
@@ -147,15 +134,15 @@ public class NPCTemplateConverter {
}
System.out.println("Generating template XML files...");
c.generateSchema(new SchemaOutputResolver() {
@Override
public Result createOutput(String namespaceUri,
String suggestedFileName) throws IOException {
// System.out.println(new File(target, suggestedFileName));
// return null;
return new StreamResult(new File(target, suggestedFileName));
}
});
// c.generateSchema(new SchemaOutputResolver() {
// @Override
// public Result createOutput(String namespaceUri,
// String suggestedFileName) throws IOException {
// // System.out.println(new File(target, suggestedFileName));
// // return null;
// return new StreamResult(new File(target, suggestedFileName));
// }
// });
try {
final Marshaller m = c.createMarshaller();
@@ -186,10 +173,10 @@ public class NPCTemplateConverter {
final File file = new File(target, "npc/"
+ folder
+ "/"
+ t.id.getID()
+ (t.info.nameMetadata != null ? "-"
+ camelCase(t.info.nameMetadata.name) : "")
+ ".xml");
+ t.getID().getID()
+ (t.getInfo().getName() != null ? "-"
+ camelCase(t.getInfo().getName().getValue())
: "") + ".xml");
file.getParentFile().mkdirs();
templates.add(t);
@@ -198,7 +185,9 @@ public class NPCTemplateConverter {
} catch (MarshalException e) {
System.err
.println("Could not generate XML template file for "
+ t.getName() + " - " + t.getID());
+ t.getInfo().getName().getValue()
+ " - "
+ t.getID());
file.delete();
}
}
@@ -227,105 +216,136 @@ public class NPCTemplateConverter {
private static Object[] fillNPC(ResultSet rs) throws SQLException,
IOException {
final NPCTemplate template = new NPCTemplate();
template.id = new NPCTemplateID(rs.getInt("idTemplate"), null);
final ObjectFactory factory = new ObjectFactory();
template.controller = controllers.get(rs.getString("type"));
if (template.controller == null)
template.controller = NotImplementedNPCController.class;
template.info = new NPCInformationMetadata();
final NPCTemplate template = factory.createNPCTemplate();
template.setID(new NPCTemplateID(rs.getInt("idTemplate"), null));
template.info.nameMetadata = new NPCNameMetadata();
template.info.nameMetadata.name = rs.getString("name");
template.info.nameMetadata.display = rs.getBoolean("show_name");
template.info.nameMetadata.send = rs.getBoolean("serverSideName");
template.setController(controllers.get(rs.getString("type")));
if (template.getController() == null)
template.setController(NotImplementedNPCController.class);
template.setInfo(factory.createNPCTemplateInfo());
template.info.titleMetadata = new NPCTitleMetadata();
template.info.titleMetadata.title = rs.getString("title");
template.info.titleMetadata.send = rs.getBoolean("serverSideTitle");
template.getInfo().setName(factory.createNPCTemplateInfoName());
template.getInfo().getName().setValue(rs.getString("name"));
//template.getInfo().getName().setDisplay(rs.getBoolean("show_name"));
template.getInfo().getName().setSend(rs.getBoolean("serverSideName"));
if (template.info.titleMetadata.title.length() == 0)
template.info.titleMetadata = null;
if (template.info.nameMetadata.name.length() == 0)
template.info.nameMetadata = null;
template.getInfo().setTitle(factory.createNPCTemplateInfoTitle());
template.getInfo().getTitle().setValue(rs.getString("title"));
template.getInfo().getTitle().setSend(rs.getBoolean("serverSideTitle"));
template.info.level = rs.getInt("level");
template.info.race = getRace(rs.getInt("race"));
if (template.getInfo().getName().getValue().length() == 0)
template.getInfo().setName(null);
if (template.getInfo().getTitle().getValue().length() == 0)
template.getInfo().setTitle(null);
template.getInfo().setLevel(rs.getInt("level"));
template.getInfo().setRace(getRace(rs.getInt("race")));
if (!rs.getString("sex").equals("etc"))
template.info.sex = ActorSex.valueOf(rs.getString("sex")
.toUpperCase());
template.getInfo().setSex(
ActorSex.valueOf(rs.getString("sex").toUpperCase()));
// template.info.attackable = rs.getBoolean("attackable");
template.info.targetable = rs.getBoolean("targetable");
template.info.aggressive = rs.getBoolean("aggro");
template.info.attackable = true; // FIXME
//template.getInfo().setTargetable(rs.getBoolean("targetable"));
template.getInfo().setTargetable(true);
//template.getInfo().setAggressive(rs.getBoolean("aggro"));
template.getInfo().setAggressive(true);
template.getInfo().setAttackable(true); // FIXME
template.info.stats = new NPCStatsMetadata();
template.getInfo().setStats(factory.createNPCTemplateInfoStats());
template.info.stats.hp = new Stat();
template.info.stats.hp.max = rs.getDouble("hp");
template.info.stats.hp.regen = rs.getDouble("hpreg");
template.getInfo().getStats()
.setHp(factory.createNPCTemplateInfoStatsHp());
template.getInfo().getStats().getHp().setMax(rs.getDouble("hp"));
template.getInfo().getStats().getHp().setRegen(rs.getDouble("hpreg"));
template.info.stats.mp = new Stat();
template.info.stats.mp.max = rs.getDouble("mp");
template.info.stats.mp.regen = rs.getDouble("mpreg");
template.getInfo().getStats()
.setMp(factory.createNPCTemplateInfoStatsMp());
template.getInfo().getStats().getMp().setMax(rs.getDouble("mp"));
template.getInfo().getStats().getMp().setRegen(rs.getDouble("mpreg"));
template.info.stats.attack = new AttackMetadata();
template.info.stats.attack.range = rs.getInt("attackrange");
template.info.stats.attack.critical = rs.getInt("critical");
template.getInfo().getStats()
.setAttack(factory.createNPCTemplateInfoStatsAttack());
template.getInfo().getStats().getAttack()
.setRange(rs.getInt("attackrange"));
template.getInfo().getStats().getAttack()
.setCritical(rs.getInt("critical"));
template.info.stats.attack.physical = new AttackValueMetadata();
template.info.stats.attack.physical.damage = rs.getDouble("patk");
template.info.stats.attack.physical.speed = rs.getDouble("atkspd");
template.getInfo()
.getStats()
.getAttack()
.setPhysical(factory.createNPCTemplateInfoStatsAttackPhysical());
template.getInfo().getStats().getAttack().getPhysical()
.setDamage(rs.getDouble("patk"));
template.getInfo().getStats().getAttack().getPhysical()
.setSpeed(rs.getDouble("atkspd"));
template.info.stats.attack.magical = new AttackValueMetadata();
template.info.stats.attack.magical.damage = rs.getDouble("matk");
template.info.stats.attack.magical.speed = rs.getDouble("matkspd");
template.getInfo().getStats().getAttack()
.setMagical(factory.createNPCTemplateInfoStatsAttackMagical());
template.getInfo().getStats().getAttack().getMagical()
.setDamage(rs.getDouble("matk"));
template.getInfo().getStats().getAttack().getMagical()
.setSpeed(rs.getDouble("matkspd"));
template.info.stats.defense = new DefenseMetadata();
template.info.stats.defense.physical = new DefenseValueMetadata();
template.info.stats.defense.physical.value = rs.getDouble("pdef");
template.info.stats.defense.magical = new DefenseValueMetadata();
template.info.stats.defense.magical.value = rs.getDouble("mdef");
template.getInfo().getStats()
.setDefense(factory.createNPCTemplateInfoStatsDefense());
template.getInfo()
.getStats()
.getDefense()
.setPhysical(
factory.createNPCTemplateInfoStatsDefensePhysical());
template.getInfo().getStats().getDefense().getPhysical()
.setValue(rs.getDouble("pdef"));
template.getInfo().getStats().getDefense()
.setMagical(factory.createNPCTemplateInfoStatsDefenseMagical());
template.getInfo().getStats().getDefense().getMagical()
.setValue(rs.getDouble("mdef"));
template.info.stats.move = new MoveMetadata();
template.info.stats.move.run = rs.getDouble("runspd");
template.info.stats.move.walk = rs.getDouble("walkspd");
template.getInfo().getStats()
.setMove(factory.createNPCTemplateInfoStatsMove());
template.getInfo().getStats().getMove().setRun(rs.getDouble("runspd"));
template.getInfo().getStats().getMove()
.setWalk(rs.getDouble("walkspd"));
template.info.stats.base = new BaseMetadata();
template.info.stats.base.intelligence = rs.getInt("int");
template.info.stats.base.strength = rs.getInt("str");
template.info.stats.base.concentration = rs.getInt("con");
template.info.stats.base.dexterity = rs.getInt("dex");
template.info.stats.base.witness = rs.getInt("wit");
template.info.stats.base.mentality = rs.getInt("men");
template.getInfo().getStats()
.setBase(factory.createNPCTemplateInfoStatsBase());
template.getInfo().getStats().getBase().setInt(rs.getInt("int"));
template.getInfo().getStats().getBase().setStr(rs.getInt("str"));
template.getInfo().getStats().getBase().setCon(rs.getInt("con"));
template.getInfo().getStats().getBase().setDex(rs.getInt("dex"));
template.getInfo().getStats().getBase().setWit(rs.getInt("wit"));
template.getInfo().getStats().getBase().setMen(rs.getInt("men"));
template.info.experience = rs.getLong("exp");
template.info.sp = rs.getInt("sp");
template.getInfo().setExperience(rs.getLong("exp"));
template.getInfo().setSp(rs.getInt("sp"));
if (rs.getInt("rhand") > 0 || rs.getInt("lhand") > 0)
template.info.item = new ItemMetadata();
template.getInfo().setItem(factory.createNPCTemplateInfoItem());
if (rs.getInt("rhand") > 0)
template.info.item.rightHand = new ItemTemplateID(
rs.getInt("rhand"), null);
template.getInfo().getItem()
.setRightHand(new ItemTemplateID(rs.getInt("rhand"), null));
if (rs.getInt("lhand") > 0)
template.info.item.leftHand = new ItemTemplateID(
rs.getInt("lhand"), null);
template.getInfo().getItem()
.setLeftHand(new ItemTemplateID(rs.getInt("lhand"), null));
template.info.collision = new CollisionMetadata();
template.info.collision.radius = rs.getDouble("collision_radius");
template.info.collision.height = rs.getDouble("collision_height");
template.getInfo().setCollision(
factory.createNPCTemplateInfoCollision());
template.getInfo().getCollision()
.setRadius(rs.getDouble("collision_radius"));
template.getInfo().getCollision()
.setHeigth(rs.getDouble("collision_height"));
template.droplist = fillDropList(rs, template.id.getID());
template.skills = fillSkillList(rs, template.id.getID());
template.talk = fillHtmlChat(template.id.getID());
template.setDroplist(fillDropList(factory, rs, template.getID().getID()));
template.setSkills(fillSkillList(factory, rs, template.getID().getID()));
template.setTalk(fillHtmlChat(factory, template.getID().getID()));
return new Object[] { template, createParentType(rs.getString("type")) };
}
private static List<DropItemMetadata> fillDropList(ResultSet npcRs,
int npcId) throws SQLException {
private static Droplist fillDropList(final ObjectFactory factory,
ResultSet npcRs, int npcId) throws SQLException {
final Connection conn = npcRs.getStatement().getConnection();
final List<DropItemMetadata> drops = CollectionFactory.newList();
final Droplist drops = factory.createNPCTemplateDroplist();
final PreparedStatement st = conn
.prepareStatement("SELECT * FROM droplist WHERE mobId = ?");
@@ -333,23 +353,22 @@ public class NPCTemplateConverter {
st.execute();
final ResultSet rs = st.getResultSet();
while (rs.next()) {
DropItemMetadata m = new DropItemMetadata();
m.item = new ItemTemplateID(rs.getInt("itemId"), null);
m.min = rs.getInt("min");
m.max = rs.getInt("max");
m.chance = rs.getInt("chance");
m.category = getCategory(rs.getInt("category"));
drops.add(m);
final Droplist.Item item = factory.createNPCTemplateDroplistItem();
item.setId( new ItemTemplateID(rs.getInt("itemId"), null));
item.setMin(rs.getInt("min"));
item.setMax( rs.getInt("max"));
item.setChance(rs.getInt("chance"));
item.setCategory(getCategory(rs.getInt("category")));
drops.getItem().add(item);
}
if (drops.size() == 0)
if (drops.getItem().size() == 0)
return null;
return drops;
}
private static TalkMetadata fillHtmlChat(int npcId) throws IOException {
final TalkMetadata talk = new TalkMetadata();
talk.defaultChat = "default";
talk.chats = CollectionFactory.newList();
private static Talk fillHtmlChat(final ObjectFactory factory, int npcId) throws IOException {
final Talk talk = factory.createNPCTemplateTalk();
talk.setDefault("default");
for (final File file : htmlScannedFiles) {
String id = null;
if (file.getName().startsWith(npcId + "-")) {
@@ -362,21 +381,21 @@ public class NPCTemplateConverter {
if (id != null && !file.getAbsolutePath().contains("/half/")
&& !file.getAbsolutePath().contains("/free/")) {
Chat chat = new Chat();
chat.id = id;
chat.html = FileUtils.readFileToString(file);
talk.chats.add(chat);
chat.setId(id);
chat.setValue(FileUtils.readFileToString(file));
talk.getChat().add(chat);
}
}
if (talk.chats.size() == 0)
if (talk.getChat().size() == 0)
return null;
return talk;
}
private static List<SkillMetadata> fillSkillList(ResultSet npcRs, int npcId)
private static Skills fillSkillList(final ObjectFactory factory, ResultSet npcRs, int npcId)
throws SQLException {
final Connection conn = npcRs.getStatement().getConnection();
final List<SkillMetadata> skills = CollectionFactory.newList();
final Skills skills = factory.createNPCTemplateSkills();
final PreparedStatement st = conn
.prepareStatement("SELECT * FROM npcskills WHERE npcid = ?");
@@ -384,12 +403,12 @@ public class NPCTemplateConverter {
st.execute();
final ResultSet rs = st.getResultSet();
while (rs.next()) {
SkillMetadata m = new SkillMetadata();
m.skill = new SkillTemplateID(rs.getInt("skillid"), null);
m.level = rs.getInt("level");
skills.add(m);
Skills.Skill s = factory.createNPCTemplateSkillsSkill();
s.setId(new SkillTemplateID(rs.getInt("skillid"), null));
s.setLevel(rs.getInt("level"));
skills.getSkill().add(s);
}
if (skills.size() == 0)
if (skills.getSkill().size() == 0)
return null;
return skills;
}

View File

@@ -0,0 +1,32 @@
/*
* This file is part of l2jserver2 <l2jserver2.com>.
*
* l2jserver2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* l2jserver2 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with l2jserver2. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.tool.conversor.itemtemplate;
import com.l2jserver.model.template.item.ItemMaterial;
/**
* @author <a href="http://www.rogiel.com">Rogiel</a>
*
*/
public class XmlNsItemMaterialGenerator {
public static void main(String[] args) {
for (final ItemMaterial type : ItemMaterial.values()) {
System.out.println("<xs:enumeration value=\"" + type.name()
+ "\" />");
}
}
}

View File

@@ -0,0 +1,32 @@
/*
* This file is part of l2jserver2 <l2jserver2.com>.
*
* l2jserver2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* l2jserver2 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with l2jserver2. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.tool.conversor.itemtemplate;
import com.l2jserver.model.template.item.ItemType;
/**
* @author <a href="http://www.rogiel.com">Rogiel</a>
*
*/
public class XmlNsItemTypeGenerator {
public static void main(String[] args) {
for (final ItemType type : ItemType.values()) {
System.out.println("<xs:enumeration value=\"" + type.name()
+ "\" />");
}
}
}

View File

@@ -1,62 +0,0 @@
package com.l2jserver.tool.xml;
import java.io.File;
import java.io.IOException;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.SchemaOutputResolver;
import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamResult;
import com.l2jserver.model.template.SkillTemplate;
import com.l2jserver.model.template.character.CharacterTemplate;
import com.l2jserver.model.template.item.ItemTemplate;
import com.l2jserver.model.template.npc.NPCTemplate;
import com.l2jserver.service.game.template.XMLTemplateService.TeleportationTemplateContainer;
public class TemplateSchemaGeneratorMain {
/**
* @param args
* none
* @throws Exception
* any exception
*/
public static void main(String[] args) throws Exception {
final File baseDir = new File("generated/schemas");
JAXBContext context = JAXBContext.newInstance(CharacterTemplate.class,
NPCTemplate.class, ItemTemplate.class, SkillTemplate.class,
TeleportationTemplateContainer.class);
context.generateSchema(new SchemaOutputResolver() {
public Result createOutput(String namespaceUri,
String suggestedFileName) throws IOException {
switch (namespaceUri) {
case "http://schemas.l2jserver2.com/teleport":
suggestedFileName = "teleport.xsd";
break;
case "http://schemas.l2jserver2.com/skill":
suggestedFileName = "skill.xsd";
break;
case "http://schemas.l2jserver2.com/npc":
suggestedFileName = "npc.xsd";
break;
case "http://schemas.l2jserver2.com/item":
suggestedFileName = "item.xsd";
break;
case "http://schemas.l2jserver2.com/character":
suggestedFileName = "character.xsd";
break;
case "":
namespaceUri = "[empty]";
suggestedFileName = "l2jserver2.xsd";
break;
}
System.out.println(namespaceUri + " mapped to "
+ suggestedFileName);
return new StreamResult(new File(baseDir, suggestedFileName));
}
});
}
}