Skip to content
This repository was archived by the owner on Jun 7, 2022. It is now read-only.

Commit d817dc5

Browse files
authored
Merge pull request #76 from CloudNetService/development
Merge development into master
2 parents 6c53839 + 038845d commit d817dc5

File tree

10 files changed

+39
-43
lines changed

10 files changed

+39
-43
lines changed

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pipeline {
1515
}
1616
stage('Version') {
1717
steps {
18-
sh 'mvn versions:set -DnewVersion=2.1.13'
18+
sh 'mvn versions:set -DnewVersion=2.1.13.1'
1919
}
2020
}
2121
stage('Compile') {

cloudnet-api/cloudnet-api-bridge/src/main/java/de/dytanic/cloudnet/bridge/ProxiedBootstrap.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import de.dytanic.cloudnet.bridge.internal.command.proxied.CommandPermissions;
1414
import de.dytanic.cloudnet.bridge.internal.command.proxied.defaults.CommandIp;
1515
import de.dytanic.cloudnet.bridge.internal.listener.proxied.ProxiedListener;
16-
import de.dytanic.cloudnet.bridge.internal.packetio.PacketOutProxyPing;
1716
import de.dytanic.cloudnet.lib.utility.CollectionWrapper;
1817
import de.dytanic.cloudnet.lib.utility.threading.Runnabled;
1918
import net.md_5.bungee.api.ProxyServer;
@@ -87,9 +86,9 @@ public void run()
8786
@Override
8887
public void run()
8988
{
90-
CloudAPI.getInstance().getNetworkConnection().sendPacket(new PacketOutProxyPing());
89+
CloudProxy.getInstance().update();
9190
}
92-
}, 0, 1, TimeUnit.MINUTES);
91+
}, 0, 1, TimeUnit.SECONDS);
9392
}
9493

9594
@Override

cloudnet-api/cloudnet-api-bridge/src/main/java/de/dytanic/cloudnet/bridge/internal/listener/proxied/ProxiedListener.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,15 @@ public void handleLogin(LoginEvent e)
125125
e.getConnection().isLegacy()
126126
);
127127

