提交示例代码

This commit is contained in:
Bob.Song
2026-03-05 11:39:06 +08:00
commit 25958f58c3
2534 changed files with 209593 additions and 0 deletions

Binary file not shown.

View File

@@ -0,0 +1,41 @@
using System.Reflection;
using System.Runtime.Loader;
namespace Fantasy
{
public static class AssemblyHelper
{
private const string HotfixDll = "Hotfix";
private static AssemblyLoadContext? _assemblyLoadContext = null;
public static System.Reflection.Assembly[] Assemblies
{
get
{
var assemblies = new System.Reflection.Assembly[2];
assemblies[0] = LoadEntityAssembly();
assemblies[1] = LoadHotfixAssembly();
return assemblies;
}
}
private static System.Reflection.Assembly LoadEntityAssembly()
{
return typeof(AssemblyHelper).Assembly;
}
private static System.Reflection.Assembly LoadHotfixAssembly()
{
if (_assemblyLoadContext != null)
{
_assemblyLoadContext.Unload();
System.GC.Collect();
}
_assemblyLoadContext = new AssemblyLoadContext(HotfixDll, true);
var dllBytes = File.ReadAllBytes(Path.Combine(Environment.CurrentDirectory, $"{HotfixDll}.dll"));
var pdbBytes = File.ReadAllBytes(Path.Combine(Environment.CurrentDirectory, $"{HotfixDll}.pdb"));
return _assemblyLoadContext.LoadFromStream(new MemoryStream(dllBytes), new MemoryStream(pdbBytes));
}
}
}

View File

@@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<Folder Include="Enum\" />
<Folder Include="Generate\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Packages\Fantasy\Fantasy.Net\Fantasy.Net\Fantasy.Net.csproj" />
<ProjectReference Include="..\..\Packages\Fantasy\Fantasy.Packages\Fantasy.ConfigTable\Net\Fantasy.ConfigTable.csproj" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,12 @@
using Fantasy.Entitas;
using Fantasy.Entitas.Interface;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson.Serialization.Options;
namespace Fantasy;
public class BagComponent : Entity, ISupportedDataBase
{
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public Dictionary<long, Item> Items = new Dictionary<long, Item>();
}

View File

@@ -0,0 +1,240 @@
using Fantasy.Assembly;
using Fantasy.Async;
using Fantasy.DataStructure.Collection;
using Fantasy.Entitas;
#pragma warning disable CS8604 // Possible null reference argument.
#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type.
namespace Fantasy;
public class ItemUseComponent : Entity, IAssembly
{
private readonly Dictionary<int, IItemUse> _handlers = new Dictionary<int, IItemUse>();
private readonly OneToManyList<long, int> _assemblyHandlers = new OneToManyList<long, int>();
public override void Dispose()
{
base.Dispose();
_handlers.Clear();
_assemblyHandlers.Clear();
}
#region Assembly
public async FTask Initialize()
{
await AssemblySystem.Register(this);
}
public async FTask Load(long assemblyIdentity)
{
var tcs = FTask.Create(false);
Scene.ThreadSynchronizationContext.Post(() =>
{
InnerLoad(assemblyIdentity);
tcs.SetResult();
});
await tcs;
}
public async FTask ReLoad(long assemblyIdentity)
{
var tcs = FTask.Create(false);
Scene.ThreadSynchronizationContext.Post(() =>
{
InnerUnLoad(assemblyIdentity);
InnerLoad(assemblyIdentity);
tcs.SetResult();
});
await tcs;
}
public async FTask OnUnLoad(long assemblyIdentity)
{
var tcs = FTask.Create(false);
Scene.ThreadSynchronizationContext.Post(() =>
{
InnerUnLoad(assemblyIdentity);
tcs.SetResult();
});
await tcs;
}
private void InnerLoad(long assemblyIdentity)
{
foreach (var type in AssemblySystem.ForEach(assemblyIdentity,typeof(IItemUse)))
{
var customAttributes = type.GetCustomAttributes(typeof(ItemUseAttribute), false);
if (customAttributes.Length == 0)
{
Log.Warning($"type {type.FullName} Implemented the interface of IItemUse, requiring the implementation of ItemUseAttribute");
continue;
}
var instance = (IItemUse)Activator.CreateInstance(type);
foreach (ItemUseAttribute customAttribute in customAttributes)
{
var customAttributeType = (int)customAttribute.Type;
_handlers.Add(customAttributeType, instance);
_assemblyHandlers.Add(assemblyIdentity, customAttributeType);
}
}
}
private void InnerUnLoad(long assemblyIdentity)
{
if (!_assemblyHandlers.TryGetValue(assemblyIdentity, out var assemblyHandlers))
{
return;
}
foreach (var assemblyHandler in assemblyHandlers)
{
_handlers.Remove(assemblyHandler);
}
_assemblyHandlers.RemoveByKey(assemblyIdentity);
}
#endregion
public uint CanUse(Account account, ItemConfig config, ref int count)
{
var itemUseEffect = (ItemUseEffect)config.Effect;
if (itemUseEffect == ItemUseEffect.None)
{
Log.Error($"config.Effect is zero!");
return 1;
}
return CanUse(account, config, itemUseEffect, ref count);
}
public void Use(Account account, ItemConfig config, ref int count)
{
var itemUseEffect = (ItemUseEffect)config.Effect;
if (itemUseEffect == ItemUseEffect.None)
{
Log.Error($"config.Effect is zero!");
return;
}
if (!_handlers.TryGetValue((int)itemUseEffect, out var handler))
{
return;
}
handler.Use(account, config, ref count);
}
public uint UseHandler(Account account, ItemConfig config, ref int count)
{
var itemUseEffect = (ItemUseEffect)config.Effect;
if (itemUseEffect == ItemUseEffect.None)
{
Log.Error($"config.Effect is zero!");
return 1;
}
if (!_handlers.TryGetValue((int)itemUseEffect, out var handler))
{
return 0;
}
var canUse = handler.CanUse(account, config, ref count);
if (canUse != 0)
{
return canUse;
}
handler.Use(account, config, ref count);
return 0;
}
public uint CanUse(Account account, ItemConfig config, ItemUseEffect itemUseEffect, ref int count)
{
if (!_handlers.TryGetValue((int)itemUseEffect, out var handler))
{
return 0;
}
return handler.CanUse(account, config, ref count);
}
public void Use(Account account, ItemConfig config, ItemUseEffect itemUseEffect, ref int count)
{
if (!_handlers.TryGetValue((int)itemUseEffect, out var handler))
{
return;
}
handler.Use(account, config, ref count);
}
public uint UseHandler(Account account, ItemConfig config, ItemUseEffect itemUseEffect, ref int count)
{
if (!_handlers.TryGetValue((int)itemUseEffect, out var handler))
{
return 0;
}
var canUse = handler.CanUse(account, config, ref count);
if (canUse != 0)
{
return canUse;
}
handler.Use(account, config, ref count);
return 0;
}
}
// public static class ItemUseHelper
// {
// private static readonly Dictionary<int, IItemUse> Handlers = new Dictionary<int, IItemUse>();
//
// public static void Init()
// {
// Handlers.Add((int)ItemType.Drug, new ItemUse_Drug());
// Handlers.Add((int)ItemType.Equip , new ItemUse_Equip());
// }
//
// public static uint CanUse(Account account, ItemConfig config, ref int count)
// {
// if (!Handlers.TryGetValue((int)config.Type, out var handler))
// {
// return 0;
// }
//
// return handler.CanUse(account, config, ref count);
// }
//
// public static void Use(Account account, ItemConfig config, ref int count)
// {
// if (!Handlers.TryGetValue((int)config.Type, out var handler))
// {
// return;
// }
//
// handler.Use(account, config, ref count);
// }
//
// public static uint UseHandler(Account account, ItemConfig config, ref int count)
// {
// if (!Handlers.TryGetValue((int)config.Type, out var handler))
// {
// return 0;
// }
//
// var canUse = handler.CanUse(account, config, ref count);
// if (canUse != 0)
// {
// return canUse;
// }
//
// handler.CanUse(account, config, ref count);
// return 0;
// }
// }

View File

@@ -0,0 +1,51 @@
using Fantasy.DataStructure.Collection;
using Fantasy.Entitas;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson.Serialization.Options;
namespace Fantasy;
/// <summary>
/// 代表一个容器的实体
/// </summary>
public sealed class Container : Entity
{
/// <summary>
/// 配置表ID
/// </summary>
public uint ConfigId;
/// <summary>
/// 账户的实体
/// </summary>
[BsonIgnore]
public Account Account;
/// <summary>
/// 对应的Config配置文件
/// </summary>
[BsonIgnore]
public ContainerConfig Config => ContainerConfigData.Instance.Get(ConfigId);
/// <summary>
/// 当前已经使用的格子的数量
/// </summary>
public int CurrentCellCount;
/// <summary>
/// 容器内的物品
/// </summary>
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public Dictionary<long, Item> Items = new Dictionary<long, Item>();
/// <summary>
/// 容器内的物品,按照格子进行存储
/// </summary>
[BsonIgnore]
public Dictionary<long, Item> ItemsByCell = new Dictionary<long, Item>();
/// <summary>
/// 容器内的物品按照物品配置ID进行分组
/// </summary>
[BsonIgnore]
public readonly OneToManyList<uint, Item> ItemsByConfigId = new OneToManyListPool<uint, Item>();
/// <summary>
/// 容器内的物品,按照物品类型进行分组
/// </summary>
[BsonIgnore]
public readonly OneToManyList<uint, Item> ItemsByType = new OneToManyListPool<uint, Item>();
}

View File

@@ -0,0 +1,34 @@
using Fantasy.Entitas;
using Fantasy.Entitas.Interface;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson.Serialization.Options;
namespace Fantasy;
/// <summary>
/// 把用户的所有容器都放在一个组件里,这样保存的时候也会存储在一个文档里。
/// 如果物品数据过多,可能会超过数据库单条的限制。
/// MongoDB的数据库的单个文档的最大大小限制为16MB。
/// 所以这个几乎不会出现的完全不需要考虑这个大小的问题了。因为几乎把玩家可能有16MB的物品。
/// </summary>
public sealed class ContainerComponent : Entity, ISupportedDataBase
{
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public Dictionary<int, Container> Containers = new Dictionary<int, Container>();
}
// 如果不放心,可以把每个容器单独做一个组件存起来
// 例如下面
/// <summary>
/// 背包容器组件
/// </summary>
public sealed class BagContainerComponent : Entity, ISupportedDataBase
{
public Container Container;
}
/// <summary>
/// 装备容器组件
/// </summary>
public sealed class EquipContainerComponent : Entity, ISupportedDataBase
{
public Container Container;
}

View File

@@ -0,0 +1,54 @@
using Fantasy.Entitas;
using Fantasy.Entitas.Interface;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson.Serialization.Options;
namespace Fantasy;
/// <summary>
/// 代表装备的某一个属性
/// </summary>
public class EquipAttr : Entity
{
[BsonElement("K")]
public int Key; // 属性数值对应的Key
[BsonElement("V")]
public int Value; // 属性对应额数值
[BsonElement("S")]
public int SValue; // 附加或强化属性的对应数值
[BsonIgnore]
public int ValidValue => Value + SValue; // 真实的数值
}
/// <summary>
/// 挂载到Item下的组件用来表示这个Item是一个装备
/// </summary>
public class EquipComponent : Entity, ISupportedDataBase
{
/// <summary>
/// 主属性
/// </summary>
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public Dictionary<int, EquipAttr> MainAttrs = new Dictionary<int, EquipAttr>();
/// <summary>
/// 附加(副)属性
/// </summary>
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public Dictionary<int, EquipAttr> EntryAttrs = new Dictionary<int, EquipAttr>();
/// <summary>
/// 词缀
/// </summary>
public List<uint> Affixs = new List<uint>();
public int DurableMax; // 耐久度上限
public int Durable; // 耐久度
}
/*
* {"sdfsdfsdfsdf":111}
* {"s":111}
* 2000,100 = 150 - 50 = 100
* 2001,200
*
* 优化后的处理方式
* 2000100 50 = 100 + 50 = 150
* 50 - 50 = 0 100 + 0 = 100
* 力量 + 50 (+20)
*/

