jRandomSkills/jRandomSkills - SRC Files/jRandomSkills.csproj
Astra 09437a275a chore: stop tracking build output, ship it as a release instead
"jRandomSkills - Server Files" is now gitignored build output; releases carry the built plugin.
The GeoLite2 country database moves to "jRandomSkills - SRC Files/packages" and a new
CopyPackagesToServer target copies it into the build output. The shipped configs are dropped:
the plugin writes config.json and skillsInfo.json itself when they are missing.
2026-09-24 21:41:09 +01:00

108 lines
5.1 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<ItemGroup>
<Compile Remove="tools\**" />
<None Remove="tools\**" />
</ItemGroup>
<ItemGroup>
<None Include="src\player\skills\TeamTeleport.cs" />
</ItemGroup>
<ItemGroup>
<!-- Matches the server pin (pre.sh CSS_VERSION). PanoramaManager below needs 1.0.374+,
the release that added the CCSCustomHudLayout API it drives. -->
<PackageReference Include="CounterStrikeSharp.API" Version="1.0.375" />
<PackageReference Include="MaxMind.Db" Version="5.1.0">
</PackageReference>
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<!-- Drives the real Panorama skill HUD (see PlayerEvents.cs's UpdateSkillHUD) for skills
that don't set a custom PrintHTML override - see CLAUDE.md's "Panorama HUD" section for
why that's staged separately from the 36 skills that do. -->
<PackageReference Include="PanoramaManager" Version="0.4.1" />
</ItemGroup>
<ItemGroup>
<Reference Include="RayTraceApi">
<HintPath>libs/RayTraceApi.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<PropertyGroup>
<SourceLangDir>$(MSBuildProjectDirectory)\src\lang</SourceLangDir>
<ServerLangDir>$(MSBuildProjectDirectory)\..\jRandomSkills - Server Files\plugins\jRandomSkills\languages</ServerLangDir>
<SourceDLL>$(MSBuildProjectDirectory)\bin\$(Configuration)\$(TargetFramework)</SourceDLL>
<ServerDLL>$(MSBuildProjectDirectory)\..\jRandomSkills - Server Files\plugins\jRandomSkills</ServerDLL>
<SourceGamedataDir>$(MSBuildProjectDirectory)\src\gamedata</SourceGamedataDir>
<ServerGamedataDir>$(MSBuildProjectDirectory)\..\jRandomSkills - Server Files\gamedata</ServerGamedataDir>
</PropertyGroup>
<!-- Copy language files to server directory -->
<Target Name="CopyLangFilesToServer" AfterTargets="Build">
<Message Text="Copying language files from $(SourceLangDir) to $(ServerLangDir)" Importance="High" />
<ItemGroup>
<LangFiles Include="$(SourceLangDir)\**\*.*" />
</ItemGroup>
<MakeDir Directories="$(ServerLangDir)" Condition="!Exists('$(ServerLangDir)')" />
<Copy SourceFiles="@(LangFiles)" DestinationFiles="@(LangFiles->'$(ServerLangDir)\\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
</Target>
<!-- Copy compiled DLL to server directory -->
<Target Name="CopyDLLToServer" AfterTargets="Build">
<Message Text="Copying compiled DLL from $(SourceDLL) to $(ServerDLL)" Importance="High" />
<ItemGroup>
<CompiledDLL Include="$(SourceDLL)\jRandomSkills.dll" />
<CompiledDLL Include="$(SourceDLL)\jRandomSkills.pdb" />
<CompiledDLL Include="$(SourceDLL)\MaxMind.Db.dll" />
<CompiledDLL Include="$(SourceDLL)\Newtonsoft.Json.dll" />
<CompiledDLL Include="$(SourceDLL)\PanoramaManager.dll" />
<!-- No PanoramaManager.pdb here - the NuGet package doesn't ship one, unlike our own
local ProjectReference builds elsewhere in this repo. -->
</ItemGroup>
<MakeDir Directories="$(ServerDLL)" Condition="!Exists('$(ServerDLL)')" />
<Copy SourceFiles="@(CompiledDLL)" DestinationFiles="@(CompiledDLL->'$(ServerDLL)\\%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
</Target>
<!-- Copy packages (GeoLite2 country database) to server directory -->
<Target Name="CopyPackagesToServer" AfterTargets="Build">
<ItemGroup>
<PackageFiles Include="$(MSBuildProjectDirectory)\packages\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(PackageFiles)" DestinationFiles="@(PackageFiles->'$(ServerDLL)\packages\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
</Target>
<!-- Copy gamedata files to server directory -->
<Target Name="CopyGamedataFilesToServer" AfterTargets="Build">
<Message Text="Copying gamedata files from $(SourceGamedataDir) to $(ServerGamedataDir)" Importance="High" />
<ItemGroup>
<GamedataFiles Include="$(SourceGamedataDir)\**\*.*" />
</ItemGroup>
<MakeDir Directories="$(ServerGamedataDir)" Condition="!Exists('$(ServerGamedataDir)')" />
<Copy SourceFiles="@(GamedataFiles)" DestinationFiles="@(GamedataFiles->'$(ServerGamedataDir)\\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
</Target>
</Project>