perf: 重写部分代码
This commit is contained in:
@@ -56,14 +56,17 @@ public abstract class BallAPI {
|
||||
private final Bootstrap bootstrap;
|
||||
@NotNull
|
||||
private final EventLoopGroup executors;
|
||||
protected boolean enabled;
|
||||
protected Channel channel;
|
||||
private boolean enabled;
|
||||
private boolean connected;
|
||||
|
||||
@NotNull
|
||||
private List<BallListener> listeners;
|
||||
|
||||
protected BallAPI(@NotNull BallConfig config) {
|
||||
this.config = config;
|
||||
this.enabled = false;
|
||||
this.connected = false;
|
||||
|
||||
serverInfo = new ConcurrentHashMap<>();
|
||||
playerInfo = new ConcurrentHashMap<>();
|
||||
@@ -154,6 +157,7 @@ public abstract class BallAPI {
|
||||
@Override
|
||||
public void onConnectRefused() {
|
||||
enabled = false;
|
||||
connected = false;
|
||||
executors.shutdownGracefully();
|
||||
getLogger().info("连接至服务中心的请求被拒绝,已关闭仓鼠球。");
|
||||
}
|
||||
@@ -252,6 +256,7 @@ public abstract class BallAPI {
|
||||
ChannelFuture future = bootstrap.connect(config.getHost(), config.getPort()).await();
|
||||
if (future.isSuccess()) {
|
||||
channel = future.channel();
|
||||
connected = true;
|
||||
for (BallListener listener : listeners) {
|
||||
listener.onConnectActive();
|
||||
}
|
||||
@@ -269,6 +274,7 @@ public abstract class BallAPI {
|
||||
return;
|
||||
}
|
||||
channel = null;
|
||||
connected = false;
|
||||
if (tryCount <= 0) {
|
||||
for (BallListener listener : getListeners()) {
|
||||
try {
|
||||
@@ -281,7 +287,7 @@ public abstract class BallAPI {
|
||||
}
|
||||
try {
|
||||
connect();
|
||||
} catch (InterruptedException e) {
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (channel != null) {
|
||||
@@ -320,6 +326,7 @@ public abstract class BallAPI {
|
||||
}
|
||||
|
||||
channel = null;
|
||||
connected = false;
|
||||
executors.shutdownGracefully().await();
|
||||
}
|
||||
|
||||
@@ -813,6 +820,11 @@ public abstract class BallAPI {
|
||||
return info.getName();
|
||||
}
|
||||
|
||||
@SuppressWarnings("BooleanMethodIsAlwaysInverted")
|
||||
public boolean isConnected() {
|
||||
return connected;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Map<String, BallServerInfo> getAllServerInfo() {
|
||||
return serverInfo;
|
||||
|
Reference in New Issue
Block a user