private void fireLoginEvents() throws InterruptedException, ExecutionException {
if (!listener.networkManager.isConnected()) {
return;
}
String playerName = listener.profile.getName();
InetSocketAddress saddress = listener.networkManager.getAddress();
InetAddress address = saddress.getAddress();
PlayerPropertiesResolveEvent propResolve = new PlayerPropertiesResolveEvent(
ConnectionImpl.getFromChannel(listener.networkManager.getChannel()),
playerName, listener.profile.getProperties().values()
);
Bukkit.getPluginManager().callEvent(propResolve);
listener.profile.clearProperties();
for (ProfileProperty property : propResolve.getProperties().values()) {
listener.profile.addProperty(property);
}
UUID uniqueId = listener.profile.getUUID();
AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, uniqueId);
Bukkit.getPluginManager().callEvent(asyncEvent);
PlayerPreLoginEvent syncEvent = new PlayerPreLoginEvent(playerName, address, uniqueId);
if (asyncEvent.getResult() != PlayerPreLoginEvent.Result.ALLOWED) {
syncEvent.disallow(asyncEvent.getResult(), asyncEvent.getKickMessage());
}
if (PlayerPreLoginEvent.getHandlerList().getRegisteredListeners().length != 0) {
if (ServerPlatform.get().getMiscUtils().callSyncTask(() -> {
Bukkit.getPluginManager().callEvent(syncEvent);
return syncEvent.getResult();
}).get() != PlayerPreLoginEvent.Result.ALLOWED) {
listener.disconnect(syncEvent.getKickMessage());
return;
}
}
if (syncEvent.getResult() != PlayerPreLoginEvent.Result.ALLOWED) {
listener.disconnect(syncEvent.getKickMessage());
return;
}
listener.setReadyToAccept();
}
PlayerAuthenticationTask.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:ProtocolSupport
作者:
评论列表
文章目录