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 + "服务器信息加载失败..."); } } }