Fixed port bug, possible random disconnect fix
This commit is contained in:
@@ -40,10 +40,10 @@ public class NetClient extends Module {
|
||||
|
||||
private Timer timer = new Timer(5);
|
||||
private boolean connecting = false;
|
||||
private boolean gotData = false;
|
||||
private boolean kicked = false;
|
||||
private IntSet recieved = new IntSet();
|
||||
private IntMap<Entity> recent = new IntMap<>();
|
||||
private float timeoutTime = 0f; //data timeout counter
|
||||
|
||||
public NetClient(){
|
||||
|
||||
@@ -53,8 +53,8 @@ public class NetClient extends Module {
|
||||
Net.setClientLoaded(false);
|
||||
recieved.clear();
|
||||
recent.clear();
|
||||
timeoutTime = 0f;
|
||||
connecting = true;
|
||||
gotData = false;
|
||||
kicked = false;
|
||||
|
||||
ui.chatfrag.clearMessages();
|
||||
@@ -77,14 +77,6 @@ public class NetClient extends Module {
|
||||
}
|
||||
|
||||
Net.send(c, SendMode.tcp);
|
||||
|
||||
Timers.runTask(dataTimeout, () -> {
|
||||
if (!gotData) {
|
||||
Log.err("Failed to load data!");
|
||||
ui.loadfrag.hide();
|
||||
Net.disconnect();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
Net.handleClient(Disconnect.class, packet -> {
|
||||
@@ -105,8 +97,6 @@ public class NetClient extends Module {
|
||||
NetworkIO.loadWorld(data.stream);
|
||||
player.set(world.getSpawnX(), world.getSpawnY());
|
||||
|
||||
gotData = true;
|
||||
|
||||
finishConnecting();
|
||||
});
|
||||
|
||||
@@ -123,7 +113,7 @@ public class NetClient extends Module {
|
||||
});
|
||||
|
||||
Net.handleClient(SyncPacket.class, packet -> {
|
||||
if (!gotData) return;
|
||||
if (connecting) return;
|
||||
int players = 0;
|
||||
int enemies = 0;
|
||||
|
||||
@@ -180,9 +170,8 @@ public class NetClient extends Module {
|
||||
}
|
||||
});
|
||||
|
||||
Net.handleClient(BreakPacket.class, (packet) -> {
|
||||
Placement.breakBlock(packet.x, packet.y, true, Timers.get("breakblocksound", 10));
|
||||
});
|
||||
Net.handleClient(BreakPacket.class, (packet) ->
|
||||
Placement.breakBlock(packet.x, packet.y, true, Timers.get("breakblocksound", 10)));
|
||||
|
||||
Net.handleClient(EntitySpawnPacket.class, packet -> {
|
||||
EntityGroup group = packet.group;
|
||||
@@ -246,7 +235,7 @@ public class NetClient extends Module {
|
||||
kicked = true;
|
||||
Net.disconnect();
|
||||
state.set(State.menu);
|
||||
ui.showError("$text.server.kicked." + packet.reason.name());
|
||||
if(!packet.reason.quiet) ui.showError("$text.server.kicked." + packet.reason.name());
|
||||
ui.loadfrag.hide();
|
||||
});
|
||||
|
||||
@@ -316,16 +305,22 @@ public class NetClient extends Module {
|
||||
if(!Net.client()) return;
|
||||
|
||||
if(!state.is(State.menu)){
|
||||
if(gotData) sync();
|
||||
if(!connecting) sync();
|
||||
}else if(!connecting){
|
||||
Net.disconnect();
|
||||
}else{ //...must be connecting
|
||||
timeoutTime += Timers.delta();
|
||||
if(timeoutTime > dataTimeout){
|
||||
Log.err("Failed to load data!");
|
||||
ui.loadfrag.hide();
|
||||
kicked = true;
|
||||
ui.showError("$text.disconnect.data");
|
||||
Net.disconnect();
|
||||
timeoutTime = 0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean hasData(){
|
||||
return gotData;
|
||||
}
|
||||
|
||||
public boolean isConnecting(){
|
||||
return connecting;
|
||||
}
|
||||
|
||||
@@ -377,7 +377,14 @@ public class Packets {
|
||||
}
|
||||
|
||||
public enum KickReason{
|
||||
kick, invalidPassword, clientOutdated, serverOutdated, banned
|
||||
kick, invalidPassword, clientOutdated, serverOutdated, banned, gameover(true);
|
||||
public final boolean quiet;
|
||||
|
||||
KickReason(){ quiet = false; }
|
||||
|
||||
KickReason(boolean quiet){
|
||||
this.quiet = quiet;
|
||||
}
|
||||
}
|
||||
|
||||
public static class UpgradePacket implements Packet{
|
||||
|
||||
@@ -130,8 +130,7 @@ public class DebugFragment implements Fragment {
|
||||
Net.client() ?
|
||||
"chat.open: " + ui.chatfrag.chatOpen() + "\n" +
|
||||
"chat.messages: " + ui.chatfrag.getMessagesSize() + "\n" +
|
||||
"client.connecting: " + netClient.isConnecting() + "\n" +
|
||||
"client.hasdata: " + netClient.hasData() : "",
|
||||
"client.connecting: " + netClient.isConnecting() + "\n" : "",
|
||||
"players: " + playerGroup.size(),
|
||||
"enemies: " + enemyGroup.size(),
|
||||
"tiles: " + tileGroup.size(),
|
||||
|
||||
Reference in New Issue
Block a user