mirror of
https://github.com/DorkSquadRR/DorkNet.git
synced 2026-10-26 07:28:45 -07:00
d471b418b9
Targets Rec Room 2020.03.10 client (also serves 2020.03.06).
Re-import after adding:
- DorkNet.ClientMod/dorknet-clientmod.json.template — config schema
the launcher's manifest-driven patcher renders into UserData/.
- tools/build-patcher-zip.ps1 — produces dorknet-clientpatch-{key}.zip
for v1-march-* Release uploads.
- .github/workflows/release.yml — on tag push publishes both
dorknet-server-march_2020_03_10-win-x64.zip and
dorknet-clientpatch-march_2020_03_10.zip as Release assets.
Same scrub rules as december; tools/build-patcher-zip.ps1 added to
the maintainer-side allow-list so it survives.
30 lines
1.3 KiB
C#
30 lines
1.3 KiB
C#
namespace DorkNet.Server.Data.Entities;
|
|
|
|
/// <summary>
|
|
/// Join row marking that <see cref="PlayerId"/> is on the invite list
|
|
/// for <see cref="PrivateInstanceId"/>. Created when the owner sends an
|
|
/// invite via <c>POST /invite</c> (handled in <c>MessagesController</c>);
|
|
/// checked on <c>POST /goto/instance/{id}</c> by
|
|
/// <c>PrivateInstanceService.CanJoin</c>.
|
|
///
|
|
/// Composite PK on (PrivateInstanceId, PlayerId) — naturally unique;
|
|
/// repeat-invite calls become idempotent no-ops.
|
|
/// </summary>
|
|
public class PrivateInstanceInviteeEntity
|
|
{
|
|
public long PrivateInstanceId { get; set; }
|
|
public long PlayerId { get; set; }
|
|
public DateTime InvitedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
/// <summary>The MessageEntity.Id of the latest invite for this
|
|
/// (instance, player). Lets <c>GoToInvite</c> resolve the
|
|
/// roomInstanceId even when the watch's accept flow has already
|
|
/// raced through <c>POST /api/messages/v3/delete</c> and removed
|
|
/// the underlying message row. Without this column the server
|
|
/// returned ErrorCode 40 ("invite expired") for any successful
|
|
/// accept where DELETE landed first — which was the common case
|
|
/// because the 2020 watch fires DELETE and POST /goto/invite/{id}
|
|
/// in parallel.</summary>
|
|
public long? LatestInviteMessageId { get; set; }
|
|
}
|