### Summary
* Adds an event scheduler.
* Adds conveniences for hourly, daily, weekly, biweekly, monthly, ordinal monthly, and yearly recurrences
Example:
```cs
var tz = TimeZoneInfo.FindSystemTimeZoneById("America/New_York");
// Specify the time of the day, and the day of the week you want it to occur. Make sure it is translated into Utc.
// The next occurrence will be _after_ the specified date/time.
var scheduledEvent = EventScheduler.WeeklyAt(new DateTime(2025, 04, 26, 17, 00, 00), StartEvent, tz);
void StartEvent()
{
World.Broadcast(0x30, false, "The event has started!");
}
Console.WriteLine("Event starts on {0}", scheduledEvent.NextOccurrence);
```
In this example, on _Saturday, May 3rd, 2025 @ 5pm ET_, the message "The event has started!" will be broadcasted.
54 lines
3.4 KiB
XML
54 lines
3.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="Current">
|
|
<PropertyGroup>
|
|
<Product>ModernUO Core</Product>
|
|
<OutDir>..\..\Distribution</OutDir>
|
|
<PublishDir>..\..\Distribution</PublishDir>
|
|
<Version>0.0.0</Version>
|
|
<Configurations>Debug;Release;Analyze</Configurations>
|
|
<RootNamespace>Server</RootNamespace>
|
|
<PackageId>Server</PackageId>
|
|
</PropertyGroup>
|
|
<Target Name="CleanPub" AfterTargets="Clean">
|
|
<Message Text="Server: Removing distribution files..." />
|
|
<Delete Files="..\..\Distribution\$(AssemblyName)" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\$(AssemblyName).deps.json" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\$(AssemblyName).dll" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\$(AssemblyName).dll.config" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\$(AssemblyName).exe" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\$(AssemblyName).pdb" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\$(AssemblyName).runtimeconfig.dev.json" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\$(AssemblyName).runtimeconfig.json" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\ModernUO.Serialization.Annotations.dll" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\CommunityToolkit.HighPerformance.dll" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\PollGroup.dll" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\ref\$(AssemblyName).dll" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\Serilog.dll" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\Serilog.Sinks.Async.dll" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\Serilog.Sinks.Console.dll" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\wepoll.dll" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\LibDeflate.Bindings.dll" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\libdeflate.dll" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\libdeflate.dylib" ContinueOnError="true" />
|
|
<Delete Files="..\..\Distribution\System.IO.Hashing.dll" ContinueOnError="true" />
|
|
</Target>
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\Logger\Logger.csproj" />
|
|
<PackageReference Include="CommunityToolkit.HighPerformance" Version="8.4.0" />
|
|
<PackageReference Include="LibDeflate.Bindings" Version="1.0.2.120" />
|
|
<PackageReference Include="PollGroup" Version="1.6.1" />
|
|
<PackageReference Include="System.IO.Hashing" Version="9.0.4" />
|
|
|
|
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.9.1" />
|
|
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.12.20" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<AdditionalFiles Include="Migrations/*.v*.json" />
|
|
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
|
|
<_Parameter1>Server.Tests</_Parameter1>
|
|
</AssemblyAttribute>
|
|
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
|
|
<_Parameter1>UOContent.Tests</_Parameter1>
|
|
</AssemblyAttribute>
|
|
</ItemGroup>
|
|
</Project>
|