updata...

master
j502647092 2015-08-06 20:48:44 +08:00
parent 1aede8f0e3
commit 0e22831512
3 changed files with 32 additions and 14 deletions

View File

@ -3,6 +3,7 @@ package cn.citycraft.CTZLoginServer;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitTask;
import cn.citycraft.CTZLoginServer.Socket.CTZLoginServerSocket; import cn.citycraft.CTZLoginServer.Socket.CTZLoginServerSocket;
import cn.citycraft.CTZLoginServer.config.Config; import cn.citycraft.CTZLoginServer.config.Config;
@ -10,10 +11,12 @@ import cn.citycraft.CTZLoginServer.listen.PlayerListen;
public class CTZLoginServer extends JavaPlugin { public class CTZLoginServer extends JavaPlugin {
public String version; public String version;
public BukkitTask loginserver;
@Override @Override
public void onDisable() { public void onDisable() {
getLogger().info("已卸载!"); loginserver.cancel();
getLogger().info("CTZLoginServer已卸载!");
} }
@Override @Override
@ -28,12 +31,22 @@ public class CTZLoginServer extends JavaPlugin {
pm.disablePlugin(this); pm.disablePlugin(this);
return; return;
} }
this.getServer() onLoadLoginServer();
pm.registerEvents(new PlayerListen(), this);
getLogger().info("CTZLoginServer已加载!");
}
public void onLoadLoginServer() {
if (loginserver != null) {
loginserver.cancel();
getLogger().info("CTZL登录服务器已关闭!");
}
loginserver = this
.getServer()
.getScheduler() .getScheduler()
.runTaskAsynchronously(this, .runTaskAsynchronously(this,
new CTZLoginServerSocket(this, Config.getInstance().getInt("server.port"))); new CTZLoginServerSocket(this, Config.getInstance().getInt("server.port")));
pm.registerEvents(new PlayerListen(), this); getLogger().info("CTZL登录服务器已开启!");
getLogger().info("已加载!");
} }
@Override @Override

View File

@ -17,7 +17,7 @@ import fr.xephi.authme.api.API;
public class CTZLoginServerSocket implements Runnable { public class CTZLoginServerSocket implements Runnable {
public int port = 8080; public int port = 25580;
public CTZLoginServer plugin; public CTZLoginServer plugin;
/** /**
@ -32,7 +32,6 @@ public class CTZLoginServerSocket implements Runnable {
public void run() { public void run() {
ServerSocket s = null; ServerSocket s = null;
Socket socket = null; Socket socket = null;
try { try {
// 设定服务端的端口号 // 设定服务端的端口号
s = new ServerSocket(port); s = new ServerSocket(port);
@ -45,7 +44,7 @@ public class CTZLoginServerSocket implements Runnable {
} catch (Exception e) { } catch (Exception e) {
System.out.println("CTZL服务器崩溃..."); System.out.println("CTZL服务器崩溃...");
} finally { } finally {
System.out.println("关闭连接"); System.out.println("CTZL服务器已关闭...");
try { try {
socket.close(); socket.close();
s.close(); s.close();
@ -90,8 +89,6 @@ public class CTZLoginServerSocket implements Runnable {
} }
if (API.isRegistered(username)) { if (API.isRegistered(username)) {
res.setHtml("true"); res.setHtml("true");
Bukkit.getConsoleSender().sendMessage(
"§6玩家: §a" + username + " §d注册成功 IP: " + ip);
} else } else
res.setHtml("false"); res.setHtml("false");
break; break;
@ -102,9 +99,11 @@ public class CTZLoginServerSocket implements Runnable {
res.setState(HttpStates.Bad_Request); res.setState(HttpStates.Bad_Request);
break; break;
} }
if (API.registerPlayer(username, password)) if (API.registerPlayer(username, password)) {
res.setHtml("true"); res.setHtml("true");
else Bukkit.getConsoleSender().sendMessage(
"§6玩家: §a" + username + " §d注册成功 IP: " + ip);
} else
res.setHtml("false"); res.setHtml("false");
break; break;
case "login": case "login":

View File

@ -13,6 +13,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
import cn.citycraft.CTZLoginServer.CTZLoginQueue; import cn.citycraft.CTZLoginServer.CTZLoginQueue;
import cn.citycraft.CTZLoginServer.config.Config; import cn.citycraft.CTZLoginServer.config.Config;
import fr.xephi.authme.api.API;
/** /**
* @author * @author
@ -26,20 +27,25 @@ public class PlayerListen implements Listener {
public void PlayerLogin(PlayerLoginEvent e) { public void PlayerLogin(PlayerLoginEvent e) {
String name = e.getPlayer().getName().toLowerCase(); String name = e.getPlayer().getName().toLowerCase();
long lasttime = lastquittime.get(name) == null ? 0 : lastquittime.get(name); long lasttime = lastquittime.get(name) == null ? 0 : lastquittime.get(name);
e.setKickMessage("§6[§bCTZLS§6] §c禁止入服 请使用服务器专用启动器进入游戏!");
if (getNowTime() - lasttime < Config.getInstance().getInt("server.timeout")) { if (getNowTime() - lasttime < Config.getInstance().getInt("server.timeout")) {
return; return;
} }
if (CTZLoginQueue.isCheckIP()) { if (CTZLoginQueue.isCheckIP()) {
if (CTZLoginQueue.Login(name, e.getAddress().getHostAddress())) { if (CTZLoginQueue.Login(name)) {
return; if (CTZLoginQueue.Login(name, e.getAddress().getHostAddress())) {
API.forceLogin(e.getPlayer());
return;
}
e.setKickMessage("§6[§bCTZLS§6] §c禁止入服 申请登录的IP与客户端IP不同!");
} }
} else { } else {
if (CTZLoginQueue.Login(name)) { if (CTZLoginQueue.Login(name)) {
API.forceLogin(e.getPlayer());
return; return;
} }
} }
e.setResult(Result.KICK_WHITELIST); e.setResult(Result.KICK_WHITELIST);
e.setKickMessage("§6[§bCTZLS§6] §c禁止入服 请使用服务器专用启动器进入游戏!");
} }
@EventHandler @EventHandler