Skip to content
This repository was archived by the owner on Sep 15, 2024. It is now read-only.

Commit 1f1d697

Browse files
debug
1 parent e1dc696 commit 1f1d697

5 files changed

Lines changed: 38 additions & 10 deletions

File tree

Scripts/Netcode/Common/CPacketPlayerPosition.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Godot;
22
using GodotModules.Netcode.Server;
33
using System;
4+
using System.Linq;
45

56
namespace GodotModules.Netcode
67
{
@@ -24,6 +25,13 @@ public override void Read(PacketReader reader)
2425
public override void Handle(ENet.Peer peer)
2526
{
2627
GameServer.Players[peer.ID].Position = Position;
28+
29+
foreach (var pair in GameServer.Players)
30+
{
31+
GameServer.Send(ServerPacketOpcode.PlayerPositions, new SPacketPlayerPositions {
32+
PlayerPositions = GameServer.Players.Where(x => x.Key != pair.Key).ToDictionary(x => x.Key, x => x.Value.Position)
33+
}, GameServer.Peers[pair.Key]);
34+
}
2735
}
2836
}
2937
}

Scripts/Netcode/Server/ENetServer.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,15 @@ public async Task ENetThreadWorker(ushort port, int maxClients)
130130
}
131131

132132
var handlePacket = HandlePacket[opcode];
133-
handlePacket.Read(packetReader);
133+
try
134+
{
135+
handlePacket.Read(packetReader);
136+
}
137+
catch (System.IO.EndOfStreamException)
138+
{
139+
Utils.LogErr($"[Server]: Received malformed opcode: {opcode} (Ignoring)");
140+
break;
141+
}
134142
handlePacket.Handle(netEvent.Peer);
135143

136144
packetReader.Dispose();

Scripts/Netcode/Server/GameServer.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@ public GameServer()
1919
{
2020
Players = new Dictionary<uint, DataPlayer>();
2121

22-
EmitClientPositions = new Timer(200);
22+
EmitClientPositions = new Timer(1000);
2323
EmitClientPositions.Elapsed += EmitClientPositionsCallback;
2424
EmitClientPositions.AutoReset = true;
2525
}
2626

2727
public void EmitClientPositionsCallback(System.Object source, ElapsedEventArgs args)
2828
{
29-
foreach (var pair in Players)
29+
/*foreach (var pair in GameServer.Players)
3030
{
31-
Send(ServerPacketOpcode.PlayerPositions, new SPacketPlayerPositions {
32-
PlayerPositions = Players.Where(x => x.Key != pair.Key).ToDictionary(x => x.Key, x => x.Value.Position)
33-
}, Peers[pair.Key]);
34-
}
31+
GameServer.Send(ServerPacketOpcode.PlayerPositions, new SPacketPlayerPositions {
32+
PlayerPositions = GameServer.Players.Where(x => x.Key != pair.Key).ToDictionary(x => x.Key, x => x.Value.Position)
33+
}, GameServer.Peers[pair.Key]);
34+
}*/
3535
}
3636

3737
protected override void Connect(Event netEvent)

Scripts/Scenes/Game/ClientPlayer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class ClientPlayer : OtherPlayer
1616
private Label LabelPosition { get; set; }
1717

1818
private float Speed = 250f;
19-
private static Timer EmitPosition { get; set; }
19+
public static Timer EmitPosition { get; set; }
2020

2121
public override void _Ready()
2222
{
@@ -26,7 +26,7 @@ public override void _Ready()
2626

2727
if (GameClient.Running)
2828
{
29-
EmitPosition = new Timer(200);
29+
EmitPosition = new Timer(1000);
3030
EmitPosition.Elapsed += EmitPositionCallback;
3131
EmitPosition.AutoReset = true;
3232
EmitPosition.Enabled = true;

Scripts/Scenes/Main/NetworkManager.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using System.Collections.Generic;
99
using System.Threading;
1010
using System.Threading.Tasks;
11+
using Game;
1112

1213
namespace GodotModules
1314
{
@@ -46,7 +47,15 @@ public override void _Process(float delta)
4647
}
4748

4849
var handlePacket = ENetClient.HandlePacket[opcode];
49-
handlePacket.Read(packetReader);
50+
try
51+
{
52+
handlePacket.Read(packetReader);
53+
}
54+
catch (System.IO.EndOfStreamException)
55+
{
56+
Utils.LogErr($"[Client]: Received malformed opcode: {opcode} (Ignoring)");
57+
break;
58+
}
5059
handlePacket.Handle();
5160

5261
packetReader.Dispose();
@@ -115,6 +124,9 @@ private static async Task ExitCleanup()
115124
if (ENetServer.CancelTokenSource != null)
116125
ENetServer.CancelTokenSource.Dispose();
117126

127+
if (ClientPlayer.EmitPosition != null)
128+
ClientPlayer.EmitPosition.Dispose();
129+
118130
Instance.GetTree().Quit();
119131
}
120132

0 commit comments

Comments
 (0)