Files
ClaimLinkVisualizer/ClaimLinkVisualizer/ClaimLinkVisualizerServer.cs
T

48 lines
1.5 KiB
C#

using System.Collections.Generic;
using ClaimLink;
using Vintagestory.API.MathTools;
using Vintagestory.API.Server;
namespace ClaimLinkVisualizer;
internal static class ClaimLinkVisualizerServer
{
internal static void Start(ICoreServerAPI api)
{
api.Network
.RegisterChannel(ClaimLinkVisualizerModSystem.ChannelName)
.RegisterMessageType<ClaimLinkBufferRequest>()
.RegisterMessageType<ClaimLinkBufferResponse>()
.SetMessageHandler<ClaimLinkBufferRequest>((fromPlayer, _) =>
SendBuffers(api, fromPlayer)
);
}
private static void SendBuffers(ICoreServerAPI api, IServerPlayer toPlayer)
{
ClaimLinkBufferResponse response = new();
foreach (var (groupId, cuboids) in ClaimLinkApi.BufferMap)
{
ClaimLinkBufferEntryDto entry = new() { GroupId = groupId };
foreach (Cuboidi cuboid in cuboids)
entry.Cuboids.Add(
new BufferCuboidDto
{
MinX = cuboid.MinX,
MinY = cuboid.MinY,
MinZ = cuboid.MinZ,
MaxX = cuboid.MaxX,
MaxY = cuboid.MaxY,
MaxZ = cuboid.MaxZ,
}
);
response.Entries.Add(entry);
}
api.Network
.GetChannel(ClaimLinkVisualizerModSystem.ChannelName)
.SendPacket(response, toPlayer);
}
}