128-
CloudPlayer cloudPlayer = CloudAPI.getInstance().getNetworkConnection().getPacketManager().sendQuery(new PacketOutPlayerLoginRequest(playerConnection),
129-
CloudAPI.getInstance().getNetworkConnection()).getResult().getObject("player", new TypeToken<CloudPlayer>() {
128+
Document result = CloudAPI.getInstance().getNetworkConnection().getPacketManager().sendQuery(new PacketOutPlayerLoginRequest(playerConnection),
129+
CloudAPI.getInstance().getNetworkConnection()).getResult();
130+
131+
CloudPlayer cloudPlayer = result.getObject("player", new TypeToken<CloudPlayer>() {
130132
}.getType());
131133

132134
if (cloudPlayer == null)
133135
{
134-
e.setCancelReason(TextComponent.fromLegacyText("§cUnverified login."));
136+
e.setCancelReason(TextComponent.fromLegacyText("§cUnverified login. Reason: §e" + (result.contains("reason") ? result.getString("reason") : "no reason defined")));
135137
e.setCancelled(true);
136138
return;
137139
}

cloudnet-api/cloudnet-api-bridge/src/main/java/de/dytanic/cloudnet/bridge/internal/packetio/PacketOutProxyPing.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

cloudnet-api/cloudnet-api-core/src/main/java/de/dytanic/cloudnet/api/CloudAPI.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,15 +114,13 @@ public void shutdown()
114114
this.networkConnection.tryDisconnect();
115115
}
116116

117-
@Deprecated
118117
public CloudAPI update(ServerInfo serverInfo)
119118
{
120119
if (networkConnection.isConnected())
121120
networkConnection.sendPacket(new PacketOutUpdateServerInfo(serverInfo));
122121
return this;
123122
}
124123

125-
@Deprecated
126124
public CloudAPI update(ProxyInfo proxyInfo)
127125
{
128126
if (networkConnection.isConnected())

cloudnet-core/src/main/java/de/dytanic/cloudnetcore/network/NetworkManager.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import de.dytanic.cloudnetcore.util.MessageConfig;
4242
import lombok.Getter;
4343

44+
import java.util.ArrayList;
4445
import java.util.Collection;
4546
import java.util.LinkedList;
4647
import java.util.UUID;
@@ -87,15 +88,14 @@ public void handlePlayerLoginRequest(ProxyServer proxyServer, PlayerConnection c
8788
{
8889
if (this.onlinePlayers.containsKey(cloudPlayerConnection.getUniqueId()))
8990
{
90-
proxyServer.sendPacketSynchronized(new PacketOutLoginPlayer(uniqueId, null));
91+
proxyServer.sendPacketSynchronized(new PacketOutLoginPlayer(uniqueId, null, "Already connected in network"));
9192
return;
9293
}
9394

9495
LoginRequestEvent loginRequestEvent = new LoginRequestEvent(proxyServer, cloudPlayerConnection);
9596
CloudNet.getInstance().getEventManager().callEvent(loginRequestEvent);
9697

9798
PlayerDatabase playerDatabase = CloudNet.getInstance().getDbHandlers().getPlayerDatabase();
98-
9999
OfflinePlayer offlinePlayer = null;
100100

101101
if (!playerDatabase.containsPlayer(cloudPlayerConnection.getUniqueId()))
@@ -116,7 +116,7 @@ public void handlePlayerLoginRequest(ProxyServer proxyServer, PlayerConnection c
116116
cloudPlayer.setName(cloudPlayerConnection.getName());
117117
CloudNet.getInstance().getDbHandlers().getPlayerDatabase().updatePlayer(CloudPlayer.newOfflinePlayer(cloudPlayer));
118118

119-
proxyServer.sendPacketSynchronized(new PacketOutLoginPlayer(uniqueId, cloudPlayer));
119+
proxyServer.sendPacket(new PacketOutLoginPlayer(uniqueId, cloudPlayer, "successful Login"));
120120
this.waitingPlayers.put(cloudPlayer.getUniqueId(), cloudPlayer);
121121
handlePlayerLogin(cloudPlayer);
122122
}
@@ -141,14 +141,14 @@ public void handlePlayerLogout(CloudPlayer playerWhereAmI)
141141
try
142142
{
143143
System.out.println("Player [" + playerWhereAmI.getName() + NetworkUtils.SLASH_STRING + playerWhereAmI.getUniqueId() + NetworkUtils.SLASH_STRING + playerWhereAmI.getPlayerConnection().getHost() + "] is disconnected on " + playerWhereAmI.getProxy());
144-
} catch (Exception ex)
144+
} catch (Exception ignored)
145145
{
146146
}
147147

148148
try
149149
{
150150
this.onlinePlayers.remove(playerWhereAmI.getUniqueId());
151-
} catch (Exception ex)
151+
} catch (Exception ignored)
152152
{
153153

154154
}
@@ -160,7 +160,7 @@ public void handlePlayerLogout(CloudPlayer playerWhereAmI)
160160
playerWhereAmI.setLastLogin(System.currentTimeMillis());
161161
playerWhereAmI.setLastPlayerConnection(playerWhereAmI.getPlayerConnection());
162162
CloudNet.getInstance().getDbHandlers().getPlayerDatabase().updatePlayer(CloudPlayer.newOfflinePlayer(playerWhereAmI));
163-
} catch (Exception ex)
163+
} catch (Exception ignored)
164164
{
165165

166166
}
@@ -175,7 +175,7 @@ public void handlePlayerLogout(UUID uniqueId, ProxyServer proxyServer)
175175
try
176176
{
177177
this.onlinePlayers.remove(uniqueId);
178-
} catch (Exception ex)
178+
} catch (Exception ignored)
179179
{
180180
}
181181

@@ -219,6 +219,16 @@ public void handleProxyInfoUpdate(ProxyServer proxyServer, ProxyInfo incoming)
219219
{
220220
CloudNet.getInstance().getEventManager().callEvent(new ProxyInfoUpdateEvent(proxyServer, incoming));
221221

222+
Collection<UUID> players = new ArrayList<>();
223+
224+
for (ProxyServer proxy : CloudNet.getInstance().getProxys().values())
225+
for (MultiValue<UUID, String> multiValue : proxy.getProxyInfo().getPlayers())
226+
players.add(multiValue.getFirst());
227+
228+
for (CloudPlayer cloudPlayer : this.onlinePlayers.values())
229+
if (!players.contains(cloudPlayer.getUniqueId()))
230+
this.onlinePlayers.remove(cloudPlayer.getUniqueId());
231+
222232
this.sendAllUpdate(new PacketOutUpdateProxyInfo(incoming));
223233
this.sendAll(new PacketOutUpdateOnlineCount(getOnlineCount()));
224234
}

