fix(core): Tightens the network stack (#479)

- [X] Removes network pause/resume
- [X] Adds back packet profiler
- [X] Adds state machine to keep track and trace netstates
- [X] Changes NetState.Running back to using an interlock exchange
- [X] Adds preliminary packet throttling support


### Packet Throttling
- `[GetThrottle <packetId>` to get the delay in milliseconds for that packet
- `[SetThrottle <packetId> <delay>` to set the delay in milliseconds for that packet
The settings are saved to `Configuration/throttles.json`
This commit is contained in:
Kamron Batman 2021-02-07 23:30:56 -08:00 • committed by GitHub
parent 1736469ac0
commit 8903028b5f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
36 changed files with 1018 additions and 405 deletions

View file

@ -5,6 +5,7 @@ using Server.Engines.Quests.Haven;
using Server.Engines.Quests.Necro;
using Server.Engines.Spawners;
using Server.Items;
using Server.Network;
using Server.Utilities;
namespace Server.Commands
@ -27,6 +28,8 @@ namespace Server.Commands
m_Mobile.SendMessage("Generating world decoration, please wait.");
NetState.FlushAll();
Generate("Data/Decoration/Britannia", Map.Trammel, Map.Felucca);
Generate("Data/Decoration/Trammel", Map.Trammel);
Generate("Data/Decoration/Felucca", Map.Felucca);

View file

@ -6,6 +6,7 @@ using Server.Engines.Quests.Haven;
using Server.Engines.Quests.Necro;
using Server.Engines.Spawners;
using Server.Items;
using Server.Network;
using Server.Utilities;
namespace Server.Commands
@ -28,6 +29,8 @@ namespace Server.Commands
m_Mobile.SendMessage("Generating world decoration, please wait.");
NetState.FlushAll();
Generate("Data/Decoration/RuinedMaginciaTram", Map.Trammel);
Generate("Data/Decoration/RuinedMaginciaFel", Map.Felucca);

View file

@ -4,6 +4,7 @@ using System.IO;
using System.Text.Json.Serialization;
using Server.Items;
using Server.Json;
using Server.Network;
namespace Server.Commands
{
@ -68,6 +69,9 @@ namespace Server.Commands
var from = e.Mobile;
from.SendMessage("Generating teleporters, please wait.");
NetState.FlushAll();
var c = new TeleportersCreator();
if (!ProcessTeleporterData(from, c.CreateTeleporter))