fix: Reverts GetAccount to use IAccount. Adds IAccount to serialization. (#1565)

### Summary

- Fixes usernames not being `Intern`ed
- Reverts methods related to getting accounts from returning `Account` to `IAccount`.
- Makes `IAccount` also `ISerializable`
- Adds `IGenericReader.ReadAccount()` and `IGenericWriter.Write(IAccount)` -> The read method supports the original serialization of username, and using `IAccount.Serial`. The write method only serializes the `Serial`.
- Exposes `ReadStringRaw()` to allow some advanced scenarios.
This commit is contained in:
Kamron Batman 2023-10-25 19:17:57 -07:00 • committed by GitHub
parent a4e2226a5c
commit e6d30fef0f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 201 additions and 19 deletions

View file

@ -47,15 +47,19 @@ public class AccountPacketTests : IClassFixture<ServerFixture>
}
}
public void Delete()
{
throw new NotImplementedException();
}
public DateTime Created { get; set; }
public long SavePosition { get; set; }
public BufferWriter SaveBuffer { get; set; }
public Serial Serial { get; }
public void Deserialize(IGenericReader reader) => throw new NotImplementedException();
public void SetPassword(string password)
{
throw new NotImplementedException();
}
public void Serialize(IGenericWriter writer) => throw new NotImplementedException();
public bool Deleted { get; }
public void Delete() => throw new NotImplementedException();
public void SetPassword(string password) => throw new NotImplementedException();
public bool CheckPassword(string password) => throw new NotImplementedException();
}