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

Commit a7d54e1

Browse files
McRubenGiantTreeLP
authored andcommitted
Added debug command and some debugs, especially in the login section for the "Unverified Login" bug
1 parent 038845d commit a7d54e1

File tree

5 files changed

+55
-8
lines changed

5 files changed

+55
-8
lines changed

cloudnet-core/src/main/java/de/dytanic/cloudnetcore/CloudNet.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,8 @@ private void initialCommands()
384384
.registerCommand(new CommandLog())
385385
.registerCommand(new CommandCreate())
386386
.registerCommand(new CommandVersion())
387-
.registerCommand(new CommandInfo());
387+
.registerCommand(new CommandInfo())
388+
.registerCommand(new CommandDebug());
388389
}
389390

390391
private void initPacketHandlers()

cloudnet-core/src/main/java/de/dytanic/cloudnetcore/database/PlayerDatabase.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import de.dytanic.cloudnet.lib.player.PlayerConnection;
1313
import de.dytanic.cloudnet.lib.player.permission.PermissionEntity;
1414
import de.dytanic.cloudnet.lib.utility.document.Document;
15+
import de.dytanic.cloudnetcore.CloudNet;
16+
import de.dytanic.cloudnetcore.api.event.player.UpdatePlayerEvent;
1517

1618
import java.util.HashMap;
1719
import java.util.LinkedList;
@@ -37,9 +39,13 @@ public OfflinePlayer registerPlayer(PlayerConnection playerConnection)
3739

3840
public PlayerDatabase updatePlayer(OfflinePlayer offlinePlayer)
3941
{
42+
CloudNet.getLogger().debug("PlayerDatabase updatePlayer offlinePlayer null: " + (offlinePlayer == null));
43+
if (offlinePlayer == null) return this;
4044
Document document = database.getDocument(offlinePlayer.getUniqueId().toString());
4145
document.append("offlinePlayer", CloudPlayer.newOfflinePlayer(offlinePlayer));
4246
database.insert(document);
47+
CloudNet.getLogger().debug("PlayerDatabase updatePlayer call UpdatePlayerEvent");
48+
CloudNet.getInstance().getEventManager().callEvent(new UpdatePlayerEvent(offlinePlayer));
4349
return this;
4450
}
4551

@@ -70,11 +76,12 @@ public PlayerDatabase updatePermissionEntity(UUID uuid, PermissionEntity permiss
7076

7177
public OfflinePlayer getPlayer(UUID uniqueId)
7278
{
79+
CloudNet.getLogger().debug("PlayerDatabase getPlayer uniqueId " + uniqueId);
7380
if (uniqueId == null) return null;
7481
Document document = database.getDocument(uniqueId.toString());
75-
82+
CloudNet.getLogger().debug("PlayerDatabase getPlayer document null: " + (document == null));
7683
if (document == null) return null;
77-
84+
CloudNet.getLogger().debug("PlayerDatabase getPlayer offlinePlayer contained: " + document.contains("offlinePlayer"));
7885
return document.getObject("offlinePlayer", OfflinePlayer.TYPE);
7986
}
8087

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,14 @@ protected void channelRead0(ChannelHandlerContext channelHandlerContext, Object
134134

135135
if (!(obj instanceof Packet)) return;
136136

137-
CloudNet.getLogger().debug("Receiving Packet on " + getChannel().remoteAddress().toString());
138137
Packet packet = (Packet) obj;
138+
CloudNet.getLogger().debug(
139+
"Receiving Packet (id=" +
140+
CloudNet.getInstance().getPacketManager().packetId(packet) +
141+
";dataLength=" +
142+
CloudNet.getInstance().getPacketManager().packetData(packet).size()
143+
+ ") by " + getNetworkComponent().getServerId()
144+
);
139145
CloudNet.getInstance().getPacketManager().dispatchPacket(packet, networkComponent);
140146
}
141147

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

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,38 +86,58 @@ public void updateAll0()
8686

8787
public void handlePlayerLoginRequest(ProxyServer proxyServer, PlayerConnection cloudPlayerConnection, UUID uniqueId)
8888
{
89+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " onlinePlayers");
8990
if (this.onlinePlayers.containsKey(cloudPlayerConnection.getUniqueId()))
9091
{
9192
proxyServer.sendPacketSynchronized(new PacketOutLoginPlayer(uniqueId, null, "Already connected in network"));
9293
return;
9394
}
9495

96+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " call LoginRequestEvent");
9597
LoginRequestEvent loginRequestEvent = new LoginRequestEvent(proxyServer, cloudPlayerConnection);
9698
CloudNet.getInstance().getEventManager().callEvent(loginRequestEvent);
9799