View File

@@ -0,0 +1,30 @@
namespace Fantasy;
public enum EquipPosition
{
None = 0,
/// <summary>
/// 武器
/// </summary>
Weapon = 1,
/// <summary>
/// 头盔
/// </summary>
Helmet = 2,
/// <summary>
/// 衣服
/// </summary>
Clothing = 3,
/// <summary>
/// 护腿
/// </summary>
Leggings = 4,
/// <summary>
/// 护腕
/// </summary>
Bracer = 5,
/// <summary>
/// 鞋子
/// </summary>
Shoe = 6,
}

View File

@@ -0,0 +1,21 @@
namespace Fantasy;
/// <summary>
/// 物品操作原因
/// </summary>
public enum ItemReason
{
None = 0,
ContainerAdd = 1, // 容器初始化添加物品
ContainerRemove = 2, // 容器移除物品
ContainerSplit = 3, // 容器拆分物品
Drop = 4, // 掉落物品
Mail = 5, // 邮件领取物品
Sort = 6, // 物品排序
ItemUse = 7, // 物品使用扣除
ItemTestAdd = 8, // 测试添加物品
UnMountEquipAdd = 9, // 卸载装备添加(一般是装备容器移除,然后添加到背包容器中)
UnMountEquipRemove = 10, // 卸载装备移除(一般是在装备容器里移除掉)
MountEquipAdd = 11, // 装备添加(一般是在装备容器里添加)
MountEquipRemove = 12, // 装备移除(一般是在装备容器里添加,背包容器里移除)
}

View File

@@ -0,0 +1,16 @@
using Fantasy.Entitas;
using Fantasy.Network;
using MongoDB.Bson.Serialization.Attributes;
namespace Fantasy;
public sealed class Account : Entity
{
public string UserName;
public string Password;
public uint ConfigId;
[BsonIgnore]
public UnitConfig UnitConfig => UnitConfigData.Instance.Get(ConfigId);
[BsonIgnore]
public Session Session;
}

View File

@@ -0,0 +1,29 @@
using Fantasy.Entitas;
using MongoDB.Bson.Serialization.Attributes;
namespace Fantasy;
/// <summary>
/// 代表游戏中的一个物品
/// </summary>
public class Item : Entity
{
public long CellId; // 格子Id x , y x | y = long
public int Count; // 数量(叠加)
public bool IsBind; // 是否绑定
public uint ConfigId; // 配置表Id
[BsonIgnore]
public Container Container;
[BsonIgnore]
public ItemConfig Config => ItemConfigData.Instance.Get(ConfigId);
}
/// <summary>
/// 用于创建Item使用
/// </summary>
public struct ItemCreateParams
{
public uint ConfigId;
public int Count;
public bool IsBind;
}

View File

@@ -0,0 +1,34 @@
using Fantasy;
namespace Fantasy;
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true,Inherited = false)]
public sealed class ItemUseAttribute : Attribute
{
public ItemUseEffect Type { get; }
public ItemUseAttribute(ItemUseEffect type)
{
Type = type;
}
}
public interface IItemUse
{
/// <summary>
/// 正常的情况下应该是使用Unit,因为这个代表的是某一个单位。
/// 由于课程中没有这个Unit所以暂时用Account来代替。
/// </summary>
/// <param name="account"></param>
/// <param name="config"></param>
/// <param name="count"></param>
/// <returns></returns>
uint CanUse(Account account, ItemConfig config, ref int count);
/// <summary>
/// 使用物品的逻辑。
/// </summary>
/// <param name="account"></param>
/// <param name="config"></param>
/// <param name="count"></param>
void Use(Account account, ItemConfig config, ref int count);
}

Binary file not shown.

View File

@@ -0,0 +1,105 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
using Fantasy.ConfigTable;
using Fantasy.Serialize;
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class ContainerConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<ContainerConfig> List { get; set; } = new List<ContainerConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, ContainerConfig> _configs = new ConcurrentDictionary<uint, ContainerConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, ContainerConfig> _configs = new Dictionary<uint, ContainerConfig>();
#endif
private static ContainerConfigData _instance = null;
public static ContainerConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<ContainerConfigData>(); }
private set => _instance = value;
}
public ContainerConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"ContainerConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out ContainerConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class ContainerConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string Name { get; set; } // 名字
[ProtoMember(3)]
public int Type { get; set; } // 容器类型
[ProtoMember(4)]
public int CellCountMax { get; set; } // 容器最大的格子数
[ProtoMember(5)]
public int CellCount { get; set; } // 初始解锁格子
[ProtoMember(6)]
public bool CanSort { get; set; } // 是否可以整理
[ProtoMember(7)]
public int SortCD { get; set; } // 是否可以整理
}
}

View File

@@ -0,0 +1,97 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
using Fantasy.ConfigTable;
using Fantasy.Serialize;
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class EquipAffixConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<EquipAffixConfig> List { get; set; } = new List<EquipAffixConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, EquipAffixConfig> _configs = new ConcurrentDictionary<uint, EquipAffixConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, EquipAffixConfig> _configs = new Dictionary<uint, EquipAffixConfig>();
#endif
private static EquipAffixConfigData _instance = null;
public static EquipAffixConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<EquipAffixConfigData>(); }
private set => _instance = value;
}
public EquipAffixConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"EquipAffixConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out EquipAffixConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class EquipAffixConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public uint BuffConfigId { get; set; } // 触发的Buff
[ProtoMember(3)]
public string Descride { get; set; } // 介绍
}
}

View File

@@ -0,0 +1,105 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
using Fantasy.ConfigTable;
using Fantasy.Serialize;
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class EquipEntryConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<EquipEntryConfig> List { get; set; } = new List<EquipEntryConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, EquipEntryConfig> _configs = new ConcurrentDictionary<uint, EquipEntryConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, EquipEntryConfig> _configs = new Dictionary<uint, EquipEntryConfig>();
#endif
private static EquipEntryConfigData _instance = null;
public static EquipEntryConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<EquipEntryConfigData>(); }
private set => _instance = value;
}
public EquipEntryConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"EquipEntryConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out EquipEntryConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class EquipEntryConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public int Min { get; set; } // 词条最小数
[ProtoMember(3)]
public int Max { get; set; } // 词条最大数
[ProtoMember(4)]
public int AffixMin { get; set; } // 词缀最小数
[ProtoMember(5)]
public int AffixMax { get; set; } // 词缀最大数
[ProtoMember(6)]
public uint[] Affix { get; set; } = Array.Empty<uint>(); // 词缀列表
[ProtoMember(7)]
public int[] Attrs { get; set; } = Array.Empty<int>(); // 属性数组
}
}

View File

@@ -0,0 +1,101 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
using Fantasy.ConfigTable;
using Fantasy.Serialize;
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class EquipValueConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<EquipValueConfig> List { get; set; } = new List<EquipValueConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, EquipValueConfig> _configs = new ConcurrentDictionary<uint, EquipValueConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, EquipValueConfig> _configs = new Dictionary<uint, EquipValueConfig>();
#endif
private static EquipValueConfigData _instance = null;
public static EquipValueConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<EquipValueConfigData>(); }
private set => _instance = value;
}
public EquipValueConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"EquipValueConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out EquipValueConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class EquipValueConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public uint ItemConfigId { get; set; } // ItemConfigId
[ProtoMember(3)]
public uint EquipEntryConfigId { get; set; } // EquipEntryConfigId
[ProtoMember(4)]
public int Quality { get; set; } // 品质
[ProtoMember(5)]
public IntDictionaryConfig MainAttrs { get; set; } // 法术强度
}
}

View File

@@ -0,0 +1,97 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
using Fantasy.ConfigTable;
using Fantasy.Serialize;
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class ErrorCodeData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<ErrorCode> List { get; set; } = new List<ErrorCode>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, ErrorCode> _configs = new ConcurrentDictionary<uint, ErrorCode>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, ErrorCode> _configs = new Dictionary<uint, ErrorCode>();
#endif
private static ErrorCodeData _instance = null;
public static ErrorCodeData Instance
{
get { return _instance ??= ConfigTableHelper.Load<ErrorCodeData>(); }
private set => _instance = value;
}
public ErrorCode Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"ErrorCode not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out ErrorCode config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class ErrorCode : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string Name { get; set; } // 名称
[ProtoMember(3)]
public string Text { get; set; } // 文本内容
}
}

View File

@@ -0,0 +1,123 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
using Fantasy.ConfigTable;
using Fantasy.Serialize;
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class ItemConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<ItemConfig> List { get; set; } = new List<ItemConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, ItemConfig> _configs = new ConcurrentDictionary<uint, ItemConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, ItemConfig> _configs = new Dictionary<uint, ItemConfig>();
#endif
private static ItemConfigData _instance = null;
public static ItemConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<ItemConfigData>(); }
private set => _instance = value;
}
public ItemConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"ItemConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out ItemConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class ItemConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string Name { get; set; } // 名称
[ProtoMember(3)]
public string Descride { get; set; } // 描述
[ProtoMember(4)]
public int Weight { get; set; } // 排序权重
[ProtoMember(5)]
public string Model2D { get; set; } // 对应模型
[ProtoMember(6)]
public bool Superposed { get; set; } // 是否可以叠加
[ProtoMember(7)]
public uint SuperposedMax { get; set; } // 叠加
[ProtoMember(8)]
public uint Type { get; set; } // 类型
[ProtoMember(9)]
public bool IsDeal { get; set; } // 是否可以交易
[ProtoMember(10)]
public bool IsSell { get; set; } // 是否可以出售
[ProtoMember(11)]
public int[] Sell { get; set; } = Array.Empty<int>(); // 出售价格
[ProtoMember(12)]
public int Effect { get; set; } // 使用效果
[ProtoMember(13)]
public string[] Params { get; set; } = Array.Empty<string>(); // 效果参数
[ProtoMember(14)]
public int Durable { get; set; } // 耐久度
[ProtoMember(15)]
public int Quality { get; set; } // 品质
[ProtoMember(16)]
public int Position { get; set; } // 装备位置
}
}

View File

@@ -0,0 +1,99 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
using Fantasy.ConfigTable;
using Fantasy.Serialize;
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class LevelConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<LevelConfig> List { get; set; } = new List<LevelConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, LevelConfig> _configs = new ConcurrentDictionary<uint, LevelConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, LevelConfig> _configs = new Dictionary<uint, LevelConfig>();
#endif
private static LevelConfigData _instance = null;
public static LevelConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<LevelConfigData>(); }
private set => _instance = value;
}
public LevelConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"LevelConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out LevelConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class LevelConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string Name { get; set; } // 名称
[ProtoMember(3)]
public string Model { get; set; } // 数据库类型
[ProtoMember(4)]
public uint Group { get; set; } // 分组
}
}

View File

