📄 registerfunction.java
字号:
package com.swing.game.crystal.function;
import java.util.List;
import java.util.ArrayList;
import java.io.File;
import org.dom4j.Element;
import org.dom4j.Document;
import org.dom4j.io.SAXReader;
import java.net.*;
import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.Logger;
import com.swing.game.crystal.CrystalController;
import com.swing.game.crystal.utils.Person;
import com.swing.server.common.GameFunction;
import java.util.Iterator;
public class RegisterFunction
extends GameFunction {
public static final String DEFAULT_MAP = "0";
public static final String DEFAULT_MAPXPOSITION = "2";
public static final String DEFAULT_MAPYPOSITION = "2";
public static Logger logger = Logger.getLogger(RegisterFunction.class);
static {
PropertyConfigurator.configure("./cfg/Log4j.properties");
}
public List handleRequest(String player, String message) {
String[] command = message.split(CrystalController.SPLITTER_2);
List re = null;
try {
SAXReader reader = new SAXReader();
Document document = null;
document = reader.read(new File("./xml/User.xml"));
Element root = document.getRootElement();
Element e = (Element) root.selectSingleNode("./user[@id=\"" + player + "\"]");
if (e != null) {
re = new ArrayList();
re.add("R");
}
else {
e = root.addElement("user");
e.addAttribute("id", player);
e.addElement("password").setText(command[1]);
e.addElement("mapCode").setText(DEFAULT_MAP);
e.addElement("mapXPosition").setText(DEFAULT_MAPXPOSITION);
e.addElement("mapYPosition").setText(DEFAULT_MAPYPOSITION);
e.addElement("kind").setText(command[2]);
e.addElement("level").setText("1");
// 主角种类在1-3之间!!!
Person p = (Person) CrystalController.PersonMapping.get(command[2]);
e.addElement("hp").setText(String.valueOf(p.hp));
e.addElement("power").setText(String.valueOf(p.power));
e.addElement("sp").setText("0");
e.addElement("attack").setText(String.valueOf(p.attack));
e.addElement("defense").setText(String.valueOf(p.defense));
e.addElement("resurrection").setText(String.valueOf(p.resurrection));
e.addElement("agility").setText(String.valueOf(p.agility));
e.addElement("money").setText("100");
e.addElement("exp").setText("0");
e.addElement("boss").setText("0");
e.addElement("carreer").setText("0");
e.addElement("capacity").setText(String.valueOf(p.capacity));
e.addElement("curSuit").setText(p.suit);
e.addElement("curShoe").setText(p.shoe);
Element weapon = e.addElement("weapon");
for (Iterator i = p.weapon.iterator(); i.hasNext(); )
weapon.addElement("Element").addAttribute("id", (String) i.next()).
addAttribute("number", "1");
weapon.addElement("Element").addAttribute("id", p.shoe).addAttribute("number", "1");
weapon.addElement("Element").addAttribute("id", p.suit).addAttribute("number", "1");
e.addElement("friends");
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GB2312");
XMLWriter writer = new XMLWriter(new FileWriter("./xml/User.xml"),
format);
writer.write(root.getDocument());
writer.close();
re = ( (GameFunction) gc.function.get("0")).handleRequest(player, "0" + CrystalController.SPLITTER_2
+ command[1] + CrystalController.SPLITTER_2 + CrystalController.VERSION);
}
}
catch (MalformedURLException ex) {
re = new ArrayList();
re.add("W");
logger.error(ex);
}
catch (DocumentException ex) {
re = new ArrayList();
re.add("W");
logger.error(ex);
}
catch (IOException ex) {
re = new ArrayList();
re.add("W");
logger.error(ex);
}
return re;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -