From 3301d2b7bfa3e387e5f72d292a991b016a7d7966 Mon Sep 17 00:00:00 2001 From: j502647092 Date: Sun, 13 Sep 2015 21:47:55 +0800 Subject: [PATCH] add gc command... Signed-off-by: j502647092 --- .../cn/citycraft/CTZServer/CTZServer.java | 14 ++- .../java/cn/citycraft/CTZServer/Logger.java | 34 +++--- .../cn/citycraft/CTZServer/ServerThread.java | 29 ++--- .../CTZServer/commands/CommandStop.java | 7 +- .../CTZServer/commands/HandlerCommand.java | 16 ++- .../socket/CTZLoginServerSocket.java | 104 +++++++++--------- .../citycraft/CTZServer/socket/Request.java | Bin 2122 -> 2082 bytes .../citycraft/CTZServer/utils/StringUtil.java | 56 ---------- 8 files changed, 109 insertions(+), 151 deletions(-) delete mode 100644 src/main/java/cn/citycraft/CTZServer/utils/StringUtil.java diff --git a/src/main/java/cn/citycraft/CTZServer/CTZServer.java b/src/main/java/cn/citycraft/CTZServer/CTZServer.java index 5582f83..b433133 100644 --- a/src/main/java/cn/citycraft/CTZServer/CTZServer.java +++ b/src/main/java/cn/citycraft/CTZServer/CTZServer.java @@ -42,9 +42,9 @@ public class CTZServer { return chinaToUnicode(gson.toJson(sl)); } - public static Logger getLogger() { - return log; - } + // public static Logger getLogger() { + // return log; + // } /** * 初始化服务器序列化类 @@ -87,6 +87,14 @@ public class CTZServer { } } + public static void print(String message) { + log.info(message); + } + + public static void warn(String message) { + log.warning(message); + } + /** * 判断是否为中文字符 * diff --git a/src/main/java/cn/citycraft/CTZServer/Logger.java b/src/main/java/cn/citycraft/CTZServer/Logger.java index b15298c..914b569 100644 --- a/src/main/java/cn/citycraft/CTZServer/Logger.java +++ b/src/main/java/cn/citycraft/CTZServer/Logger.java @@ -3,9 +3,25 @@ package cn.citycraft.CTZServer; import java.text.SimpleDateFormat; import java.util.Date; -import org.bukkit.ChatColor; +import net.md_5.bungee.api.ChatColor; public class Logger { + enum LEVEL { + INFO("信息"), + WARN("警告"), + ERROR("错误"); + String prefix; + + LEVEL(String prefix) { + this.prefix = prefix; + } + + @Override + public String toString() { + return prefix; + } + } + public void error(String string) { log(LEVEL.ERROR, string); } @@ -22,20 +38,4 @@ public class Logger { public void warning(String string) { log(LEVEL.WARN, string); } - - enum LEVEL { - INFO("信息"), - WARN("警告"), - ERROR("错误"); - String prefix; - - LEVEL(String prefix) { - this.prefix = prefix; - } - - @Override - public String toString() { - return prefix; - } - } } diff --git a/src/main/java/cn/citycraft/CTZServer/ServerThread.java b/src/main/java/cn/citycraft/CTZServer/ServerThread.java index b36a4e7..996131d 100644 --- a/src/main/java/cn/citycraft/CTZServer/ServerThread.java +++ b/src/main/java/cn/citycraft/CTZServer/ServerThread.java @@ -5,14 +5,13 @@ import java.io.File; import java.io.IOException; import java.io.InputStreamReader; -import org.bukkit.ChatColor; - import cn.citycraft.CTZServer.commands.HandlerCommand; import cn.citycraft.CTZServer.socket.CTZLoginServerSocket; import cn.citycraft.sql.KeyValue; import cn.citycraft.sql.MySQLHelper; import cn.citycraft.sql.SQLHelper; import cn.citycraft.utils.FileUtil; +import net.md_5.bungee.api.ChatColor; public class ServerThread implements Runnable { protected CTZLoginServerSocket server; @@ -26,7 +25,7 @@ public class ServerThread implements Runnable { @Override public void run() { - CTZServer.getLogger().info(ChatColor.GREEN + "服务器开始启动..."); + CTZServer.print(ChatColor.GREEN + "服务器开始启动..."); initCommand(); initDatabase(); @@ -54,7 +53,7 @@ public class ServerThread implements Runnable { * 初始化命令 */ void initCommand() { - CTZServer.getLogger().info(ChatColor.GREEN + "初始化基础命令..."); + CTZServer.print(ChatColor.GREEN + "初始化基础命令..."); handlercmd = new HandlerCommand(this); } @@ -63,18 +62,18 @@ public class ServerThread implements Runnable { */ void initDatabase() { String dbtable = "ctzserver"; - CTZServer.getLogger().info(ChatColor.GREEN + "初始化数据库连接..."); - sql = new MySQLHelper("127.0.0.1", 3306, "minecraft", "root", ""); + CTZServer.print(ChatColor.GREEN + "初始化数据库连接..."); + sql = new MySQLHelper("127.0.0.1", 3306, "minecraft", "root", "325325"); if (!sql.dbConnection()) { - CTZServer.getLogger().warning(ChatColor.RED + "数据库连接失败..."); + CTZServer.warn(ChatColor.RED + "数据库连接失败..."); return; } - CTZServer.getLogger().info("数据库连接成功,检查数据表是否存在..."); + CTZServer.print("数据库连接成功,检查数据表是否存在..."); if (!sql.isTableExists(dbtable)) { - CTZServer.getLogger().info("数据表不存在,新建表" + dbtable + "..."); + CTZServer.print("数据表不存在,新建表" + dbtable + "..."); KeyValue kv = new KeyValue("player", "VARCHAR(16) NOT NULL") .add("password", "VARCHAR(50) NOT NULL") - .add("ip", "varchar(40) NOT NULL") + .add("ip", "VARCHAR(40) NOT NULL") .add("lastloginout", "BIGINT(20) NOT NULL") .add("x", "DOUBLE NOT NULL") .add("y", "DOUBLE NOT NULL") @@ -84,7 +83,9 @@ public class ServerThread implements Runnable { .add("islogged", "SMALLINT(6) NOT NULL"); String Conditions = "UNIQUE (`player`)"; if (!sql.createTables(dbtable, kv, Conditions)) - CTZServer.getLogger().warning("数据表" + dbtable + "创建失败,请尝试手动创建并重启服务器..."); + CTZServer.warn("数据表 " + dbtable + " 创建失败,请尝试手动创建并重启服务器..."); + else + CTZServer.print("数据表 " + dbtable + " 创建成功..."); } } @@ -92,12 +93,12 @@ public class ServerThread implements Runnable { * 初始化服务器信息 */ void initServerInfo() { - CTZServer.getLogger().info(ChatColor.GREEN + "加载服务器信息..."); + CTZServer.print(ChatColor.GREEN + "加载服务器信息..."); FileUtil.saveResource(this, "/servers.json", false); String json = FileUtil.readFile(new File("servers.json")); if (CTZServer.Init(json)) - CTZServer.getLogger().info(ChatColor.GREEN + "服务器信息加载成功..."); + CTZServer.print(ChatColor.GREEN + "服务器信息加载成功..."); else - CTZServer.getLogger().warning(ChatColor.RED + "服务器信息加载失败..."); + CTZServer.warn(ChatColor.RED + "服务器信息加载失败..."); } } diff --git a/src/main/java/cn/citycraft/CTZServer/commands/CommandStop.java b/src/main/java/cn/citycraft/CTZServer/commands/CommandStop.java index c7c25df..41781fa 100644 --- a/src/main/java/cn/citycraft/CTZServer/commands/CommandStop.java +++ b/src/main/java/cn/citycraft/CTZServer/commands/CommandStop.java @@ -1,9 +1,8 @@ package cn.citycraft.CTZServer.commands; -import org.bukkit.ChatColor; - import cn.citycraft.CTZServer.CTZServer; import cn.citycraft.CTZServer.ServerThread; +import net.md_5.bungee.api.ChatColor; public class CommandStop extends BaseCommand { ServerThread serverThread; @@ -15,7 +14,7 @@ public class CommandStop extends BaseCommand { @Override public void execute(String label, String[] args) { - CTZServer.getLogger().info(ChatColor.RED + "开始关闭服务器..."); + CTZServer.print(ChatColor.RED + "开始关闭服务器..."); serverThread.getServer().ShutDown(); } @@ -31,7 +30,7 @@ public class CommandStop extends BaseCommand { @Override public String getPossibleArguments() { - return null; + return ""; } } diff --git a/src/main/java/cn/citycraft/CTZServer/commands/HandlerCommand.java b/src/main/java/cn/citycraft/CTZServer/commands/HandlerCommand.java index 89e3f78..38f3ea7 100644 --- a/src/main/java/cn/citycraft/CTZServer/commands/HandlerCommand.java +++ b/src/main/java/cn/citycraft/CTZServer/commands/HandlerCommand.java @@ -3,11 +3,10 @@ package cn.citycraft.CTZServer.commands; import java.util.ArrayList; import java.util.List; -import org.bukkit.ChatColor; - import cn.citycraft.CTZServer.CTZServer; import cn.citycraft.CTZServer.ServerThread; -import cn.citycraft.CTZServer.utils.StringUtil; +import cn.citycraft.utils.StringUtil; +import net.md_5.bungee.api.ChatColor; public class HandlerCommand { ServerThread serverThread; @@ -24,10 +23,17 @@ public class HandlerCommand { public HandlerCommand(ServerThread serverThread) { this.serverThread = serverThread; registerCommand(new CommandStop(serverThread)); + registerCommand(new CommandGc(serverThread)); } public boolean execute(String cmd, String[] args) { String subcmd = args[0]; + if (subcmd.equalsIgnoreCase("help")) { + CTZServer.print("§6=========CTZ服务器帮助列表========="); + for (BaseCommand command : commandlist) + CTZServer.print(String.format("§6/yum §a%1$s %2$s §6- §b%3$s", command.getName(), command.getPossibleArguments(), command.getDescription())); + return true; + } String[] subargs = StringUtil.moveStrings(args, 1); for (BaseCommand command : commandlist) if (command.isValidTrigger(subcmd)) @@ -35,8 +41,8 @@ public class HandlerCommand { command.execute(subcmd, subargs); return true; } else - CTZServer.getLogger().info(ChatColor.RED + "错误的参数 " + ChatColor.YELLOW + "使用方法 /yum " + command.getName() + command.getPossibleArguments()); - CTZServer.getLogger().info("未知命令 请使用help查看帮助..."); + CTZServer.print(ChatColor.RED + "错误的参数 " + ChatColor.YELLOW + "使用方法 /yum " + command.getName() + command.getPossibleArguments()); + CTZServer.print("未知命令 请使用help查看帮助..."); return false; } diff --git a/src/main/java/cn/citycraft/CTZServer/socket/CTZLoginServerSocket.java b/src/main/java/cn/citycraft/CTZServer/socket/CTZLoginServerSocket.java index 5ba9e70..1e0be5c 100644 --- a/src/main/java/cn/citycraft/CTZServer/socket/CTZLoginServerSocket.java +++ b/src/main/java/cn/citycraft/CTZServer/socket/CTZLoginServerSocket.java @@ -8,61 +8,12 @@ import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; -import org.bukkit.ChatColor; - import cn.citycraft.CTZServer.CTZAuth; import cn.citycraft.CTZServer.CTZServer; import cn.citycraft.CTZServer.socket.Response.HttpStates; +import net.md_5.bungee.api.ChatColor; public class CTZLoginServerSocket extends Thread { - ServerSocket s = null; - Socket socket = null; - int port = 25580; - - /** - * 初始化服务端口 - */ - public CTZLoginServerSocket() { - } - - /** - * 初始化服务端口 - */ - public CTZLoginServerSocket(int port) { - this.port = port; - } - - @Override - public void run() { - try { - // 设定服务端的端口号 - s = new ServerSocket(port); - CTZServer.getLogger().info(ChatColor.BLUE + "CTZ服务器开始监听 端口:" + s.getLocalPort()); - // 等待请求,此方法会一直阻塞,直到获得请求才往下走 - while (true) { - socket = s.accept(); - new ClientThread(socket).start(); - } - } catch (Exception e) { - CTZServer.getLogger().warning(ChatColor.RED + "CTZ服务器崩溃: " + e.getMessage()); - } finally { - ShutDown(); - } - } - - /** - * 关闭服务器 - */ - public void ShutDown() { - try { - socket.close(); - s.close(); - } catch (Exception e) { - } - CTZServer.getLogger().info(ChatColor.RED + "CTZ服务器已关闭..."); - System.exit(0); - } - class ClientThread extends Thread { Socket client = null; BufferedReader br = null; @@ -110,7 +61,7 @@ public class CTZLoginServerSocket extends Thread { } if (CTZAuth.registerPlayer(username, password)) { res.setHtml("true"); - CTZServer.getLogger().info("§6玩家: §a" + username + " §d注册成功 IP: " + ip); + CTZServer.print("§6玩家: §a" + username + " §d注册成功 IP: " + ip); } else res.setHtml("false"); break; @@ -124,7 +75,7 @@ public class CTZLoginServerSocket extends Thread { if (CTZAuth.checkPassword(username, password)) { res.setHtml("true"); // TODO 是否检查登录IP - CTZServer.getLogger().info("§6玩家: §a" + username + " §3登录成功 IP: " + ip); + CTZServer.print("§6玩家: §a" + username + " §3登录成功 IP: " + ip); } else res.setHtml("false"); break; @@ -172,4 +123,53 @@ public class CTZLoginServerSocket extends Thread { } } } + + ServerSocket s = null; + Socket socket = null; + + int port = 25580; + + /** + * 初始化服务端口 + */ + public CTZLoginServerSocket() { + } + + /** + * 初始化服务端口 + */ + public CTZLoginServerSocket(int port) { + this.port = port; + } + + @Override + public void run() { + try { + // 设定服务端的端口号 + s = new ServerSocket(port); + CTZServer.print(ChatColor.BLUE + "CTZ服务器开始监听 端口:" + s.getLocalPort()); + // 等待请求,此方法会一直阻塞,直到获得请求才往下走 + while (true) { + socket = s.accept(); + new ClientThread(socket).start(); + } + } catch (Exception e) { + CTZServer.print(ChatColor.RED + "CTZ服务器崩溃: " + e.getMessage()); + } finally { + ShutDown(); + } + } + + /** + * 关闭服务器 + */ + public void ShutDown() { + try { + socket.close(); + s.close(); + } catch (Exception e) { + } + CTZServer.print(ChatColor.RED + "CTZ服务器已关闭..."); + System.exit(0); + } } \ No newline at end of file diff --git a/src/main/java/cn/citycraft/CTZServer/socket/Request.java b/src/main/java/cn/citycraft/CTZServer/socket/Request.java index 7dd3b7714a6697877f897a0fef7336c492f153a9..f27316353f3cdaa1feb9f2098d9c6ccb6e1d34ed 100644 GIT binary patch literal 2082 zcmah~T~FLb6n&nR_CJhxsJs-J4>fH>OM?`lrc$C%pnYhx55~+cF1xln9w)4#NL4@5 zrRfILs8AJDq!d!MBG5#rAs_VDti8^^=$*OawM~IMt?jvU&%NiId)K$@C9BS;?V7eD zS~j<8!n{29`7Gl%88-vZUSi_?a;aQ$n!d*c{ldCwnW1nR<`pYgyk`08aCmUAT%v1AORvn$P19)S zFkb(@`|_XUkKg0p)_PA~(%$BNw9<)I|4P0&#;+eu%}Ipea>)pma`8xmH5F#@NZ$ey1IKgWtdLW4_W?!?QT+XoLNmM-Am9Xb z*)4iTq*1|?ig*IdBTLcajo#j)?$Oik(Tf=t_?{au0H&ah44U*UZZ#>-p8%soQ>w`{ zbnR(a1=$q5g%1SJZ&azp>yorI&GJTZX zQlYetEF)Ivoeg>Fr@Y@}lSpmG)+dPc#@4o&{Y6Ali z{rDo<-aeh{zDaP7h}UZlpyYpk6x`ptXg;JaH8pHoe6w0bW)uFheOtNE&^=T z-m978?FxB)$3w8qJ zB}Dh`hK+_&M8D^5ypfQC(r3`|87}d(D2_OmF*Rg)a=#hr(7doB7wny-NIzrUap q7=4GG(+3hB|NM8{ksGLxUrVZ(O(%MZwTjls(Pe@Rh78bnp!9#?ztB7Y delta 2073 zcmV+!2q5XumLgnb+sunH9b0001hd*j|iPlgqX`nzEX{{L+SO{6ec01o1QeHlv` zseY1)^1T8O`4_ruQvN~r&1^v+bIRrz=v2xS1AZA;B?}MHHR<*G#D0s@US_^4Kf`?% zS!8OWL-t``9kBj%Rrm_Q1Y?_wDpo@e-+Ud>do11)AT76Z%dqf0<2t&dlb4l4!+Hi(v3$zc2A)v zZDtQqOiEFIj7Mc!c0Q3o@J~DDWtZ{Qhvq?Bs*YFLteI1CZ5{OAB;VA1){=15J)sHW zy7PFB1$K43mJJnnW}5}f5PU$#<{%-O0wdq=DZHS6u?{8>U%6Ccco}|^EalN{O#7aB z%bG20!-)0lOBfwotDZ@_VJZq$`n=$H(^?oKBm6(3(Trj@4QzY7$HZ#)39Jy>c?4(E zO2}MmjVv*3*58un7f{@`e3C$9`c=wU6E%<3sK^tz4|5YyM&1*kMv&(MEY}UxG{oS) zeh;*NU%)nqY=kUsVO>V7Waz|H)8Vak;-D%?;ISl!{ej8jb!Hh76xkRJSIiOA8=a4& z8co~{r-n7Ex>6&%hJ;(4M9S==el|2o7-_>meI_Z>g1uMO5{{jm-JAK^co$g~qQ0-< zzH3$Y9fS4tYy=;Y_i-+g?Yikws)}srb?R|{ti2P^^f2WG`sD!?)Xokdm-;?_VIvff z**s(hr~nC|vXNOCVlq)QyP^q8pPZvXA6EP#&yaWtS4_C;F{wT0mk#TeTFlZK9lp-t z?X7@BF1Py)CTG%X#EFfcS)>SsVT4`x&hLBcbC zzqbt0M8%k~Mxd`+8=+aYWob==Tp!@q2 zm)FHE)LVNFRMk6nHjD?_slqw!VM2|62DKUg4ZhXgA&%O-6+@)fVj%Nsl z`v$*bnd<J7d_6Q>+|!pjcjO`=MWOAT5lEKAAOUAFGeIYsS9p~0L)D3%xV;Kbycmep zY+A4$@fou*EduCJV46R-z^1Y_;T5r~(b#8k2L&A(jY=)eHrw9Sk z+=NM;ZKmCiGR*))w>#yp1b6dXc=caL|R;6XCQNXqh1UVEDbRL;|DUNfBf58aQ|F` z_3KP)wm_G1P}Z@)GaG^;2Rk!4H07G10(I|5`lCdJfCqz3vC4~<<>v|#51VRa)5 z3GW?2mTUH1iY+vMZ;>JFv#|1iu5rkx{>_pc#J=9D?Tp688-K@fG#5`N1<39v}s8U#%FU1Q=Z-ygt! zN^bPB|GhGQ(}qn)?l~z1@I#v?t~fyngxr_}+|%~YF4bSzxbnyQ;YiRZ&-nV}@wd}I zDZ?DnM1M@6Q;cF)k-=Ad@h5c{>oic@LP_rJ_rYMdQ^uga(nk}=*=@eGy(4Bo|Ak0; z$b1M6Sox4S2}~2J9z#NPy~1hD8m@;G;dOkzz77TuKN^L{B!1%Y^$?A^rEq{vlh_AJ DHXr;Y diff --git a/src/main/java/cn/citycraft/CTZServer/utils/StringUtil.java b/src/main/java/cn/citycraft/CTZServer/utils/StringUtil.java deleted file mode 100644 index 9a439ea..0000000 --- a/src/main/java/cn/citycraft/CTZServer/utils/StringUtil.java +++ /dev/null @@ -1,56 +0,0 @@ -package cn.citycraft.CTZServer.utils; - -import java.util.Collection; - -/** - * 字符串工具 - * - * @author 蒋天蓓 - * 2015年8月22日下午12:41:59 - */ -public class StringUtil { - /** - * 转移数组后获取字符串 - * - * @param args - * - 原数组 - * @param start - * - 数组开始位置 - * @return 转移后的数组字符串 - */ - public static String consolidateStrings(String[] args, int start) { - String ret = args[start]; - if (args.length > start + 1) - for (int i = start + 1; i < args.length; i++) - ret = ret + " " + args[i]; - return ret; - } - - /** - * 转移数组 - * - * @param args - * - 原数组 - * @param start - * - 数组开始位置 - * @return 转移后的数组字符串 - */ - public static String[] moveStrings(String[] args, int start) { - String[] ret = new String[args.length - start]; - System.arraycopy(args, start, ret, 0, ret.length); - return ret; - } - - /** - * 给玩家或控制台发送消息组 - * - * @param sender - * - 接收消息的玩家 - * @param msg - * - 消息组 - */ - public static void sendStringArray(Collection msg) { - for (String string : msg) - System.out.println(string); - } -}