@@ -0,0 +1,109 @@
using System;
using ProtoBuf;
using Fantasy;
using System.Linq;
using System.Reflection;
using System.Collections.Generic;
using System.Collections.Concurrent;
using Fantasy.ConfigTable;
using Fantasy.Serialize;
// ReSharper disable CollectionNeverUpdated.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
#pragma warning disable CS0169
#pragma warning disable CS8618
#pragma warning disable CS8625
#pragma warning disable CS8603
namespace Fantasy
{
[ProtoContract]
public sealed partial class UnitConfigData : ASerialize, IConfigTable, IProto
{
[ProtoMember(1)]
public List<UnitConfig> List { get; set; } = new List<UnitConfig>();
#if FANTASY_NET
[ProtoIgnore]
private readonly ConcurrentDictionary<uint, UnitConfig> _configs = new ConcurrentDictionary<uint, UnitConfig>();
#else
[ProtoIgnore]
private readonly Dictionary<uint, UnitConfig> _configs = new Dictionary<uint, UnitConfig>();
#endif
private static UnitConfigData _instance = null;
public static UnitConfigData Instance
{
get { return _instance ??= ConfigTableHelper.Load<UnitConfigData>(); }
private set => _instance = value;
}
public UnitConfig Get(uint id, bool check = true)
{
if (_configs.ContainsKey(id))
{
return _configs[id];
}
if (check)
{
throw new Exception($"UnitConfig not find {id} Id");
}
return null;
}
public bool TryGet(uint id, out UnitConfig config)
{
config = null;
if (!_configs.ContainsKey(id))
{
return false;
}
config = _configs[id];
return true;
}
public override void AfterDeserialization()
{
foreach (var config in List)
{
#if FANTASY_NET
_configs.TryAdd(config.Id, config);
#else
_configs.Add(config.Id, config);
#endif
config.AfterDeserialization();
}
EndInit();
}
public override void Dispose()
{
Instance = null;
}
}
[ProtoContract]
public sealed partial class UnitConfig : ASerialize, IProto
{
[ProtoMember(1)]
public uint Id { get; set; } // Id
[ProtoMember(2)]
public string Name { get; set; } // 名称
[ProtoMember(3)]
public string Model { get; set; } // 数据库类型
[ProtoMember(4)]
public uint Type { get; set; } // 类型
[ProtoMember(5)]
public uint MonsterPRange { get; set; } // 怪物追击范围
[ProtoMember(6)]
public uint TalkConfigId { get; set; } // NPC对话列表Id
[ProtoMember(7)]
public uint Camp { get; set; } // 玩家阵营
[ProtoMember(8)]
public uint[] MountContainer { get; set; } = Array.Empty<uint>(); // 挂载的容器列表
[ProtoMember(9)]
public uint[] Items { get; set; } = Array.Empty<uint>(); // 容器物品初始列表
}
}

View File

@@ -0,0 +1,38 @@
#pragma warning disable CS8601 // Possible null reference assignment.
#pragma warning disable CS8603 // Possible null reference return.
namespace Fantasy;
public sealed partial class ContainerConfigData
{
private readonly Dictionary<int, ContainerConfig> _configsByType = new Dictionary<int, ContainerConfig>();
public override void EndInit()
{
foreach (var containerConfig in List)
{
_configsByType.Add(containerConfig.Type, containerConfig);
}
}
public ContainerConfig GetConfig(ContainerType containerType)
{
if (!_configsByType.TryGetValue((int)containerType, out var config))
{
Log.Error($"containerType {containerType} not found!");
return null;
}
return config;
}
public bool TryGetConfig(ContainerType containerType, out ContainerConfig containerConfig)
{
if (!_configsByType.TryGetValue((int)containerType, out containerConfig))
{
Log.Error($"containerType {containerType} not found!");
return false;
}
return true;
}
}

View File

@@ -0,0 +1,33 @@
#pragma warning disable CS8601 // Possible null reference assignment.
namespace Fantasy;
public partial class EquipValueConfigData
{
private readonly Dictionary<ulong, EquipValueConfig> _equipValueDic = new Dictionary<ulong, EquipValueConfig>();
public override void EndInit()
{
foreach (var equipValueConfig in List)
{
var equipValueKey = GetEquipValueKey(equipValueConfig.ItemConfigId, equipValueConfig.Quality);
_equipValueDic.Add(equipValueKey, equipValueConfig);
}
}
public bool TryGetValue(uint itemConfigId, int quality, out EquipValueConfig value)
{
var equipValueKey = GetEquipValueKey(itemConfigId, quality);
if (!_equipValueDic.TryGetValue(equipValueKey, out value))
{
Log.Error($"itemConfigId: {itemConfigId} and quality: {quality} not found in EquipValueConfig!");
return false;
}
return true;
}
private ulong GetEquipValueKey(uint itemConfigId, int quality)
{
return ((ulong)itemConfigId << 32) | (uint)quality;
}
}

View File

@@ -0,0 +1,27 @@
namespace Fantasy
{
// 生成器自动生成,请不要手动编辑,修改请在#ConstValue.xsl里。
public partial class ConstValue
{
/// <summary>
/// 游戏版本
/// </summary>
public const string Version = "v202501";
/// <summary>
/// JWT令牌加密密钥
/// </summary>
public const string JWTSecret = "6666";
/// <summary>
/// 客户端使用的网络类型
/// </summary>
public const string Network = "KCP";
/// <summary>
/// 客户端发送心跳的时间(毫秒单位)
/// </summary>
public const int Heartbeat = 2000;
/// <summary>
/// 服务器最大容纳玩家人数
/// </summary>
public const int PlayerCount = 5000;
}
}

View File

@@ -0,0 +1,16 @@
using System;
namespace Fantasy
{
// 生成器自动生成,请不要手动编辑,修改请在ContainerConfig.xsl里。
[Flags]
public enum ContainerType : byte
{
None = 0,
Bag = 1,// 背包
Equip = 2,// 装备栏
Trade = 4,// 交易
Cell = Equip | Trade,// 按格子存储的容器
Normal = Bag,// 正常的容器
}
}

View File

@@ -0,0 +1,15 @@
namespace Fantasy
{
// 生成器自动生成,请不要手动编辑,修改请在ErrorCode.xsl里。
public partial class ErrorCode
{
/// <summary>
/// 登陆失败
/// </summary>
public const uint LoingError = 1;
/// <summary>
/// 角色登陆失败
/// </summary>
public const uint LoginRoleError = 2;
}
}

View File

@@ -0,0 +1,12 @@
namespace Fantasy
{
// 生成器自动生成,请不要手动编辑,修改请在#ItemType.xsl里。
public enum ItemType
{
None = 0,
Drug = 1,// 药品
Equip = 2,// 装备
Prop = 3,// 道具
Garbage = 4,// 垃圾
}
}

View File

@@ -0,0 +1,12 @@
namespace Fantasy
{
// 生成器自动生成,请不要手动编辑,修改请在#ItemUseEffect.xsl里。
public enum ItemUseEffect
{
None = 0,
Equip = 1,// 装备到身上
UnEquip = 2,// 从身上卸下
AddAttr = 3,// 增加属性
CutAttr = 4,// 减少属性
}
}

View File

@@ -0,0 +1,27 @@
namespace Fantasy
{
// 生成器自动生成,请不要手动编辑。
public static class SceneType
{
public const int Authentication = 1;
public const int Addressable = 2;
public const int Gate = 3;
public const int Map = 4;
public const int CopyDispatcher = 5;
public const int CopyManager = 6;
public const int Copy = 7;
public const int Chat = 8;
public static readonly Dictionary<string, int> SceneTypeDic = new Dictionary<string, int>()
{
{ "Authentication", 1 },
{ "Addressable", 2 },
{ "Gate", 3 },
{ "Map", 4 },
{ "CopyDispatcher", 5 },
{ "CopyManager", 6 },
{ "Copy", 7 },
{ "Chat", 8 },
};
}
}

View File

@@ -0,0 +1,73 @@
using ProtoBuf;
using System.Collections.Generic;
using MongoDB.Bson.Serialization.Attributes;
using Fantasy;
using Fantasy.Network.Interface;
using Fantasy.Serialize;
// ReSharper disable InconsistentNaming
// ReSharper disable RedundantUsingDirective
// ReSharper disable RedundantOverriddenMember
// ReSharper disable PartialTypeWithSinglePart
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable CheckNamespace
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
#pragma warning disable CS8618
namespace Fantasy
{
[ProtoContract]
public partial class G2A_TestMessage : AMessage, IRouteMessage, IProto
{
public static G2A_TestMessage Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<G2A_TestMessage>();
}
public override void Dispose()
{
Tag = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<G2A_TestMessage>(this);
#endif
}
public uint OpCode() { return InnerOpcode.G2A_TestMessage; }
[ProtoMember(1)]
public string Tag { get; set; }
}
[ProtoContract]
public partial class G2A_TestRequest : AMessage, IRouteRequest, IProto
{
public static G2A_TestRequest Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<G2A_TestRequest>();
}
public override void Dispose()
{
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<G2A_TestRequest>(this);
#endif
}
[ProtoIgnore]
public G2A_TestResponse ResponseType { get; set; }
public uint OpCode() { return InnerOpcode.G2A_TestRequest; }
}
[ProtoContract]
public partial class G2A_TestResponse : AMessage, IRouteResponse, IProto
{
public static G2A_TestResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<G2A_TestResponse>();
}
public override void Dispose()
{
ErrorCode = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<G2A_TestResponse>(this);
#endif
}
public uint OpCode() { return InnerOpcode.G2A_TestResponse; }
[ProtoMember(1)]
public uint ErrorCode { get; set; }
}
}

View File

@@ -0,0 +1,9 @@
namespace Fantasy
{
public static partial class InnerOpcode
{
public const uint G2A_TestMessage = 939534097;
public const uint G2A_TestRequest = 1073751825;
public const uint G2A_TestResponse = 1207969553;
}
}

View File

