Removed NioTSO client and server

- NioTSO client isn't needed because we're using RayLib
- Added FreeSO's API server to handle most backend operations
This commit is contained in:
Tony Bark 2024-05-01 02:55:43 -04:00
parent f12ba1502b
commit 22191ce648
591 changed files with 53264 additions and 3362 deletions

View file

@ -0,0 +1,69 @@
using FSO.Common.Serialization;
using FSO.Server.Protocol.Electron.Model;
using Mina.Core.Buffer;
namespace FSO.Server.Protocol.Electron.Packets
{
public class BulletinRequest : AbstractElectronPacket, IActionRequest
{
public BulletinRequestType Type;
public uint TargetNHood; //the bulletin board to use
//post message
public string Title = "";
public string Message = "";
public uint LotID; //0 if empty - optionally reference a lot in this bulletin post
//post message, delete message, promote message
public uint Value; //bulletin type if post, bulletin ID otherwise.
public object OType => Type;
public bool NeedsValidation => false; //the CAN POST items are one off requests, rather than a state machine.
public override void Deserialize(IoBuffer input, ISerializationContext context)
{
Type = input.GetEnum<BulletinRequestType>();
TargetNHood = input.GetUInt32();
if (Type == BulletinRequestType.POST_MESSAGE || Type == BulletinRequestType.POST_SYSTEM_MESSAGE)
{
Title = input.GetPascalString();
Message = input.GetPascalString();
LotID = input.GetUInt32();
}
Value = input.GetUInt32();
}
public override ElectronPacketType GetPacketType()
{
return ElectronPacketType.BulletinRequest;
}
public override void Serialize(IoBuffer output, ISerializationContext context)
{
output.PutEnum(Type);
output.PutUInt32(TargetNHood);
if (Type == BulletinRequestType.POST_MESSAGE || Type == BulletinRequestType.POST_SYSTEM_MESSAGE)
{
output.PutPascalString(Title);
output.PutPascalString(Message);
output.PutUInt32(LotID);
}
output.PutUInt32(Value);
}
}
public enum BulletinRequestType : byte
{
GET_MESSAGES = 0,
POST_MESSAGE,
PROMOTE_MESSAGE, //mayor/admin only.
CAN_POST_MESSAGE,
CAN_POST_SYSTEM_MESSAGE,
//admin
POST_SYSTEM_MESSAGE,
DELETE_MESSAGE,
}
}