update...

Signed-off-by: j502647092 <jtb1@163.com>
master
j502647092 2015-10-11 23:06:33 +08:00
parent 8f050484d4
commit 08890c82ed
1 changed files with 31 additions and 28 deletions

View File

@ -1,8 +1,8 @@
package cn.citycraft.CTZServerCommon; package cn.citycraft.CTZServerCommon;
import cn.citycraft.PluginHelper.sql.DataBase;
import cn.citycraft.PluginHelper.sql.KeyValue; import cn.citycraft.PluginHelper.sql.KeyValue;
import cn.citycraft.PluginHelper.sql.MySQLHelper; import cn.citycraft.PluginHelper.sql.MySQLCore;
import cn.citycraft.PluginHelper.sql.DataBaseCore;
import cn.citycraft.PluginHelper.utils.StringUtil; import cn.citycraft.PluginHelper.utils.StringUtil;
import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ChatColor;
@ -15,49 +15,50 @@ public class CTZAuth {
static final String ALLOWLoginField = "allowlogin"; static final String ALLOWLoginField = "allowlogin";
static final String LASTLOGOUT = "lastlogout"; static final String LASTLOGOUT = "lastlogout";
static final String IP = "ip"; static final String IP = "ip";
static DataBaseCore sql; static DataBase sql;
public static boolean allowLogin(String username) { public static boolean allowLogin(final String username) {
return allowLogin(username, null); return allowLogin(username, null);
} }
public static boolean allowLogin(String username, String ip) { public static boolean allowLogin(final String username, final String ip) {
KeyValue cdt = new KeyValue(UserField, username); final KeyValue cdt = new KeyValue(UserField, username);
if (ip != null) if (ip != null) {
cdt.add(IP, ip); cdt.add(IP, ip);
String result = sql.dbSelectFirst(TableName, ALLOWLoginField, cdt); }
final String result = sql.dbSelectFirst(TableName, ALLOWLoginField, cdt);
return (result != null && result.equalsIgnoreCase("1")); return (result != null && result.equalsIgnoreCase("1"));
} }
public static void changePassword(String username, String password) { public static void changePassword(final String username, final String password) {
// TODO 处理玩家密码修改事件 // TODO 处理玩家密码修改事件
} }
public static boolean checkLastLogout(String username, long timeout) { public static boolean checkLastLogout(final String username, final long timeout) {
try { try {
String lastlogout = sql.dbSelectFirst(TableName, LASTLOGOUT, new KeyValue(UserField, username)); final String lastlogout = sql.dbSelectFirst(TableName, LASTLOGOUT, new KeyValue(UserField, username));
return System.currentTimeMillis() - Integer.parseInt(lastlogout) < timeout * 1000; return System.currentTimeMillis() - Integer.parseInt(lastlogout) < timeout * 1000;
} catch (Exception e) { } catch (final Exception e) {
return false; return false;
} }
} }
public static boolean checkPassword(String username, String password) { public static boolean checkPassword(final String username, final String password) {
return sql.isFieldExists(TableName, new KeyValue(UserField, username).add(PWDField, StringUtil.getMD5Code(password))); return sql.isFieldExists(TableName, new KeyValue(UserField, username).add(PWDField, StringUtil.getMD5Code(password)));
} }
public static void init(DataBaseCore sql, String address, int port, String datebase, String username, String password) { public static void init(DataBase sql, final String address, final int port, final String datebase, final String username, final String password) {
CTZAuth.sql = sql; CTZAuth.sql = sql;
CTZServer.print(ChatColor.GREEN + "初始化数据库连接..."); CTZServer.print(ChatColor.GREEN + "初始化数据库连接...");
sql = new MySQLHelper(address, port, datebase, username, password); sql = new DataBase(new MySQLCore(address, port, datebase, username, password));
if (!sql.dbConnection()) { if (!sql.testConnect()) {
CTZServer.warn(ChatColor.RED + "数据库连接失败..."); CTZServer.warn(ChatColor.RED + "数据库连接失败...");
return; return;
} }
CTZServer.print(ChatColor.GREEN + "数据库连接成功,检查数据表是否存在..."); CTZServer.print(ChatColor.GREEN + "数据库连接成功,检查数据表是否存在...");
if (!sql.isTableExists(TableName)) { if (!sql.isTableExists(TableName)) {
CTZServer.print(ChatColor.RED + "数据表不存在,新建表" + TableName + "..."); CTZServer.print(ChatColor.RED + "数据表不存在,新建表" + TableName + "...");
KeyValue kv = new KeyValue("player", "VARCHAR(16) NOT NULL") final KeyValue kv = new KeyValue("player", "VARCHAR(16) NOT NULL")
.add("password", "VARCHAR(50) NOT NULL") .add("password", "VARCHAR(50) NOT NULL")
.add("ip", "VARCHAR(40) NOT NULL DEFAULT '127.0.0.1'") .add("ip", "VARCHAR(40) NOT NULL DEFAULT '127.0.0.1'")
.add("lastlogout", "BIGINT(30) NOT NULL DEFAULT 0") .add("lastlogout", "BIGINT(30) NOT NULL DEFAULT 0")
@ -68,35 +69,37 @@ public class CTZAuth {
.add("world", "VARCHAR(20) DEFAULT 'world'") .add("world", "VARCHAR(20) DEFAULT 'world'")
.add("islogged", "SMALLINT(6) NOT NULL DEFAULT 0") .add("islogged", "SMALLINT(6) NOT NULL DEFAULT 0")
.add("allowlogin", "SMALLINT(6) NOT NULL DEFAULT 0"); .add("allowlogin", "SMALLINT(6) NOT NULL DEFAULT 0");
String Conditions = "UNIQUE (`player`)"; final String Conditions = "UNIQUE (`player`)";
if (!sql.createTables(TableName, kv, Conditions)) if (!sql.createTables(TableName, kv, Conditions)) {
CTZServer.warn(ChatColor.RED + "数据表 " + TableName + " 创建失败,请尝试手动创建并重启服务器..."); CTZServer.warn(ChatColor.RED + "数据表 " + TableName + " 创建失败,请尝试手动创建并重启服务器...");
else } else {
CTZServer.print(ChatColor.GREEN + "数据表 " + TableName + " 创建成功..."); CTZServer.print(ChatColor.GREEN + "数据表 " + TableName + " 创建成功...");
}
} }
} }
public static boolean isLogin(String username) { public static boolean isLogin(final String username) {
String result = sql.dbSelectFirst(TableName, ISLoginField, new KeyValue(UserField, username)); final String result = sql.dbSelectFirst(TableName, ISLoginField, new KeyValue(UserField, username));
return (result != null && result.equalsIgnoreCase("1")); return (result != null && result.equalsIgnoreCase("1"));
} }
public static boolean isRegistered(String username) { public static boolean isRegistered(final String username) {
return sql.isFieldExists(TableName, new KeyValue(UserField, username)); return sql.isFieldExists(TableName, new KeyValue(UserField, username));
} }
public static boolean login(String username, String ip) { public static boolean login(final String username, final String ip) {
return sql.dbUpdate(TableName, new KeyValue(ALLOWLoginField, "1").add(IP, ip == null ? "127.0.0.1" : ip), new KeyValue(UserField, username)); return sql.dbUpdate(TableName, new KeyValue(ALLOWLoginField, "1").add(IP, ip == null ? "127.0.0.1" : ip), new KeyValue(UserField, username));
} }
public static boolean registerPlayer(String username, String password, String email) { public static boolean registerPlayer(final String username, final String password, final String email) {
if (isRegistered(username)) if (isRegistered(username)) {
return false; return false;
else } else {
return sql.dbInsert(TableName, new KeyValue(UserField, username).add(PWDField, StringUtil.getMD5Code(password))); return sql.dbInsert(TableName, new KeyValue(UserField, username).add(PWDField, StringUtil.getMD5Code(password)));
}
} }
public static boolean setLastLogout(String username, long logouttime) { public static boolean setLastLogout(final String username, final long logouttime) {
return sql.dbUpdate(TableName, new KeyValue(ALLOWLoginField, "1"), new KeyValue(UserField, username)); return sql.dbUpdate(TableName, new KeyValue(ALLOWLoginField, "1"), new KeyValue(UserField, username));
} }