@@ -0,0 +1,350 @@
using ProtoBuf;
using System.Collections.Generic;
using MongoDB.Bson.Serialization.Attributes;
using Fantasy;
using Fantasy.Network.Interface;
using Fantasy.Serialize;
// ReSharper disable InconsistentNaming
// ReSharper disable RedundantUsingDirective
// ReSharper disable RedundantOverriddenMember
// ReSharper disable PartialTypeWithSinglePart
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable CheckNamespace
#pragma warning disable CS8625 // Cannot convert null literal to non-nullable reference type.
#pragma warning disable CS8618
namespace Fantasy
{
/// <summary>
/// 客户端登陆到服务器
/// </summary>
[ProtoContract]
public partial class C2G_LoginRequest : AMessage, IRequest, IProto
{
public static C2G_LoginRequest Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2G_LoginRequest>();
}
public override void Dispose()
{
UserName = default;
PassWord = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2G_LoginRequest>(this);
#endif
}
[ProtoIgnore]
public G2C_LoginResponse ResponseType { get; set; }
public uint OpCode() { return OuterOpcode.C2G_LoginRequest; }
[ProtoMember(1)]
public string UserName { get; set; }
[ProtoMember(2)]
public string PassWord { get; set; }
}
/// <summary>
/// 服务器返回登陆状态给客户端
/// </summary>
[ProtoContract]
public partial class G2C_LoginResponse : AMessage, IResponse, IProto
{
public static G2C_LoginResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<G2C_LoginResponse>();
}
public override void Dispose()
{
ErrorCode = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<G2C_LoginResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.G2C_LoginResponse; }
[ProtoMember(1)]
public uint ErrorCode { get; set; }
}
/// <summary>
/// 客户端请求服务器使用物品
/// </summary>
[ProtoContract]
public partial class C2G_UseItemRequest : AMessage, IRequest, IProto
{
public static C2G_UseItemRequest Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2G_UseItemRequest>();
}
public override void Dispose()
{
ItemId = default;
Count = default;
ContainerType = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2G_UseItemRequest>(this);
#endif
}
[ProtoIgnore]
public G2C_UseItemResponse ResponseType { get; set; }
public uint OpCode() { return OuterOpcode.C2G_UseItemRequest; }
[ProtoMember(1)]
public long ItemId { get; set; }
[ProtoMember(2)]
public int Count { get; set; }
[ProtoMember(3)]
public int ContainerType { get; set; }
}
[ProtoContract]
public partial class G2C_UseItemResponse : AMessage, IResponse, IProto
{
public static G2C_UseItemResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<G2C_UseItemResponse>();
}
public override void Dispose()
{
ErrorCode = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<G2C_UseItemResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.G2C_UseItemResponse; }
[ProtoMember(1)]
public uint ErrorCode { get; set; }
}
/// <summary>
/// 装备基础信息类
/// </summary>
[ProtoContract]
public partial class EquipInfo : AMessage, IProto
{
public static EquipInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<EquipInfo>();
}
public override void Dispose()
{
Durable = default;
DurableMax = default;
MainKeys.Clear();
EquipAttrKeys.Clear();
EquipAttrValues.Clear();
EquipAttrSValues.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<EquipInfo>(this);
#endif
}
[ProtoMember(1)]
public int Durable { get; set; }
[ProtoMember(2)]
public int DurableMax { get; set; }
[ProtoMember(3)]
public List<int> MainKeys = new List<int>();
[ProtoMember(4)]
public List<int> EquipAttrKeys = new List<int>();
[ProtoMember(5)]
public List<int> EquipAttrValues = new List<int>();
[ProtoMember(6)]
public List<int> EquipAttrSValues = new List<int>();
///<summary>
/// 比如强化等级,副属性,词缀等。都可以在这里添加
///</summary>
}
/// <summary>
/// 物品基础信息类
/// </summary>
[ProtoContract]
public partial class ItemInfo : AMessage, IProto
{
public static ItemInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<ItemInfo>();
}
public override void Dispose()
{
ItemId = default;
Container = default;
ConfigId = default;
CellId = default;
Count = default;
IsBind = default;
EquipInfo = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<ItemInfo>(this);
#endif
}
[ProtoMember(1)]
public long ItemId { get; set; }
[ProtoMember(2)]
public int Container { get; set; }
[ProtoMember(3)]
public int ConfigId { get; set; }
[ProtoMember(4)]
public long CellId { get; set; }
[ProtoMember(5)]
public int Count { get; set; }
[ProtoMember(6)]
public bool IsBind { get; set; }
[ProtoMember(7)]
public EquipInfo EquipInfo { get; set; }
///<summary>
/// 后面可能会有装备词条 也会在这里定义的,现在没有所以就是先不管了
///</summary>
}
/// <summary>
/// 容器信息类
/// </summary>
[ProtoContract]
public partial class ContainerInfo : AMessage, IProto
{
public static ContainerInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<ContainerInfo>();
}
public override void Dispose()
{
CurrentCellCount = default;
ConfigId = default;
Items.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<ContainerInfo>(this);
#endif
}
[ProtoMember(1)]
public int CurrentCellCount { get; set; }
[ProtoMember(2)]
public int ConfigId { get; set; }
[ProtoMember(3)]
public List<ItemInfo> Items = new List<ItemInfo>();
}
/// <summary>
/// 物品变更协议(服务器推送给客户端)
/// </summary>
[ProtoContract]
public partial class G2C_UpdateItems : AMessage, IMessage, IProto
{
public static G2C_UpdateItems Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<G2C_UpdateItems>();
}
public override void Dispose()
{
ItemReason = default;
Items.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<G2C_UpdateItems>(this);
#endif
}
public uint OpCode() { return OuterOpcode.G2C_UpdateItems; }
[ProtoMember(1)]
public int ItemReason { get; set; }
[ProtoMember(2)]
public List<ItemInfo> Items = new List<ItemInfo>();
}
/// <summary>
/// 通知服务器客户端初始化完成
/// </summary>
[ProtoContract]
public partial class C2G_GameInitCompleteRequest : AMessage, IRequest, IProto
{
public static C2G_GameInitCompleteRequest Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2G_GameInitCompleteRequest>();
}
public override void Dispose()
{
PushContainer = default;
PushUnitInfo = default;
Aoi = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2G_GameInitCompleteRequest>(this);
#endif
}
[ProtoIgnore]
public G2C_GameInitCompleteResponse ResponseType { get; set; }
public uint OpCode() { return OuterOpcode.C2G_GameInitCompleteRequest; }
[ProtoMember(1)]
public bool PushContainer { get; set; }
[ProtoMember(2)]
public bool PushUnitInfo { get; set; }
[ProtoMember(3)]
public bool Aoi { get; set; }
}
[ProtoContract]
public partial class G2C_GameInitCompleteResponse : AMessage, IResponse, IProto
{
public static G2C_GameInitCompleteResponse Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<G2C_GameInitCompleteResponse>();
}
public override void Dispose()
{
ErrorCode = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<G2C_GameInitCompleteResponse>(this);
#endif
}
public uint OpCode() { return OuterOpcode.G2C_GameInitCompleteResponse; }
[ProtoMember(1)]
public uint ErrorCode { get; set; }
}
/// <summary>
/// 推送所有容器数据给客户端
/// </summary>
[ProtoContract]
public partial class G2C_PushAllContainerInfo : AMessage, IMessage, IProto
{
public static G2C_PushAllContainerInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<G2C_PushAllContainerInfo>();
}
public override void Dispose()
{
Containers.Clear();
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<G2C_PushAllContainerInfo>(this);
#endif
}
public uint OpCode() { return OuterOpcode.G2C_PushAllContainerInfo; }
[ProtoMember(1)]
public List<ContainerInfo> Containers = new List<ContainerInfo>();
}
/// <summary>
/// 推送单个的容器数据给客户端
/// </summary>
[ProtoContract]
public partial class G2C_PushContainerInfo : AMessage, IMessage, IProto
{
public static G2C_PushContainerInfo Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<G2C_PushContainerInfo>();
}
public override void Dispose()
{
Container = default;
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<G2C_PushContainerInfo>(this);
#endif
}
public uint OpCode() { return OuterOpcode.G2C_PushContainerInfo; }
[ProtoMember(1)]
public ContainerInfo Container { get; set; }
}
/// <summary>
/// 通知服务器创建一个物品到背包容器中。
/// </summary>
[ProtoContract]
public partial class C2G_StartCreateItem : AMessage, IMessage, IProto
{
public static C2G_StartCreateItem Create(Scene scene)
{
return scene.MessagePoolComponent.Rent<C2G_StartCreateItem>();
}
public override void Dispose()
{
#if FANTASY_NET || FANTASY_UNITY
GetScene().MessagePoolComponent.Return<C2G_StartCreateItem>(this);
#endif
}
public uint OpCode() { return OuterOpcode.C2G_StartCreateItem; }
}
}

View File

@@ -0,0 +1,16 @@
namespace Fantasy
{
public static partial class OuterOpcode
{
public const uint C2G_LoginRequest = 268445457;
public const uint G2C_LoginResponse = 402663185;
public const uint C2G_UseItemRequest = 268445458;
public const uint G2C_UseItemResponse = 402663186;
public const uint G2C_UpdateItems = 134227729;
public const uint C2G_GameInitCompleteRequest = 268445459;
public const uint G2C_GameInitCompleteResponse = 402663187;
public const uint G2C_PushAllContainerInfo = 134227730;
public const uint G2C_PushContainerInfo = 134227731;
public const uint C2G_StartCreateItem = 134227732;
}
}

View File

@@ -0,0 +1,9 @@
namespace Fantasy
{
// Route协议定义(需要定义1000以上、因为1000以内的框架预留)
public static class RouteType
{
public const int GateRoute = 1001; // Gate
public const int ChatRoute = 1002; // Chat
}
}

View File

