CTZServer/src/main/java/cn/citycraft/CTZServer/ServerThread.java

86 lines
2.4 KiB
Java

package cn.citycraft.CTZServer;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import cn.citycraft.CTZServer.commands.HandlerMainCommand;
import cn.citycraft.CTZServer.socket.CTZLoginServerSocket;
import cn.citycraft.CTZServerCommon.CTZAuth;
import cn.citycraft.CTZServerCommon.CTZServer;
import cn.citycraft.PluginHelper.sql.SQLHelper;
import cn.citycraft.PluginHelper.utils.FileUtil;
import net.md_5.bungee.api.ChatColor;
public class ServerThread implements Runnable {
protected CTZLoginServerSocket server;
protected SQLHelper sql;
private HandlerMainCommand handlercmd;
public CTZLoginServerSocket getServer() {
return server;
}
@Override
public void run() {
CTZServer.print(ChatColor.GREEN + "服务器开始启动...");
initCommand();
initServerInfo();
CTZAuth.init(sql, "127.0.0.1", 3306, "ctzserver", "root", "325325");
server = new CTZLoginServerSocket();
server.start();
final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String cmdline;
try {
cmdline = br.readLine();
if (cmdline == null || cmdline.isEmpty()) {
continue;
}
final String[] cmdargs = cmdline.split(" ");
final String cmd = cmdargs[0];
handlercmd.onCommand(cmd, cmdargs);
} catch (final IOException e) {
}
}
}
/**
* 初始化命令
*/
void initCommand() {
CTZServer.print(ChatColor.GREEN + "初始化基础命令...");
handlercmd = new HandlerMainCommand(this);
}
/**
* 初始化服务器信息
*/
void initConfigInfo() {
CTZServer.print(ChatColor.GREEN + "加载服务器信息...");
final File infofile = new File("config.json");
FileUtil.saveResource(this, "/config.json", infofile, false);
final String configjson = FileUtil.readFile(infofile);
}
/**
* 初始化服务器信息
*/
void initServerInfo() {
CTZServer.print(ChatColor.GREEN + "加载服务器信息...");
final File infofile = new File("servers.json");
FileUtil.saveResource(this, "/servers.json", infofile, false);
final String json = FileUtil.readFile(infofile);
if (CTZServer.Init(json)) {
CTZServer.print(ChatColor.GREEN + "服务器信息加载成功...");
} else {
CTZServer.warn(ChatColor.RED + "服务器信息加载失败...");
}
}
}