cloudnet-core/src/main/java/de/dytanic/cloudnetcore/network/packet/in/PacketInPlayerLoginRequest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public final class PacketInPlayerLoginRequest extends PacketInHandler {
1818
public void handleInput(Document data, PacketSender packetSender)
1919
{
2020
if (!(packetSender instanceof ProxyServer) && packetUniqueId != null) return;
21+
2122
PlayerConnection playerConnection = data.getObject("playerConnection", new TypeToken<PlayerConnection>() {
2223
}.getType());
2324
CloudNet.getInstance().getNetworkManager().handlePlayerLoginRequest(((ProxyServer) packetSender), playerConnection, packetUniqueId);

cloudnet-core/src/main/java/de/dytanic/cloudnetcore/network/packet/out/PacketOutLoginPlayer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ public PacketOutLoginPlayer(CloudPlayer cloudPlayer)
2121
super(PacketRC.PLAYER_HANDLE + 1, new Document("player", cloudPlayer));
2222
}
2323

24-
public PacketOutLoginPlayer(UUID uniqueId, CloudPlayer cloudPlayer)
24+
public PacketOutLoginPlayer(UUID uniqueId, CloudPlayer cloudPlayer, String reason)
2525
{
26-
super(uniqueId, PacketRC.PLAYER_HANDLE + 1, new Document("player", cloudPlayer));
26+
super(uniqueId, PacketRC.PLAYER_HANDLE + 1, new Document("player", cloudPlayer).append("reason", reason));
2727
}
2828
}

cloudnet-lib/src/main/java/de/dytanic/cloudnet/lib/network/protocol/packet/PacketManager.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,17 @@ public PacketManager queuePacket(Packet packet)
6464
public PacketManager dispatchQueue(PacketSender packetSender)
6565
{
6666
while (!this.packetQueue.isEmpty())
67-
{
6867
packetSender.sendPacket(this.packetQueue.remove());
69-
}
68+
7069
return this;
7170
}
7271

7372
public Result sendQuery(Packet packet, PacketSender packetSender)
7473
{
75-
UUID uniq = UUID.randomUUID();
76-
packet.uniqueId = uniq;
74+
UUID uniqueId = UUID.randomUUID();
75+
packet.uniqueId = uniqueId;
7776
Value<Result> handled = new Value<>(null);
78-
synchronizedHandlers.put(uniq, handled);
77+
synchronizedHandlers.put(uniqueId, handled);
7978
executorService.schedule(new Runnable() {
8079
@Override
8180
public void run()
@@ -84,20 +83,20 @@ public void run()
8483
}
8584
});
8685

87-
short i = 0;
86+
int i = 0;
8887

89-
while (synchronizedHandlers.get(uniq).getValue() == null && i++ < 5000)
88+
while (synchronizedHandlers.get(uniqueId).getValue() == null && i++ < 5000)
9089
try
9190
{
92-
Thread.sleep(0, 300000);
91+
Thread.sleep(0, 500000);
9392
} catch (InterruptedException ignored)
9493
{
9594
}
9695

97-
if (i >= 200) synchronizedHandlers.get(uniq).setValue(new Result(uniq, new Document()));
96+
if (i >= 4999) synchronizedHandlers.get(uniqueId).setValue(new Result(uniqueId, new Document()));
9897

99-
Value<Result> values = synchronizedHandlers.get(uniq);
100-
synchronizedHandlers.remove(uniq);
98+
Value<Result> values = synchronizedHandlers.get(uniqueId);
99+
synchronizedHandlers.remove(uniqueId);
101100
return values.getValue();
102101
}
103102

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<maven.compiler.target>1.8</maven.compiler.target>
1919
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2020
<project.build.targetEncoding>UTF-8</project.build.targetEncoding>
21-
<service.version>2.1.13</service.version>
21+
<service.version>2.1.13.1</service.version>
2222
<service.type>RELEASE</service.type>
2323
<!-- Dependencies -->
2424
<dependency.lombok.version>1.18.4</dependency.lombok.version>

0 commit comments

Comments
 (0)