@@ -0,0 +1,361 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"Entity/1.0.0": {
"dependencies": {
"Fantasy-Net": "2024.2.24",
"Fantasy-Net.ConfigTable": "2024.2.0",
"Fantasy-Net.ConfigTable.Reference": "1.0.0.0",
"Fantasy-Net.Reference": "1.0.0.0"
},
"runtime": {
"Entity.dll": {}
}
},
"CommandLineParser/2.9.1": {
"runtime": {
"lib/netstandard2.0/CommandLine.dll": {
"assemblyVersion": "2.9.1.0",
"fileVersion": "2.9.1.0"
}
}
},
"DnsClient/1.6.1": {
"dependencies": {
"Microsoft.Win32.Registry": "5.0.0"
},
"runtime": {
"lib/net5.0/DnsClient.dll": {
"assemblyVersion": "1.6.1.0",
"fileVersion": "1.6.1.0"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/2.0.0": {},
"Microsoft.NETCore.Platforms/5.0.0": {},
"Microsoft.Win32.Registry/5.0.0": {
"dependencies": {
"System.Security.AccessControl": "5.0.0",
"System.Security.Principal.Windows": "5.0.0"
}
},
"MongoDB.Bson/3.1.0": {
"dependencies": {
"System.Memory": "4.5.5",
"System.Runtime.CompilerServices.Unsafe": "5.0.0"
},
"runtime": {
"lib/net6.0/MongoDB.Bson.dll": {
"assemblyVersion": "3.1.0.0",
"fileVersion": "3.1.0.0"
}
}
},
"MongoDB.Driver/3.1.0": {
"dependencies": {
"DnsClient": "1.6.1",
"Microsoft.Extensions.Logging.Abstractions": "2.0.0",
"MongoDB.Bson": "3.1.0",
"SharpCompress": "0.30.1",
"Snappier": "1.0.0",
"System.Buffers": "4.5.1",
"ZstdSharp.Port": "0.7.3"
},
"runtime": {
"lib/net6.0/MongoDB.Driver.dll": {
"assemblyVersion": "3.1.0.0",
"fileVersion": "3.1.0.0"
}
}
},
"Newtonsoft.Json/13.0.3": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.3.27908"
}
}
},
"protobuf-net/3.2.45": {
"dependencies": {
"protobuf-net.Core": "3.2.45"
},
"runtime": {
"lib/net6.0/protobuf-net.dll": {
"assemblyVersion": "3.0.0.0",
"fileVersion": "3.2.45.36865"
}
}
},
"protobuf-net.Core/3.2.45": {
"dependencies": {
"System.Collections.Immutable": "7.0.0"
},
"runtime": {
"lib/net6.0/protobuf-net.Core.dll": {
"assemblyVersion": "3.0.0.0",
"fileVersion": "3.2.45.36865"
}
}
},
"SharpCompress/0.30.1": {
"runtime": {
"lib/net5.0/SharpCompress.dll": {
"assemblyVersion": "0.30.1.0",
"fileVersion": "0.30.1.0"
}
}
},
"Snappier/1.0.0": {
"runtime": {
"lib/net5.0/Snappier.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"System.Buffers/4.5.1": {},
"System.Collections.Immutable/7.0.0": {},
"System.IO.Pipelines/9.0.0": {
"runtime": {
"lib/net8.0/System.IO.Pipelines.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Memory/4.5.5": {},
"System.Runtime.CompilerServices.Unsafe/5.0.0": {},
"System.Security.AccessControl/5.0.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
"System.Security.Principal.Windows": "5.0.0"
}
},
"System.Security.Principal.Windows/5.0.0": {},
"ZstdSharp.Port/0.7.3": {
"runtime": {
"lib/net7.0/ZstdSharp.dll": {
"assemblyVersion": "0.7.3.0",
"fileVersion": "0.7.3.0"
}
}
},
"Fantasy-Net/2024.2.24": {
"dependencies": {
"CommandLineParser": "2.9.1",
"MongoDB.Bson": "3.1.0",
"MongoDB.Driver": "3.1.0",
"Newtonsoft.Json": "13.0.3",
"System.IO.Pipelines": "9.0.0",
"protobuf-net": "3.2.45"
},
"runtime": {
"Fantasy-Net.dll": {
"assemblyVersion": "2024.2.24",
"fileVersion": ""
}
}
},
"Fantasy-Net.ConfigTable/2024.2.0": {
"dependencies": {
"Fantasy-Net": "2024.2.24"
},
"runtime": {
"Fantasy-Net.ConfigTable.dll": {
"assemblyVersion": "2024.2.0",
"fileVersion": ""
}
}
},
"Fantasy-Net.ConfigTable.Reference/1.0.0.0": {
"runtime": {
"Fantasy-Net.ConfigTable.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"Fantasy-Net.Reference/1.0.0.0": {
"runtime": {
"Fantasy-Net.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"Entity/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"CommandLineParser/2.9.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==",
"path": "commandlineparser/2.9.1",
"hashPath": "commandlineparser.2.9.1.nupkg.sha512"
},
"DnsClient/1.6.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4H/f2uYJOZ+YObZjpY9ABrKZI+JNw3uizp6oMzTXwDw6F+2qIPhpRl/1t68O/6e98+vqNiYGu+lswmwdYUy3gg==",
"path": "dnsclient/1.6.1",
"hashPath": "dnsclient.1.6.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6ZCllUYGFukkymSTx3Yr0G/ajRxoNJp7/FqSxSB4fGISST54ifBhgu4Nc0ItGi3i6DqwuNd8SUyObmiC++AO2Q==",
"path": "microsoft.extensions.logging.abstractions/2.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.2.0.0.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
"path": "microsoft.netcore.platforms/5.0.0",
"hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512"
},
"Microsoft.Win32.Registry/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
"path": "microsoft.win32.registry/5.0.0",
"hashPath": "microsoft.win32.registry.5.0.0.nupkg.sha512"
},
"MongoDB.Bson/3.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3dhaZhz18B5vUoEP13o2j8A6zQfkHdZhwBvLZEjDJum4BTLLv1/Z8bt25UQEtpqvYwLgde4R6ekWZ7XAYUMxuw==",
"path": "mongodb.bson/3.1.0",
"hashPath": "mongodb.bson.3.1.0.nupkg.sha512"
},
"MongoDB.Driver/3.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+O7lKaIl7VUHptE0hqTd7UY1G5KDp/o8S4upG7YL4uChMNKD/U6tz9i17nMGHaD/L2AiPLgaJcaDe2XACsegGA==",
"path": "mongodb.driver/3.1.0",
"hashPath": "mongodb.driver.3.1.0.nupkg.sha512"
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"path": "newtonsoft.json/13.0.3",
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
},
"protobuf-net/3.2.45": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5UZ/ukUHcGbFSl7vNMrHsfjqdxusdd9w7w0fCEXzf3UUtsrGNVCzV5SmF+sCHAbnRV2qPcD1ixiDP7Aj8lX/HA==",
"path": "protobuf-net/3.2.45",
"hashPath": "protobuf-net.3.2.45.nupkg.sha512"
},
"protobuf-net.Core/3.2.45": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PMWatW2NrT1uTXD7etJ4VdQ0wWZLFrIfdRGppD2QX7nzZ0+kIzqhq551u6ZiXJHWJgG4hWFEkSnUnt2aB6posg==",
"path": "protobuf-net.core/3.2.45",
"hashPath": "protobuf-net.core.3.2.45.nupkg.sha512"
},
"SharpCompress/0.30.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-XqD4TpfyYGa7QTPzaGlMVbcecKnXy4YmYLDWrU+JIj7IuRNl7DH2END+Ll7ekWIY8o3dAMWLFDE1xdhfIWD1nw==",
"path": "sharpcompress/0.30.1",
"hashPath": "sharpcompress.0.30.1.nupkg.sha512"
},
"Snappier/1.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rFtK2KEI9hIe8gtx3a0YDXdHOpedIf9wYCEYtBEmtlyiWVX3XlCNV03JrmmAi/Cdfn7dxK+k0sjjcLv4fpHnqA==",
"path": "snappier/1.0.0",
"hashPath": "snappier.1.0.0.nupkg.sha512"
},
"System.Buffers/4.5.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==",
"path": "system.buffers/4.5.1",
"hashPath": "system.buffers.4.5.1.nupkg.sha512"
},
"System.Collections.Immutable/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==",
"path": "system.collections.immutable/7.0.0",
"hashPath": "system.collections.immutable.7.0.0.nupkg.sha512"
},
"System.IO.Pipelines/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==",
"path": "system.io.pipelines/9.0.0",
"hashPath": "system.io.pipelines.9.0.0.nupkg.sha512"
},
"System.Memory/4.5.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
"path": "system.memory/4.5.5",
"hashPath": "system.memory.4.5.5.nupkg.sha512"
},
"System.Runtime.CompilerServices.Unsafe/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==",
"path": "system.runtime.compilerservices.unsafe/5.0.0",
"hashPath": "system.runtime.compilerservices.unsafe.5.0.0.nupkg.sha512"
},
"System.Security.AccessControl/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
"path": "system.security.accesscontrol/5.0.0",
"hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512"
},
"System.Security.Principal.Windows/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==",
"path": "system.security.principal.windows/5.0.0",
"hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512"
},
"ZstdSharp.Port/0.7.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-U9Ix4l4cl58Kzz1rJzj5hoVTjmbx1qGMwzAcbv1j/d3NzrFaESIurQyg+ow4mivCgkE3S413y+U9k4WdnEIkRA==",
"path": "zstdsharp.port/0.7.3",
"hashPath": "zstdsharp.port.0.7.3.nupkg.sha512"
},
"Fantasy-Net/2024.2.24": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Fantasy-Net.ConfigTable/2024.2.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Fantasy-Net.ConfigTable.Reference/1.0.0.0": {
"type": "reference",
"serviceable": false,
"sha512": ""
},
"Fantasy-Net.Reference/1.0.0.0": {
"type": "reference",
"serviceable": false,
"sha512": ""
}
}
}

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Entity")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Entity")]
[assembly: System.Reflection.AssemblyTitleAttribute("Entity")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
b7ceabf79c524d6ee0475da740239235018950a5f2c92d51c77f832004e64e6c

View File

@@ -0,0 +1,15 @@
is_global = true
build_property.TargetFramework = net8.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Entity
build_property.ProjectDir = /Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
e04100643a4962db8226f14c87608f61ef350431fd0164f615b9a90d5f481444

View File

@@ -0,0 +1,17 @@
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/bin/Debug/net8.0/Entity.deps.json
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/bin/Debug/net8.0/Entity.dll
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/bin/Debug/net8.0/Entity.pdb
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/Debug/net8.0/Entity.GeneratedMSBuildEditorConfig.editorconfig
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/Debug/net8.0/Entity.AssemblyInfoInputs.cache
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/Debug/net8.0/Entity.AssemblyInfo.cs
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/Debug/net8.0/Entity.csproj.CoreCompileInputs.cache
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/Debug/net8.0/Entity.dll
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/Debug/net8.0/refint/Entity.dll
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/Debug/net8.0/Entity.pdb
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/Debug/net8.0/ref/Entity.dll
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/bin/Debug/net8.0/Fantasy-Net.dll
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/bin/Debug/net8.0/Fantasy-Net.pdb
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/Debug/net8.0/Entity.csproj.AssemblyReference.cache
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/Debug/net8.0/Entity.csproj.Up2Date
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/bin/Debug/net8.0/Fantasy-Net.ConfigTable.dll
/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/bin/Debug/net8.0/Fantasy-Net.ConfigTable.pdb

View File

@@ -0,0 +1,282 @@
{
"format": 1,
"restore": {
"/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/Entity.csproj": {}
},
"projects": {
"/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Net/Fantasy.Net/Fantasy.Net.csproj": {
"version": "2024.2.24",
"restore": {
"projectUniqueName": "/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Net/Fantasy.Net/Fantasy.Net.csproj",
"projectName": "Fantasy-Net",
"projectPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Net/Fantasy.Net/Fantasy.Net.csproj",
"packagesPath": "/Users/fantasy/.nuget/packages/",
"outputPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Net/Fantasy.Net/obj/",
"projectStyle": "PackageReference",
"crossTargeting": true,
"configFilePaths": [
"/Users/fantasy/.nuget/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"net8.0",
"net9.0"
],
"sources": {
"/usr/local/share/dotnet/library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
},
"net9.0": {
"targetAlias": "net9.0",
"projectReferences": {}
}
},
"warningProperties": {
"allWarningsAsErrors": true,
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "all"
},
"SdkAnalysisLevel": "9.0.100"
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"CommandLineParser": {
"target": "Package",
"version": "[2.9.1, )"
},
"MongoDB.Bson": {
"target": "Package",
"version": "[3.1.0, )"
},
"MongoDB.Driver": {
"target": "Package",
"version": "[3.1.0, )"
},
"Newtonsoft.Json": {
"target": "Package",
"version": "[13.0.3, )"
},
"System.IO.Pipelines": {
"target": "Package",
"version": "[9.0.0, )"
},
"protobuf-net": {
"target": "Package",
"version": "[3.2.45, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.AspNetCore.App": {
"privateAssets": "none"
},
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/9.0.100/PortableRuntimeIdentifierGraph.json"
},
"net9.0": {
"targetAlias": "net9.0",
"dependencies": {
"CommandLineParser": {
"target": "Package",
"version": "[2.9.1, )"
},
"MongoDB.Bson": {
"target": "Package",
"version": "[3.1.0, )"
},
"MongoDB.Driver": {
"target": "Package",
"version": "[3.1.0, )"
},
"Newtonsoft.Json": {
"target": "Package",
"version": "[13.0.3, )"
},
"protobuf-net": {
"target": "Package",
"version": "[3.2.45, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.AspNetCore.App": {
"privateAssets": "none"
},
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/9.0.100/PortableRuntimeIdentifierGraph.json"
}
}
},
"/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/Fantasy.ConfigTable.csproj": {
"version": "2024.2.0",
"restore": {
"projectUniqueName": "/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/Fantasy.ConfigTable.csproj",
"projectName": "Fantasy-Net.ConfigTable",
"projectPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/Fantasy.ConfigTable.csproj",
"packagesPath": "/Users/fantasy/.nuget/packages/",
"outputPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/obj/",
"projectStyle": "PackageReference",
"configFilePaths": [
"/Users/fantasy/.nuget/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"/usr/local/share/dotnet/library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "all"
},
"SdkAnalysisLevel": "9.0.100"
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"dependencies": {
"Fantasy-Net": {
"target": "Package",
"version": "[2024.2.22, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/9.0.100/PortableRuntimeIdentifierGraph.json"
}
}
},
"/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/Entity.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/Entity.csproj",
"projectName": "Entity",
"projectPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/Entity.csproj",
"packagesPath": "/Users/fantasy/.nuget/packages/",
"outputPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/",
"projectStyle": "PackageReference",
"configFilePaths": [
"/Users/fantasy/.nuget/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"/usr/local/share/dotnet/library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Net/Fantasy.Net/Fantasy.Net.csproj": {
"projectPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Net/Fantasy.Net/Fantasy.Net.csproj"
},
"/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/Fantasy.ConfigTable.csproj": {
"projectPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/Fantasy.ConfigTable.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "all"
},
"SdkAnalysisLevel": "9.0.100"
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/9.0.100/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/Users/fantasy/.nuget/packages/</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/Users/fantasy/.nuget/packages/</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.12.2</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="/Users/fantasy/.nuget/packages/" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

View File

@@ -0,0 +1,956 @@
{
"version": 3,
"targets": {
"net8.0": {
"CommandLineParser/2.9.1": {
"type": "package",
"compile": {
"lib/netstandard2.0/CommandLine.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/CommandLine.dll": {
"related": ".xml"
}
}
},
"DnsClient/1.6.1": {
"type": "package",
"dependencies": {
"Microsoft.Win32.Registry": "5.0.0"
},
"compile": {
"lib/net5.0/DnsClient.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net5.0/DnsClient.dll": {
"related": ".xml"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/2.0.0": {
"type": "package",
"compile": {
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"related": ".xml"
}
}
},
"Microsoft.NETCore.Platforms/5.0.0": {
"type": "package",
"compile": {
"lib/netstandard1.0/_._": {}
},
"runtime": {
"lib/netstandard1.0/_._": {}
}
},
"Microsoft.Win32.Registry/5.0.0": {
"type": "package",
"dependencies": {
"System.Security.AccessControl": "5.0.0",
"System.Security.Principal.Windows": "5.0.0"
},
"compile": {
"ref/netstandard2.0/Microsoft.Win32.Registry.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/Microsoft.Win32.Registry.dll": {
"related": ".xml"
}
},
"runtimeTargets": {
"runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll": {
"assetType": "runtime",
"rid": "win"
}
}
},
"MongoDB.Bson/3.1.0": {
"type": "package",
"dependencies": {
"System.Memory": "4.5.5",
"System.Runtime.CompilerServices.Unsafe": "5.0.0"
},
"compile": {
"lib/net6.0/MongoDB.Bson.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/MongoDB.Bson.dll": {
"related": ".xml"
}
}
},
"MongoDB.Driver/3.1.0": {
"type": "package",
"dependencies": {
"DnsClient": "1.6.1",
"Microsoft.Extensions.Logging.Abstractions": "2.0.0",
"MongoDB.Bson": "3.1.0",
"SharpCompress": "0.30.1",
"Snappier": "1.0.0",
"System.Buffers": "4.5.1",
"ZstdSharp.Port": "0.7.3"
},
"compile": {
"lib/net6.0/MongoDB.Driver.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/MongoDB.Driver.dll": {
"related": ".xml"
}
}
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"compile": {
"lib/net6.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
}
},
"protobuf-net/3.2.45": {
"type": "package",
"dependencies": {
"protobuf-net.Core": "3.2.45"
},
"compile": {
"lib/net6.0/protobuf-net.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/protobuf-net.dll": {
"related": ".xml"
}
}
},
"protobuf-net.Core/3.2.45": {
"type": "package",
"dependencies": {
"System.Collections.Immutable": "7.0.0"
},
"compile": {
"lib/net6.0/protobuf-net.Core.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/protobuf-net.Core.dll": {
"related": ".xml"
}
}
},
"SharpCompress/0.30.1": {
"type": "package",
"compile": {
"lib/net5.0/SharpCompress.dll": {}
},
"runtime": {
"lib/net5.0/SharpCompress.dll": {}
}
},
"Snappier/1.0.0": {
"type": "package",
"compile": {
"lib/net5.0/Snappier.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net5.0/Snappier.dll": {
"related": ".xml"
}
}
},
"System.Buffers/4.5.1": {
"type": "package",
"compile": {
"ref/netcoreapp2.0/_._": {}
},
"runtime": {
"lib/netcoreapp2.0/_._": {}
}
},
"System.Collections.Immutable/7.0.0": {
"type": "package",
"compile": {
"lib/net7.0/System.Collections.Immutable.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net7.0/System.Collections.Immutable.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net6.0/_._": {}
}
},
"System.IO.Pipelines/9.0.0": {
"type": "package",
"compile": {
"lib/net8.0/System.IO.Pipelines.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net8.0/System.IO.Pipelines.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/net8.0/_._": {}
}
},
"System.Memory/4.5.5": {
"type": "package",
"compile": {
"ref/netcoreapp2.1/_._": {}
},
"runtime": {
"lib/netcoreapp2.1/_._": {}
}
},
"System.Runtime.CompilerServices.Unsafe/5.0.0": {
"type": "package",
"compile": {
"ref/netstandard2.1/System.Runtime.CompilerServices.Unsafe.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll": {
"related": ".xml"
}
}
},
"System.Security.AccessControl/5.0.0": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0",
"System.Security.Principal.Windows": "5.0.0"
},
"compile": {
"ref/netstandard2.0/System.Security.AccessControl.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/System.Security.AccessControl.dll": {
"related": ".xml"
}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll": {
"assetType": "runtime",
"rid": "win"
}
}
},
"System.Security.Principal.Windows/5.0.0": {
"type": "package",
"compile": {
"ref/netcoreapp3.0/System.Security.Principal.Windows.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/System.Security.Principal.Windows.dll": {
"related": ".xml"
}
},
"runtimeTargets": {
"runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": {
"assetType": "runtime",
"rid": "unix"
},
"runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll": {
"assetType": "runtime",
"rid": "win"
}
}
},
"ZstdSharp.Port/0.7.3": {
"type": "package",
"compile": {
"lib/net7.0/ZstdSharp.dll": {}
},
"runtime": {
"lib/net7.0/ZstdSharp.dll": {}
}
},
"Fantasy-Net/2024.2.24": {
"type": "project",
"framework": ".NETCoreApp,Version=v8.0",
"dependencies": {
"CommandLineParser": "2.9.1",
"MongoDB.Bson": "3.1.0",
"MongoDB.Driver": "3.1.0",
"Newtonsoft.Json": "13.0.3",
"System.IO.Pipelines": "9.0.0",
"protobuf-net": "3.2.45"
},
"compile": {
"bin/placeholder/Fantasy-Net.dll": {}
},
"runtime": {
"bin/placeholder/Fantasy-Net.dll": {}
},
"frameworkReferences": [
"Microsoft.AspNetCore.App"
]
},
"Fantasy-Net.ConfigTable/2024.2.0": {
"type": "project",
"framework": ".NETCoreApp,Version=v8.0",
"dependencies": {
"Fantasy-Net": "2024.2.22"
},
"compile": {
"bin/placeholder/Fantasy-Net.ConfigTable.dll": {}
},
"runtime": {
"bin/placeholder/Fantasy-Net.ConfigTable.dll": {}
}
}
}
},
"libraries": {
"CommandLineParser/2.9.1": {
"sha512": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA==",
"type": "package",
"path": "commandlineparser/2.9.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"CommandLine20.png",
"License.md",
"README.md",
"commandlineparser.2.9.1.nupkg.sha512",
"commandlineparser.nuspec",
"lib/net40/CommandLine.dll",
"lib/net40/CommandLine.xml",
"lib/net45/CommandLine.dll",
"lib/net45/CommandLine.xml",
"lib/net461/CommandLine.dll",
"lib/net461/CommandLine.xml",
"lib/netstandard2.0/CommandLine.dll",
"lib/netstandard2.0/CommandLine.xml"
]
},
"DnsClient/1.6.1": {
"sha512": "4H/f2uYJOZ+YObZjpY9ABrKZI+JNw3uizp6oMzTXwDw6F+2qIPhpRl/1t68O/6e98+vqNiYGu+lswmwdYUy3gg==",
"type": "package",
"path": "dnsclient/1.6.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"dnsclient.1.6.1.nupkg.sha512",
"dnsclient.nuspec",
"icon.png",
"lib/net45/DnsClient.dll",
"lib/net45/DnsClient.xml",
"lib/net471/DnsClient.dll",
"lib/net471/DnsClient.xml",
"lib/net5.0/DnsClient.dll",
"lib/net5.0/DnsClient.xml",
"lib/netstandard1.3/DnsClient.dll",
"lib/netstandard1.3/DnsClient.xml",
"lib/netstandard2.0/DnsClient.dll",
"lib/netstandard2.0/DnsClient.xml",
"lib/netstandard2.1/DnsClient.dll",
"lib/netstandard2.1/DnsClient.xml"
]
},
"Microsoft.Extensions.Logging.Abstractions/2.0.0": {
"sha512": "6ZCllUYGFukkymSTx3Yr0G/ajRxoNJp7/FqSxSB4fGISST54ifBhgu4Nc0ItGi3i6DqwuNd8SUyObmiC++AO2Q==",
"type": "package",
"path": "microsoft.extensions.logging.abstractions/2.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll",
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml",
"microsoft.extensions.logging.abstractions.2.0.0.nupkg.sha512",
"microsoft.extensions.logging.abstractions.nuspec"
]
},
"Microsoft.NETCore.Platforms/5.0.0": {
"sha512": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
"type": "package",
"path": "microsoft.netcore.platforms/5.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/netstandard1.0/_._",
"microsoft.netcore.platforms.5.0.0.nupkg.sha512",
"microsoft.netcore.platforms.nuspec",
"runtime.json",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"Microsoft.Win32.Registry/5.0.0": {
"sha512": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==",
"type": "package",
"path": "microsoft.win32.registry/5.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/net46/Microsoft.Win32.Registry.dll",
"lib/net461/Microsoft.Win32.Registry.dll",
"lib/net461/Microsoft.Win32.Registry.xml",
"lib/netstandard1.3/Microsoft.Win32.Registry.dll",
"lib/netstandard2.0/Microsoft.Win32.Registry.dll",
"lib/netstandard2.0/Microsoft.Win32.Registry.xml",
"microsoft.win32.registry.5.0.0.nupkg.sha512",
"microsoft.win32.registry.nuspec",
"ref/net46/Microsoft.Win32.Registry.dll",
"ref/net461/Microsoft.Win32.Registry.dll",
"ref/net461/Microsoft.Win32.Registry.xml",
"ref/netstandard1.3/Microsoft.Win32.Registry.dll",
"ref/netstandard1.3/Microsoft.Win32.Registry.xml",
"ref/netstandard1.3/de/Microsoft.Win32.Registry.xml",
"ref/netstandard1.3/es/Microsoft.Win32.Registry.xml",
"ref/netstandard1.3/fr/Microsoft.Win32.Registry.xml",
"ref/netstandard1.3/it/Microsoft.Win32.Registry.xml",
"ref/netstandard1.3/ja/Microsoft.Win32.Registry.xml",
"ref/netstandard1.3/ko/Microsoft.Win32.Registry.xml",
"ref/netstandard1.3/ru/Microsoft.Win32.Registry.xml",
"ref/netstandard1.3/zh-hans/Microsoft.Win32.Registry.xml",
"ref/netstandard1.3/zh-hant/Microsoft.Win32.Registry.xml",
"ref/netstandard2.0/Microsoft.Win32.Registry.dll",
"ref/netstandard2.0/Microsoft.Win32.Registry.xml",
"runtimes/win/lib/net46/Microsoft.Win32.Registry.dll",
"runtimes/win/lib/net461/Microsoft.Win32.Registry.dll",
"runtimes/win/lib/net461/Microsoft.Win32.Registry.xml",
"runtimes/win/lib/netstandard1.3/Microsoft.Win32.Registry.dll",
"runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll",
"runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.xml",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"MongoDB.Bson/3.1.0": {
"sha512": "3dhaZhz18B5vUoEP13o2j8A6zQfkHdZhwBvLZEjDJum4BTLLv1/Z8bt25UQEtpqvYwLgde4R6ekWZ7XAYUMxuw==",
"type": "package",
"path": "mongodb.bson/3.1.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"README.md",
"lib/net472/MongoDB.Bson.dll",
"lib/net472/MongoDB.Bson.xml",
"lib/net6.0/MongoDB.Bson.dll",
"lib/net6.0/MongoDB.Bson.xml",
"lib/netstandard2.1/MongoDB.Bson.dll",
"lib/netstandard2.1/MongoDB.Bson.xml",
"mongodb.bson.3.1.0.nupkg.sha512",
"mongodb.bson.nuspec",
"packageIcon.png"
]
},
"MongoDB.Driver/3.1.0": {
"sha512": "+O7lKaIl7VUHptE0hqTd7UY1G5KDp/o8S4upG7YL4uChMNKD/U6tz9i17nMGHaD/L2AiPLgaJcaDe2XACsegGA==",
"type": "package",
"path": "mongodb.driver/3.1.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"README.md",
"lib/net472/MongoDB.Driver.dll",
"lib/net472/MongoDB.Driver.xml",
"lib/net6.0/MongoDB.Driver.dll",
"lib/net6.0/MongoDB.Driver.xml",
"lib/netstandard2.1/MongoDB.Driver.dll",
"lib/netstandard2.1/MongoDB.Driver.xml",
"mongodb.driver.3.1.0.nupkg.sha512",
"mongodb.driver.nuspec",
"packageIcon.png"
]
},
"Newtonsoft.Json/13.0.3": {
"sha512": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"type": "package",
"path": "newtonsoft.json/13.0.3",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.md",
"README.md",
"lib/net20/Newtonsoft.Json.dll",
"lib/net20/Newtonsoft.Json.xml",
"lib/net35/Newtonsoft.Json.dll",
"lib/net35/Newtonsoft.Json.xml",
"lib/net40/Newtonsoft.Json.dll",
"lib/net40/Newtonsoft.Json.xml",
"lib/net45/Newtonsoft.Json.dll",
"lib/net45/Newtonsoft.Json.xml",
"lib/net6.0/Newtonsoft.Json.dll",
"lib/net6.0/Newtonsoft.Json.xml",
"lib/netstandard1.0/Newtonsoft.Json.dll",
"lib/netstandard1.0/Newtonsoft.Json.xml",
"lib/netstandard1.3/Newtonsoft.Json.dll",
"lib/netstandard1.3/Newtonsoft.Json.xml",
"lib/netstandard2.0/Newtonsoft.Json.dll",
"lib/netstandard2.0/Newtonsoft.Json.xml",
"newtonsoft.json.13.0.3.nupkg.sha512",
"newtonsoft.json.nuspec",
"packageIcon.png"
]
},
"protobuf-net/3.2.45": {
"sha512": "5UZ/ukUHcGbFSl7vNMrHsfjqdxusdd9w7w0fCEXzf3UUtsrGNVCzV5SmF+sCHAbnRV2qPcD1ixiDP7Aj8lX/HA==",
"type": "package",
"path": "protobuf-net/3.2.45",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/net462/protobuf-net.dll",
"lib/net462/protobuf-net.xml",
"lib/net6.0/protobuf-net.dll",
"lib/net6.0/protobuf-net.xml",
"lib/netstandard2.0/protobuf-net.dll",
"lib/netstandard2.0/protobuf-net.xml",
"lib/netstandard2.1/protobuf-net.dll",
"lib/netstandard2.1/protobuf-net.xml",
"protobuf-net.3.2.45.nupkg.sha512",
"protobuf-net.nuspec",
"protobuf-net.png",
"readme.md"
]
},
"protobuf-net.Core/3.2.45": {
"sha512": "PMWatW2NrT1uTXD7etJ4VdQ0wWZLFrIfdRGppD2QX7nzZ0+kIzqhq551u6ZiXJHWJgG4hWFEkSnUnt2aB6posg==",
"type": "package",
"path": "protobuf-net.core/3.2.45",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/net462/protobuf-net.Core.dll",
"lib/net462/protobuf-net.Core.xml",
"lib/net6.0/protobuf-net.Core.dll",
"lib/net6.0/protobuf-net.Core.xml",
"lib/netstandard2.0/protobuf-net.Core.dll",
"lib/netstandard2.0/protobuf-net.Core.xml",
"lib/netstandard2.1/protobuf-net.Core.dll",
"lib/netstandard2.1/protobuf-net.Core.xml",
"protobuf-net.core.3.2.45.nupkg.sha512",
"protobuf-net.core.nuspec",
"protobuf-net.png",
"readme.md"
]
},
"SharpCompress/0.30.1": {
"sha512": "XqD4TpfyYGa7QTPzaGlMVbcecKnXy4YmYLDWrU+JIj7IuRNl7DH2END+Ll7ekWIY8o3dAMWLFDE1xdhfIWD1nw==",
"type": "package",
"path": "sharpcompress/0.30.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/net461/SharpCompress.dll",
"lib/net5.0/SharpCompress.dll",
"lib/netcoreapp3.1/SharpCompress.dll",
"lib/netstandard2.0/SharpCompress.dll",
"lib/netstandard2.1/SharpCompress.dll",
"sharpcompress.0.30.1.nupkg.sha512",
"sharpcompress.nuspec"
]
},
"Snappier/1.0.0": {
"sha512": "rFtK2KEI9hIe8gtx3a0YDXdHOpedIf9wYCEYtBEmtlyiWVX3XlCNV03JrmmAi/Cdfn7dxK+k0sjjcLv4fpHnqA==",
"type": "package",
"path": "snappier/1.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"COPYING.txt",
"lib/net5.0/Snappier.dll",
"lib/net5.0/Snappier.xml",
"lib/netcoreapp3.0/Snappier.dll",
"lib/netcoreapp3.0/Snappier.xml",
"lib/netstandard2.0/Snappier.dll",
"lib/netstandard2.0/Snappier.xml",
"lib/netstandard2.1/Snappier.dll",
"lib/netstandard2.1/Snappier.xml",
"snappier.1.0.0.nupkg.sha512",
"snappier.nuspec"
]
},
"System.Buffers/4.5.1": {
"sha512": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==",
"type": "package",
"path": "system.buffers/4.5.1",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/net461/System.Buffers.dll",
"lib/net461/System.Buffers.xml",
"lib/netcoreapp2.0/_._",
"lib/netstandard1.1/System.Buffers.dll",
"lib/netstandard1.1/System.Buffers.xml",
"lib/netstandard2.0/System.Buffers.dll",
"lib/netstandard2.0/System.Buffers.xml",
"lib/uap10.0.16299/_._",
"ref/net45/System.Buffers.dll",
"ref/net45/System.Buffers.xml",
"ref/netcoreapp2.0/_._",
"ref/netstandard1.1/System.Buffers.dll",
"ref/netstandard1.1/System.Buffers.xml",
"ref/netstandard2.0/System.Buffers.dll",
"ref/netstandard2.0/System.Buffers.xml",
"ref/uap10.0.16299/_._",
"system.buffers.4.5.1.nupkg.sha512",
"system.buffers.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"System.Collections.Immutable/7.0.0": {
"sha512": "dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==",
"type": "package",
"path": "system.collections.immutable/7.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"README.md",
"THIRD-PARTY-NOTICES.TXT",
"buildTransitive/net461/System.Collections.Immutable.targets",
"buildTransitive/net462/_._",
"buildTransitive/net6.0/_._",
"buildTransitive/netcoreapp2.0/System.Collections.Immutable.targets",
"lib/net462/System.Collections.Immutable.dll",
"lib/net462/System.Collections.Immutable.xml",
"lib/net6.0/System.Collections.Immutable.dll",
"lib/net6.0/System.Collections.Immutable.xml",
"lib/net7.0/System.Collections.Immutable.dll",
"lib/net7.0/System.Collections.Immutable.xml",
"lib/netstandard2.0/System.Collections.Immutable.dll",
"lib/netstandard2.0/System.Collections.Immutable.xml",
"system.collections.immutable.7.0.0.nupkg.sha512",
"system.collections.immutable.nuspec",
"useSharedDesignerContext.txt"
]
},
"System.IO.Pipelines/9.0.0": {
"sha512": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==",
"type": "package",
"path": "system.io.pipelines/9.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"PACKAGE.md",
"THIRD-PARTY-NOTICES.TXT",
"buildTransitive/net461/System.IO.Pipelines.targets",
"buildTransitive/net462/_._",
"buildTransitive/net8.0/_._",
"buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets",
"lib/net462/System.IO.Pipelines.dll",
"lib/net462/System.IO.Pipelines.xml",
"lib/net8.0/System.IO.Pipelines.dll",
"lib/net8.0/System.IO.Pipelines.xml",
"lib/net9.0/System.IO.Pipelines.dll",
"lib/net9.0/System.IO.Pipelines.xml",
"lib/netstandard2.0/System.IO.Pipelines.dll",
"lib/netstandard2.0/System.IO.Pipelines.xml",
"system.io.pipelines.9.0.0.nupkg.sha512",
"system.io.pipelines.nuspec",
"useSharedDesignerContext.txt"
]
},
"System.Memory/4.5.5": {
"sha512": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
"type": "package",
"path": "system.memory/4.5.5",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/net461/System.Memory.dll",
"lib/net461/System.Memory.xml",
"lib/netcoreapp2.1/_._",
"lib/netstandard1.1/System.Memory.dll",
"lib/netstandard1.1/System.Memory.xml",
"lib/netstandard2.0/System.Memory.dll",
"lib/netstandard2.0/System.Memory.xml",
"ref/netcoreapp2.1/_._",
"system.memory.4.5.5.nupkg.sha512",
"system.memory.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"System.Runtime.CompilerServices.Unsafe/5.0.0": {
"sha512": "ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==",
"type": "package",
"path": "system.runtime.compilerservices.unsafe/5.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/net45/System.Runtime.CompilerServices.Unsafe.dll",
"lib/net45/System.Runtime.CompilerServices.Unsafe.xml",
"lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.dll",
"lib/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.xml",
"lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll",
"lib/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml",
"lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll",
"lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml",
"ref/net461/System.Runtime.CompilerServices.Unsafe.dll",
"ref/net461/System.Runtime.CompilerServices.Unsafe.xml",
"ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.dll",
"ref/netstandard1.0/System.Runtime.CompilerServices.Unsafe.xml",
"ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll",
"ref/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml",
"ref/netstandard2.1/System.Runtime.CompilerServices.Unsafe.dll",
"ref/netstandard2.1/System.Runtime.CompilerServices.Unsafe.xml",
"system.runtime.compilerservices.unsafe.5.0.0.nupkg.sha512",
"system.runtime.compilerservices.unsafe.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"System.Security.AccessControl/5.0.0": {
"sha512": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==",
"type": "package",
"path": "system.security.accesscontrol/5.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/net46/System.Security.AccessControl.dll",
"lib/net461/System.Security.AccessControl.dll",
"lib/net461/System.Security.AccessControl.xml",
"lib/netstandard1.3/System.Security.AccessControl.dll",
"lib/netstandard2.0/System.Security.AccessControl.dll",
"lib/netstandard2.0/System.Security.AccessControl.xml",
"lib/uap10.0.16299/_._",
"ref/net46/System.Security.AccessControl.dll",
"ref/net461/System.Security.AccessControl.dll",
"ref/net461/System.Security.AccessControl.xml",
"ref/netstandard1.3/System.Security.AccessControl.dll",
"ref/netstandard1.3/System.Security.AccessControl.xml",
"ref/netstandard1.3/de/System.Security.AccessControl.xml",
"ref/netstandard1.3/es/System.Security.AccessControl.xml",
"ref/netstandard1.3/fr/System.Security.AccessControl.xml",
"ref/netstandard1.3/it/System.Security.AccessControl.xml",
"ref/netstandard1.3/ja/System.Security.AccessControl.xml",
"ref/netstandard1.3/ko/System.Security.AccessControl.xml",
"ref/netstandard1.3/ru/System.Security.AccessControl.xml",
"ref/netstandard1.3/zh-hans/System.Security.AccessControl.xml",
"ref/netstandard1.3/zh-hant/System.Security.AccessControl.xml",
"ref/netstandard2.0/System.Security.AccessControl.dll",
"ref/netstandard2.0/System.Security.AccessControl.xml",
"ref/uap10.0.16299/_._",
"runtimes/win/lib/net46/System.Security.AccessControl.dll",
"runtimes/win/lib/net461/System.Security.AccessControl.dll",
"runtimes/win/lib/net461/System.Security.AccessControl.xml",
"runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll",
"runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.xml",
"runtimes/win/lib/netstandard1.3/System.Security.AccessControl.dll",
"runtimes/win/lib/uap10.0.16299/_._",
"system.security.accesscontrol.5.0.0.nupkg.sha512",
"system.security.accesscontrol.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"System.Security.Principal.Windows/5.0.0": {
"sha512": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==",
"type": "package",
"path": "system.security.principal.windows/5.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/net46/System.Security.Principal.Windows.dll",
"lib/net461/System.Security.Principal.Windows.dll",
"lib/net461/System.Security.Principal.Windows.xml",
"lib/netstandard1.3/System.Security.Principal.Windows.dll",
"lib/netstandard2.0/System.Security.Principal.Windows.dll",
"lib/netstandard2.0/System.Security.Principal.Windows.xml",
"lib/uap10.0.16299/_._",
"ref/net46/System.Security.Principal.Windows.dll",
"ref/net461/System.Security.Principal.Windows.dll",
"ref/net461/System.Security.Principal.Windows.xml",
"ref/netcoreapp3.0/System.Security.Principal.Windows.dll",
"ref/netcoreapp3.0/System.Security.Principal.Windows.xml",
"ref/netstandard1.3/System.Security.Principal.Windows.dll",
"ref/netstandard1.3/System.Security.Principal.Windows.xml",
"ref/netstandard1.3/de/System.Security.Principal.Windows.xml",
"ref/netstandard1.3/es/System.Security.Principal.Windows.xml",
"ref/netstandard1.3/fr/System.Security.Principal.Windows.xml",
"ref/netstandard1.3/it/System.Security.Principal.Windows.xml",
"ref/netstandard1.3/ja/System.Security.Principal.Windows.xml",
"ref/netstandard1.3/ko/System.Security.Principal.Windows.xml",
"ref/netstandard1.3/ru/System.Security.Principal.Windows.xml",
"ref/netstandard1.3/zh-hans/System.Security.Principal.Windows.xml",
"ref/netstandard1.3/zh-hant/System.Security.Principal.Windows.xml",
"ref/netstandard2.0/System.Security.Principal.Windows.dll",
"ref/netstandard2.0/System.Security.Principal.Windows.xml",
"ref/uap10.0.16299/_._",
"runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.dll",
"runtimes/unix/lib/netcoreapp2.0/System.Security.Principal.Windows.xml",
"runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll",
"runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.xml",
"runtimes/win/lib/net46/System.Security.Principal.Windows.dll",
"runtimes/win/lib/net461/System.Security.Principal.Windows.dll",
"runtimes/win/lib/net461/System.Security.Principal.Windows.xml",
"runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.dll",
"runtimes/win/lib/netcoreapp2.0/System.Security.Principal.Windows.xml",
"runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll",
"runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.xml",
"runtimes/win/lib/netstandard1.3/System.Security.Principal.Windows.dll",
"runtimes/win/lib/uap10.0.16299/_._",
"system.security.principal.windows.5.0.0.nupkg.sha512",
"system.security.principal.windows.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"ZstdSharp.Port/0.7.3": {
"sha512": "U9Ix4l4cl58Kzz1rJzj5hoVTjmbx1qGMwzAcbv1j/d3NzrFaESIurQyg+ow4mivCgkE3S413y+U9k4WdnEIkRA==",
"type": "package",
"path": "zstdsharp.port/0.7.3",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/net461/ZstdSharp.dll",
"lib/net5.0/ZstdSharp.dll",
"lib/net6.0/ZstdSharp.dll",
"lib/net7.0/ZstdSharp.dll",
"lib/netcoreapp3.1/ZstdSharp.dll",
"lib/netstandard2.0/ZstdSharp.dll",
"lib/netstandard2.1/ZstdSharp.dll",
"zstdsharp.port.0.7.3.nupkg.sha512",
"zstdsharp.port.nuspec"
]
},
"Fantasy-Net/2024.2.24": {
"type": "project",
"path": "../../Packages/Fantasy/Fantasy.Net/Fantasy.Net/Fantasy.Net.csproj",
"msbuildProject": "../../Packages/Fantasy/Fantasy.Net/Fantasy.Net/Fantasy.Net.csproj"
},
"Fantasy-Net.ConfigTable/2024.2.0": {
"type": "project",
"path": "../../Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/Fantasy.ConfigTable.csproj",
"msbuildProject": "../../Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/Fantasy.ConfigTable.csproj"
}
},
"projectFileDependencyGroups": {
"net8.0": [
"Fantasy-Net >= 2024.2.24",
"Fantasy-Net.ConfigTable >= 2024.2.0"
]
},
"packageFolders": {
"/Users/fantasy/.nuget/packages/": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/Entity.csproj",
"projectName": "Entity",
"projectPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/Entity.csproj",
"packagesPath": "/Users/fantasy/.nuget/packages/",
"outputPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/",
"projectStyle": "PackageReference",
"configFilePaths": [
"/Users/fantasy/.nuget/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"/usr/local/share/dotnet/library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"projectReferences": {
"/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Net/Fantasy.Net/Fantasy.Net.csproj": {
"projectPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Net/Fantasy.Net/Fantasy.Net.csproj"
},
"/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/Fantasy.ConfigTable.csproj": {
"projectPath": "/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/Fantasy.ConfigTable.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "all"
},
"SdkAnalysisLevel": "9.0.100"
},
"frameworks": {
"net8.0": {
"targetAlias": "net8.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/local/share/dotnet/sdk/9.0.100/PortableRuntimeIdentifierGraph.json"
}
}
}
}

