mirror of
https://e.coding.net/circlecloud/CTZLoginServer.git
synced 2024-12-11 05:18:48 +00:00
add ServerInfo Class Client can getServerJson from Server...
This commit is contained in:
parent
3ffccd7b7b
commit
a1068c62b2
@ -52,13 +52,16 @@ public class CTZLoginServer extends JavaPlugin {
|
|||||||
loginserver = this
|
loginserver = this
|
||||||
.getServer()
|
.getServer()
|
||||||
.getScheduler()
|
.getScheduler()
|
||||||
.runTaskAsynchronously(this,
|
.runTaskAsynchronously(
|
||||||
new CTZLoginServerSocket(this, Config.getInstance().getInt("server.port")));
|
this,
|
||||||
|
new CTZLoginServerSocket(this, Config.getInstance().getInt("config.port",
|
||||||
|
25580)));
|
||||||
getLogger().info("CTZL登录服务器已开启!");
|
getLogger().info("CTZL登录服务器已开启!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoad() {
|
public void onLoad() {
|
||||||
Config.load(this, "1.0");
|
Config.load(this, "1.0");
|
||||||
|
CTZServers.Init(Config.getInstance().getConfigurationSection("areas"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
156
src/cn/citycraft/CTZLoginServer/CTZServers.java
Normal file
156
src/cn/citycraft/CTZLoginServer/CTZServers.java
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package cn.citycraft.CTZLoginServer;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 蒋天蓓
|
||||||
|
* 2015年8月8日下午2:50:02
|
||||||
|
* TODO
|
||||||
|
*/
|
||||||
|
public class CTZServers {
|
||||||
|
|
||||||
|
CTZServers stz = new CTZServers();
|
||||||
|
|
||||||
|
static CTZServer sl = new CTZServer();
|
||||||
|
|
||||||
|
public static void Init(ConfigurationSection cs) {
|
||||||
|
Set<String> arealist = cs.getKeys(false);
|
||||||
|
for (String a : arealist) {
|
||||||
|
Area area = new Area();
|
||||||
|
area.setName(cs.getString(a + ".name"));
|
||||||
|
Set<String> serverlist = cs.getConfigurationSection(a + ".servers").getKeys(false);
|
||||||
|
for (String s : serverlist) {
|
||||||
|
Server server = new Server();
|
||||||
|
server.name = cs.getString(a + ".servers." + s + ".name");
|
||||||
|
server.address = cs.getString(a + ".servers." + s + ".address");
|
||||||
|
server.port = cs.getInt(a + ".servers." + s + ".port");
|
||||||
|
server.version = cs.getString(a + ".servers." + s + ".version");
|
||||||
|
server.info = cs.getString(a + ".servers." + s + ".info");
|
||||||
|
server.url = cs.getString(a + ".servers." + s + ".url");
|
||||||
|
area.servers.add(server);
|
||||||
|
}
|
||||||
|
sl.areas.add(area);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getJson() {
|
||||||
|
Gson gson = new Gson();
|
||||||
|
return gson.toJson(sl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CTZServer {
|
||||||
|
List<Area> areas = new ArrayList<Area>();
|
||||||
|
|
||||||
|
public List<Area> getAreas() {
|
||||||
|
return areas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAreas(List<Area> aareas) {
|
||||||
|
areas = aareas;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Area {
|
||||||
|
String name;
|
||||||
|
List<Server> servers = new ArrayList<Server>();
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Server> getServers() {
|
||||||
|
return servers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setServers(List<Server> servers) {
|
||||||
|
this.servers = servers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return String.format("\"name\":\"{0}\",\"servers\":\"{1}\"", name, servers.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class Server {
|
||||||
|
|
||||||
|
public String name;
|
||||||
|
|
||||||
|
public String address;
|
||||||
|
|
||||||
|
public int port;
|
||||||
|
|
||||||
|
public String info;
|
||||||
|
|
||||||
|
public String version;
|
||||||
|
|
||||||
|
public String url;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return String.format("{0}:{1}", address, port);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAddress() {
|
||||||
|
return address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAddress(String address) {
|
||||||
|
this.address = address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPort() {
|
||||||
|
return port;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPort(int port) {
|
||||||
|
this.port = port;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInfo() {
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInfo(String info) {
|
||||||
|
this.info = info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getVersion() {
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVersion(String version) {
|
||||||
|
this.version = version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUrl() {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrl(String url) {
|
||||||
|
this.url = url;
|
||||||
|
}
|
||||||
|
}
|
@ -12,6 +12,7 @@ import org.bukkit.Bukkit;
|
|||||||
|
|
||||||
import cn.citycraft.CTZLoginServer.CTZLoginQueue;
|
import cn.citycraft.CTZLoginServer.CTZLoginQueue;
|
||||||
import cn.citycraft.CTZLoginServer.CTZLoginServer;
|
import cn.citycraft.CTZLoginServer.CTZLoginServer;
|
||||||
|
import cn.citycraft.CTZLoginServer.CTZServers;
|
||||||
import cn.citycraft.CTZLoginServer.Socket.Response.HttpStates;
|
import cn.citycraft.CTZLoginServer.Socket.Response.HttpStates;
|
||||||
import fr.xephi.authme.api.API;
|
import fr.xephi.authme.api.API;
|
||||||
|
|
||||||
@ -148,6 +149,12 @@ public class CTZLoginServerSocket implements Runnable {
|
|||||||
else
|
else
|
||||||
res.setHtml("false");
|
res.setHtml("false");
|
||||||
break;
|
break;
|
||||||
|
case "serverlist":
|
||||||
|
res.setState(HttpStates.OK);
|
||||||
|
// {"areas":[{"name":"纯净大区","servers":[{"name":"光板小镇","address":"CityCraft.cn","port":25565,"version":"1.8","url":"http://CityCraft.cn:88/gbxz.zip","info":"纯净 有爱"}]}]}
|
||||||
|
res.setHeader("Content-Type", "text/html;charset=utf-8");
|
||||||
|
res.setHtml(CTZServers.getJson());
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
res.setState(HttpStates.Bad_Request);
|
res.setState(HttpStates.Bad_Request);
|
||||||
}
|
}
|
||||||
|
@ -7,8 +7,29 @@ pluginname: '&6[&bCTZL&6]&r'
|
|||||||
#是否提示
|
#是否提示
|
||||||
tipplayer: true
|
tipplayer: true
|
||||||
#服务器配置
|
#服务器配置
|
||||||
server:
|
config:
|
||||||
#服务器监听端口
|
#服务器监听端口
|
||||||
port: 25580
|
port: 25580
|
||||||
#断线重连超时
|
#断线重连超时
|
||||||
timeout: 10
|
timeout: 10
|
||||||
|
areas:
|
||||||
|
1:
|
||||||
|
name: '纯净大区'
|
||||||
|
servers:
|
||||||
|
1:
|
||||||
|
name: "光板小镇"
|
||||||
|
address: "CityCraft.cn"
|
||||||
|
port: 25565
|
||||||
|
info: "纯净服务器"
|
||||||
|
version: "1.8-Forge"
|
||||||
|
url: "CityCraft.cn"
|
||||||
|
2:
|
||||||
|
name: '模组大区'
|
||||||
|
servers:
|
||||||
|
1:
|
||||||
|
name: "光板小镇"
|
||||||
|
address: "CityCraft.cn"
|
||||||
|
port: 25565
|
||||||
|
info: "MOD服务器: 豆腐 家具 "
|
||||||
|
version: "1.7.10-Forge"
|
||||||
|
url: "CityCraft.cn"
|
||||||
|
Loading…
Reference in New Issue
Block a user