mirror of
https://github.com/NotAKidoS/NAK_CVR_Mods.git
synced 2025-09-02 06:19:22 +00:00
57 lines
No EOL
1.8 KiB
C#
57 lines
No EOL
1.8 KiB
C#
using ABI_RC.Systems.ModNetwork;
|
|
|
|
namespace NAK.ShareBubbles.Networking;
|
|
|
|
public static partial class ModNetwork
|
|
{
|
|
|
|
#region Mod Network Internals
|
|
|
|
private static bool _isSubscribedToModNetwork;
|
|
|
|
internal static void Initialize()
|
|
{
|
|
// Packs the share bubble data a bit, also makes things just nicer
|
|
ShareBubbleData.AddConverterForModNetwork();
|
|
}
|
|
|
|
internal static void Subscribe()
|
|
{
|
|
ModNetworkManager.Subscribe(ModId, HandleMessageReceived);
|
|
|
|
_isSubscribedToModNetwork = ModNetworkManager.IsSubscribed(ModId);
|
|
if (!_isSubscribedToModNetwork) ShareBubblesMod.Logger.Error("Failed to subscribe to Mod Network! This should not happen.");
|
|
else ShareBubblesMod.Logger.Msg("Subscribed to Mod Network.");
|
|
}
|
|
|
|
internal static void Unsubscribe()
|
|
{
|
|
ModNetworkManager.Unsubscribe(ModId);
|
|
|
|
_isSubscribedToModNetwork = ModNetworkManager.IsSubscribed(ModId);
|
|
if (_isSubscribedToModNetwork) ShareBubblesMod.Logger.Error("Failed to unsubscribe from Mod Network! This should not happen.");
|
|
else ShareBubblesMod.Logger.Msg("Unsubscribed from Mod Network.");
|
|
}
|
|
|
|
#endregion Mod Network Internals
|
|
|
|
#region Pending Claim Requests
|
|
|
|
private static readonly Dictionary<uint, PendingClaimRequest> _pendingClaimRequests = new();
|
|
|
|
public class PendingClaimRequest
|
|
{
|
|
public TaskCompletionSource<ClaimResponseType> CompletionSource { get; }
|
|
public DateTime RequestTime { get; }
|
|
public uint BubbleId { get; }
|
|
|
|
public PendingClaimRequest(uint bubbleId)
|
|
{
|
|
CompletionSource = new TaskCompletionSource<ClaimResponseType>();
|
|
RequestTime = DateTime.UtcNow;
|
|
BubbleId = bubbleId;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
} |