View File

@@ -0,0 +1,30 @@
{
"version": 2,
"dgSpecHash": "3mbwUg3kjU0=",
"success": true,
"projectFilePath": "/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/Entity.csproj",
"expectedPackageFiles": [
"/Users/fantasy/.nuget/packages/commandlineparser/2.9.1/commandlineparser.2.9.1.nupkg.sha512",
"/Users/fantasy/.nuget/packages/dnsclient/1.6.1/dnsclient.1.6.1.nupkg.sha512",
"/Users/fantasy/.nuget/packages/microsoft.extensions.logging.abstractions/2.0.0/microsoft.extensions.logging.abstractions.2.0.0.nupkg.sha512",
"/Users/fantasy/.nuget/packages/microsoft.netcore.platforms/5.0.0/microsoft.netcore.platforms.5.0.0.nupkg.sha512",
"/Users/fantasy/.nuget/packages/microsoft.win32.registry/5.0.0/microsoft.win32.registry.5.0.0.nupkg.sha512",
"/Users/fantasy/.nuget/packages/mongodb.bson/3.1.0/mongodb.bson.3.1.0.nupkg.sha512",
"/Users/fantasy/.nuget/packages/mongodb.driver/3.1.0/mongodb.driver.3.1.0.nupkg.sha512",
"/Users/fantasy/.nuget/packages/newtonsoft.json/13.0.3/newtonsoft.json.13.0.3.nupkg.sha512",
"/Users/fantasy/.nuget/packages/protobuf-net/3.2.45/protobuf-net.3.2.45.nupkg.sha512",
"/Users/fantasy/.nuget/packages/protobuf-net.core/3.2.45/protobuf-net.core.3.2.45.nupkg.sha512",
"/Users/fantasy/.nuget/packages/sharpcompress/0.30.1/sharpcompress.0.30.1.nupkg.sha512",
"/Users/fantasy/.nuget/packages/snappier/1.0.0/snappier.1.0.0.nupkg.sha512",
"/Users/fantasy/.nuget/packages/system.buffers/4.5.1/system.buffers.4.5.1.nupkg.sha512",
"/Users/fantasy/.nuget/packages/system.collections.immutable/7.0.0/system.collections.immutable.7.0.0.nupkg.sha512",
"/Users/fantasy/.nuget/packages/system.io.pipelines/9.0.0/system.io.pipelines.9.0.0.nupkg.sha512",
"/Users/fantasy/.nuget/packages/system.memory/4.5.5/system.memory.4.5.5.nupkg.sha512",
"/Users/fantasy/.nuget/packages/system.runtime.compilerservices.unsafe/5.0.0/system.runtime.compilerservices.unsafe.5.0.0.nupkg.sha512",
"/Users/fantasy/.nuget/packages/system.security.accesscontrol/5.0.0/system.security.accesscontrol.5.0.0.nupkg.sha512",
"/Users/fantasy/.nuget/packages/system.security.principal.windows/5.0.0/system.security.principal.windows.5.0.0.nupkg.sha512",
"/Users/fantasy/.nuget/packages/zstdsharp.port/0.7.3/zstdsharp.port.0.7.3.nupkg.sha512",
"/Users/fantasy/.nuget/packages/fantasy-net/2024.2.24/fantasy-net.2024.2.24.nupkg.sha512"
],
"logs": []
}