98100
PlayerDatabase playerDatabase = CloudNet.getInstance().getDbHandlers().getPlayerDatabase();
99101
OfflinePlayer offlinePlayer = null;
100102

101-
if (!playerDatabase.containsPlayer(cloudPlayerConnection.getUniqueId()))
103+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " database contains");
104+
if (!playerDatabase.containsPlayer(cloudPlayerConnection.getUniqueId())) {
105+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " database register");
102106
offlinePlayer = playerDatabase.registerPlayer(cloudPlayerConnection);
107+
}
103108

104-
if (offlinePlayer == null) offlinePlayer = playerDatabase.getPlayer(cloudPlayerConnection.getUniqueId());
109+
if (offlinePlayer == null) {
110+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " database get");
111+
offlinePlayer = playerDatabase.getPlayer(cloudPlayerConnection.getUniqueId());
112+
}
105113

114+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " create CloudPlayer");
106115
CloudPlayer cloudPlayer = new CloudPlayer(offlinePlayer, cloudPlayerConnection, proxyServer.getServerId());
107116
cloudPlayer.setPlayerExecutor(CorePlayerExecutor.INSTANCE);
108117

109-
if (cloudPlayer.getFirstLogin() == null) cloudPlayer.setFirstLogin(System.currentTimeMillis());
118+
if (cloudPlayer.getFirstLogin() == null) {
119+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " set firstLogin");
120+
cloudPlayer.setFirstLogin(System.currentTimeMillis());
121+
}
110122

123+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " call PlayerInitEvent");
111124
CloudNet.getInstance().getEventManager().callEvent(new PlayerInitEvent(cloudPlayer));
112125

126+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " NameToUUIDDatabase append");
113127
CloudNet.getInstance().getDbHandlers().getNameToUUIDDatabase().append(new MultiValue<>(cloudPlayerConnection.getName(), cloudPlayerConnection.getUniqueId()));
128+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " NameToUUIDDatabase replace");
114129
CloudNet.getInstance().getDbHandlers().getNameToUUIDDatabase().replace(new MultiValue<>(cloudPlayerConnection.getUniqueId(), cloudPlayerConnection.getName()));
115130

131+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " setName");
116132
cloudPlayer.setName(cloudPlayerConnection.getName());
133+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " updatePlayer");
117134
CloudNet.getInstance().getDbHandlers().getPlayerDatabase().updatePlayer(CloudPlayer.newOfflinePlayer(cloudPlayer));
118135

136+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " PacketOutLoginPlayer");
119137
proxyServer.sendPacket(new PacketOutLoginPlayer(uniqueId, cloudPlayer, "successful Login"));
138+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " waitingPlayers");
120139
this.waitingPlayers.put(cloudPlayer.getUniqueId(), cloudPlayer);
140+
CloudNet.getLogger().debug("player login request " + cloudPlayerConnection.getName() + "#" + uniqueId + " handlePlayerLogin");
121141
handlePlayerLogin(cloudPlayer);
122142
}
123143

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

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,13 @@ public interface INetworkComponent extends PacketSender, ChannelUser {
2222

2323
default void sendPacket(Packet packet)
2424
{
25-
CloudNet.getLogger().debug("Sending Packet " + packet.getClass().getSimpleName() + " to " + getServerId());
25+
CloudNet.getLogger().debug(
26+
"Sending Packet " +
27+
packet.getClass().getSimpleName() +
28+
" (id=" + CloudNet.getInstance().getPacketManager().packetId(packet) +
29+
";dataLength=" + CloudNet.getInstance().getPacketManager().packetData(packet).size() +
30+
") to " + getServerId()
31+
);
2632

2733
if (getChannel() == null) return;
2834
if (getChannel().eventLoop().inEventLoop())
@@ -62,6 +68,13 @@ default void sendPacket(Packet... packets)
6268
default void sendPacketSynchronized(Packet packet)
6369
{
6470
if (getChannel() == null) return;
71+
CloudNet.getLogger().debug(
72+
"Sending Packet " +
73+
packet.getClass().getSimpleName() +
74+
" (id=" + CloudNet.getInstance().getPacketManager().packetId(packet) +
75+
";dataLength=" + CloudNet.getInstance().getPacketManager().packetData(packet).size() +
76+
") to " + getServerId()
77+
);
6578
getChannel().writeAndFlush(packet).syncUninterruptibly();
6679
}
6780

0 commit comments

Comments
 (0)