Commit graph

1508 commits

Author SHA1 Message Date
Kamron Batman
ea5d09a7d7
fix(core): Fixes map issues at New Haven (#509)
- [X] Fixes map issues at New Haven by turning off static diffs
- [X] Some code cleanup and reformatting of tile matrix, tile matrix patch, and tile data
- [X] Adds NetState.Flush for generating spawners so it doesn't feel like the server is frozen
- [X] Reverts NativeReader changes from a while back.
- [X] Adds more string reading for BufferReader.


Notes:
BufferReader is still `little endian` compared to `SpanReader` which is `big endian` (for packets). To that end, the RunUO deserialization `ReadString()` was made obsolete since it is ambiguous, and contains extra fields other than simply reading a string. Furthermore, we shouldn't be using UTF8 (for now) since it is slow.
2021-02-14 16:06:49 -08:00
Kamron Batman
d070efeab3
fix(houses): Converts house packets (1 of 2) (#502)
- [X] Adds `ToSpan()` for SpanWriter.
- [X] Moves house files to UOContent/Multis/Houses
- [X] Adds house packets

### SpanWriter.ToSpan()
`ToSpan()` returns an `SpanOwner` struct which allows access to the buffer as a Span by calling `Span`.

Example:
```cs
public SpanOwner CreatePacket()
{
  var writer = new SpanWriter(0x400);
  // write some stuff
  return writer.ToSpan();
}
```
In this example, we are creating a packet and returning the `SpanOwner` for caching. This means in the future we can do something like this:
```cs
ns.Send(_cachedPacket.Span);
```
Where `_cachedPacket` is the `SpanOwner`

Notes:
Do not use a SpanWriter, or attempt to dispose of it after calling `ToSpan()`. Doing so will probably cause an NPE.
2021-02-13 09:18:12 -08:00
Kamron Batman
952a3e0265
fix(core): Handles a rare NPE with LoginTimer (#508) 2021-02-11 23:47:02 -08:00
Kamron Batman
b8a625dcd3
fix(network): Removes error messages for socket exceptions (#503) 2021-02-09 10:37:38 -08:00
Kamron Batman
6a80dfea00
fix(workflow): Fixes wrong branch (#505) 2021-02-09 10:32:39 -08:00
Kamron Batman
517190b820
fix(workflows): Deletes sonar cloud (#504) 2021-02-09 10:23:13 -08:00
Kamron Batman
d61f07abd5
fix(releases): Uses an access token for checkout (#501) 2021-02-08 16:33:50 -08:00
Kamron Batman
f1065b119d
fix(releases): Fixes broken merge (#500) 2021-02-08 16:24:32 -08:00
Kamron Batman
0895d43624
fix(releases): Adds git credentials (#499) 2021-02-08 16:21:03 -08:00
Kamron Batman
47dd962725
fix(releases): More cleanup (#498) 2021-02-08 15:54:48 -08:00
Kamron Batman
f107c96065
fix(releases): Add missing token for fake release tag (#497) 2021-02-08 15:51:58 -08:00
Kamron Batman
4bf8447530
fix(core): Fixes release token use (#496) 2021-02-08 15:37:00 -08:00
Kamron Batman
db76c941e6
fix(releases): Do not update tags remotely (#495) 2021-02-08 15:29:00 -08:00
Kamron Batman
ecf5a4f048
fix(release): Fixes error in syntax (#494) 2021-02-08 13:54:16 -08:00
Kamron Batman
e7f01c1326
fix(releases): Fix create release and remove old tag (#493) 2021-02-08 13:51:42 -08:00
Kamron Batman
6753822cd9
fix(releases): Adds fake release message (#492) 2021-02-08 13:43:39 -08:00
Kamron Batman
f43b1e1d4e
fix(releases): Fixes fake tag failing (#491) 2021-02-08 13:41:13 -08:00
Kamron Batman
c502af274e
fix(core): Tightens the netstate connection (#490)
- [X] Tightens TCP Server rejection/limiting
- [X] Relaxes receive task erroring so it doesn't spam on debug
- [X] Fixes off-by-one with number of netstates connected
- [X] Moves NetState start() to after it is attached to the Instances list.

Notes:
- In debug mode you may get socket exceptions related to the RecvTask or SendTask attempting to send/receive from a dead/broken socket. This can happen naturally in situations where the client is having trouble maintaining the connection, or abruptly disconnects.
2021-02-08 13:33:36 -08:00
Kamron Batman
1fd60c6f9f
fix(core): Fixes connecting with CUO/Orion (#489)
- [X] Fixes connecting with CUO/Orion.
- [X] Adds the ability to be strict with the protocol by passing STRICT_UO_PROTOCOL to the build process.
2021-02-08 11:57:00 -08:00
Kamron Batman
b9cb85855b
fix(releases): Fixes release deletion (#488) 2021-02-08 00:55:06 -08:00
Kamron Batman
17d8620cd1
fix(releases): Removes .NET 5 from releases workflow and fixes checkout tags (#487) 2021-02-08 00:51:43 -08:00
Kamron Batman
1cdd70ed46
fix(releases): Attempts to fix release tags (#486) 2021-02-08 00:45:17 -08:00
Kamron Batman
da00aef735
fix(releases): Fixes version detection (#485) 2021-02-07 23:50:07 -08:00
Kamron Batman
e75f92879f
fix(releases): Fixes version tagging (#484) 2021-02-07 23:44:29 -08:00
Kamron Batman
30dff3959a
fix(releases): Fixes release count (#483) 2021-02-07 23:35:38 -08:00
Kamron Batman
8903028b5f
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`
2021-02-07 23:30:56 -08:00
Kamron Batman
1736469ac0
fix(releases): Updates release flow. Fixes windows builds (#482) 2021-02-07 23:30:11 -08:00
Kamron Batman
1ed4a797a0
fix(release): Updates release flow (#481) 2021-02-07 22:37:29 -08:00
Kamron Batman
7c7490d3b4
fix(releases): Updates releases (#478)
- [X] Updates the workflows
- [X] Removes automatic releases.

Notes: We may need multiple release updates to get this right.
2021-02-07 09:09:50 -08:00
Kamron Batman
358839183d
fix(git): Updates git attributes (#477) 2021-02-06 21:15:29 -08:00
Kamron Batman
76035f6bd1
fix(recipes): Fixes NPE with recipes on PlayerMobile (#476) 2021-02-06 21:07:59 -08:00
Kamron Batman
bd87035f12
fix(core): Fixes ability to delete object type if it deserialized improperly (#475) 2021-02-06 21:03:47 -08:00
Kamron Batman
8d8a1b63bd
fix(vendors): Fixes DisplayCache deserialization (#471)
- [X] Fixes a dangerous mobile/item deletion in display caches during deserialization. This is left over from RunUO.

Notes: I broke up the deletion here because I didn't want to have to clear the mobiles list and trim excess. It is easier to just build a list of objects to delete and give the display cache a new list.

Closes #470
2021-02-06 19:49:19 -08:00
Jabin
52df92c452
fix(core): Fixes SpanReader moving position before read (#468) 2021-02-05 23:45:44 -08:00
Kamron Batman
67625ad249
fix(core): Removes disposable netstates. (#467)
- [X] Removes IDisposable from NetState
- [X] Swaps Disconnect and Dispose methods
2021-02-05 14:33:35 -08:00
Kamron Batman
079eeb1b96
fix(core): Fixes nullables being disabled (#466) 2021-02-05 14:09:57 -08:00
Kamron Batman
657233b2eb
fix(core): Fix bad world save state (#462) 2021-02-05 01:14:50 -08:00
Kamron Batman
97aa092f17
fix(core): Removes refs for network stack (#461) 2021-02-05 01:11:13 -08:00
Jabin
6295699b3d
fix(network): Adds setting NetState.PacketEncoder only if not null (#460) 2021-02-04 17:07:41 -08:00
Kamron Batman
40352cd566
fix(network): Fixes corpse packet (#456) 2021-02-04 14:05:24 -08:00
Kamron Batman
590c74a8fe
fix(core): Removes UOP file error message (#454) 2021-02-04 10:49:36 -08:00
Kamron Batman
3f73baf280
fix(factions): Fixes faction saw trap (#455)
Adds back missing serial constructor for faction saw trap.
2021-02-04 10:49:14 -08:00
Kamron Batman
50e9b367fc
fix(core): Fixes buy packet (#453)
- [X] Fixes buy packet
- [X] Changes from null to empty string in gump initial text
2021-02-04 10:40:41 -08:00
Kamron Batman
995149ad01
fix(core): Adds ability to store null value in ordered hash set (#447)
- [X] Adds the ability to store a null value in an ordered hash set

TODO:
Optimized the OrderedHashSet. See this:
* https://github.com/dotnet/runtime/issues/10050
Looks like the OrderedDictionary that I based this structure from was not updated.
See the source for diffing:
https://github.com/dotnet/runtime/blob/master/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/HashSet.cs

Difference between a HashSet and an OrderedHashSet is updating the indexes of the entries after fixing the chain to preserve insertion order.
2021-02-03 17:57:03 -08:00
Kamron Batman
3664149422
fix(shrink): Changes shrink table to use json (#446)
- [X] Replaces shrink.cfg with shrink.json
- [X] Cleans up shrink loading code
2021-02-03 16:58:50 -08:00
Kamron Batman
5d9ebf062f
core(fix): Fixes type aliasing, categorizations, and NPE (#444)
- [X] Fixes lookup of type aliases
- [X] Fixes categorization
- [X] Removes rebuild categorizations
- [X] Fixes an NPE with DoHarmful and Combatant

Closes #441
2021-02-03 16:14:04 -08:00
Kamron Batman
24ebdd0f90
fix(core): Fixes IPMatch and some cleanup (#443)
- [X] Fixes a bug where IPMatch was returning false on some IP ranges
- [X] Cleans up shrink table load.
2021-02-03 14:31:02 -08:00
Kamron Batman
cb22e662b4
fix(admin): Replaces vendors with spawners (#439)
- [X] Replaces vendors with spawners
2021-02-03 10:53:40 -08:00
Kamron Batman
c6e93a6814
fix(core): Fixes a few netstate issues (#436)
- [X] Fixes the order of disconnect/dispose
- [X] Removes IsDisposing
2021-02-01 20:37:51 -08:00
Kamron Batman
f147cb119f
fix: Reverts GitVersioning (#435) 2021-01-29 01:42:37 -08:00