View File

@@ -0,0 +1 @@
"restore":{"projectUniqueName":"/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/Entity.csproj","projectName":"Entity","projectPath":"/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/Entity.csproj","outputPath":"/Users/fantasy/Movies/物品背包开发之旅/B/Server/Entity/obj/","projectStyle":"PackageReference","originalTargetFrameworks":["net8.0"],"sources":{"/usr/local/share/dotnet/library-packs":{},"https://api.nuget.org/v3/index.json":{}},"frameworks":{"net8.0":{"targetAlias":"net8.0","projectReferences":{"/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Net/Fantasy.Net/Fantasy.Net.csproj":{"projectPath":"/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Net/Fantasy.Net/Fantasy.Net.csproj"},"/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/Fantasy.ConfigTable.csproj":{"projectPath":"/Users/fantasy/Movies/物品背包开发之旅/B/Packages/Fantasy/Fantasy.Packages/Fantasy.ConfigTable/Net/Fantasy.ConfigTable.csproj"}}}},"warningProperties":{"warnAsError":["NU1605"]},"restoreAuditProperties":{"enableAudit":"true","auditLevel":"low","auditMode":"all"},"SdkAnalysisLevel":"9.0.100"}"frameworks":{"net8.0":{"targetAlias":"net8.0","imports":["net461","net462","net47","net471","net472","net48","net481"],"assetTargetFallback":true,"warn":true,"frameworkReferences":{"Microsoft.NETCore.App":{"privateAssets":"all"}},"runtimeIdentifierGraphPath":"/usr/local/share/dotnet/sdk/9.0.100/PortableRuntimeIdentifierGraph.json"}}

View File

@@ -0,0 +1 @@
17428701567253007

View File

@@ -0,0 +1 @@
17428701567253007