1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2026-01-02 10:43:31 +00:00

Updated Nuget packages

Added WoW game state support (AFK/DND, logged out)
Added buff duration/progress
This commit is contained in:
SpoinkyNL 2017-09-12 11:21:09 +02:00
parent 3b28170217
commit dfb1f9f19d
22 changed files with 377 additions and 153 deletions

View File

@ -10,7 +10,7 @@
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /> <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" /> <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
@ -30,7 +30,7 @@
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="SharpDX" publicKeyToken="b4dcf0f35e5521f1" culture="neutral" /> <assemblyIdentity name="SharpDX" publicKeyToken="b4dcf0f35e5521f1" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.2.0" newVersion="3.0.2.0" /> <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly> <dependentAssembly>
<assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" /> <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral" />
@ -44,6 +44,10 @@
<assemblyIdentity name="DeltaCompressionDotNet.MsDelta" publicKeyToken="46b2138a390abf55" culture="neutral" /> <assemblyIdentity name="DeltaCompressionDotNet.MsDelta" publicKeyToken="46b2138a390abf55" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" /> <bindingRedirect oldVersion="0.0.0.0-1.1.0.0" newVersion="1.1.0.0" />
</dependentAssembly> </dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SharpCompress" publicKeyToken="afb0a02973931d96" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.18.1.0" newVersion="0.18.1.0" />
</dependentAssembly>
</assemblyBinding></runtime> </assemblyBinding></runtime>
</configuration> </configuration>

View File

@ -140,32 +140,23 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Caliburn.Micro, Version=3.0.3.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL"> <Reference Include="Caliburn.Micro, Version=3.0.3.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.Core.3.0.3\lib\net45\Caliburn.Micro.dll</HintPath> <HintPath>..\packages\Caliburn.Micro.Core.3.1.0\lib\net45\Caliburn.Micro.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="Caliburn.Micro.Platform, Version=3.0.3.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL"> <Reference Include="Caliburn.Micro.Platform, Version=3.0.3.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.0.3\lib\net45\Caliburn.Micro.Platform.dll</HintPath> <HintPath>..\packages\Caliburn.Micro.3.1.0\lib\net45\Caliburn.Micro.Platform.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="Caliburn.Micro.Platform.Core, Version=3.0.3.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL"> <Reference Include="Caliburn.Micro.Platform.Core, Version=3.0.3.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f, processorArchitecture=MSIL">
<HintPath>..\packages\Caliburn.Micro.3.0.3\lib\net45\Caliburn.Micro.Platform.Core.dll</HintPath> <HintPath>..\packages\Caliburn.Micro.3.1.0\lib\net45\Caliburn.Micro.Platform.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Castle.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL">
<HintPath>..\packages\Castle.Core.4.0.0\lib\net45\Castle.Core.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="Corale.Colore, Version=5.1.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Corale.Colore, Version=5.1.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Colore.5.1.0\lib\net35\Corale.Colore.dll</HintPath> <HintPath>..\packages\Colore.5.1.0\lib\net35\Corale.Colore.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="CSCore, Version=1.1.6245.30570, Culture=neutral, PublicKeyToken=5a08f2b6f4415dea, processorArchitecture=MSIL"> <Reference Include="CSCore, Version=1.2.1.1, Culture=neutral, PublicKeyToken=5a08f2b6f4415dea, processorArchitecture=MSIL">
<HintPath>..\packages\CSCore.1.2.0\lib\net35-client\CSCore.dll</HintPath> <HintPath>..\packages\CSCore.1.2.1.1\lib\net35-client\CSCore.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="CUE.NET, Version=1.1.3.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="CUE.NET, Version=1.1.3.1, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\CUE.NET.1.1.3.0\lib\net45\CUE.NET.dll</HintPath> <HintPath>..\packages\CUE.NET.1.1.3.1\lib\net45\CUE.NET.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="DeltaCompressionDotNet, Version=1.1.0.0, Culture=neutral, PublicKeyToken=1d14d6e5194e7f4a, processorArchitecture=MSIL"> <Reference Include="DeltaCompressionDotNet, Version=1.1.0.0, Culture=neutral, PublicKeyToken=1d14d6e5194e7f4a, processorArchitecture=MSIL">
<HintPath>..\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.dll</HintPath> <HintPath>..\packages\DeltaCompressionDotNet.1.1.0\lib\net20\DeltaCompressionDotNet.dll</HintPath>
@ -180,8 +171,7 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="DynamicExpresso.Core, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="DynamicExpresso.Core, Version=1.3.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\DynamicExpresso.Core.1.3.3.5\lib\net40\DynamicExpresso.Core.dll</HintPath> <HintPath>..\packages\DynamicExpresso.Core.1.3.3.6\lib\net40\DynamicExpresso.Core.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="Gma.System.MouseKeyHook, Version=5.4.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Gma.System.MouseKeyHook, Version=5.4.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\MouseKeyHook.5.4.0\lib\net40\Gma.System.MouseKeyHook.dll</HintPath> <HintPath>..\packages\MouseKeyHook.5.4.0\lib\net40\Gma.System.MouseKeyHook.dll</HintPath>
@ -197,7 +187,6 @@
</Reference> </Reference>
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\squirrel.windows.1.4.4\lib\Net45\ICSharpCode.SharpZipLib.dll</HintPath> <HintPath>..\packages\squirrel.windows.1.4.4\lib\Net45\ICSharpCode.SharpZipLib.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL"> <Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath> <HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
@ -205,7 +194,6 @@
</Reference> </Reference>
<Reference Include="MahApps.Metro, Version=1.4.3.0, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL"> <Reference Include="MahApps.Metro, Version=1.4.3.0, Culture=neutral, PublicKeyToken=f4fb5a3c4d1e5b4f, processorArchitecture=MSIL">
<HintPath>..\packages\MahApps.Metro.1.4.3\lib\net45\MahApps.Metro.dll</HintPath> <HintPath>..\packages\MahApps.Metro.1.4.3\lib\net45\MahApps.Metro.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="Mono.Cecil, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL"> <Reference Include="Mono.Cecil, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
<HintPath>..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.dll</HintPath> <HintPath>..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.dll</HintPath>
@ -227,9 +215,8 @@
<HintPath>..\packages\MoonSharp.2.0.0.0\lib\net40-client\MoonSharp.Interpreter.dll</HintPath> <HintPath>..\packages\MoonSharp.2.0.0.0\lib\net40-client\MoonSharp.Interpreter.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="Ninject, Version=3.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL"> <Reference Include="Ninject, Version=3.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL">
<HintPath>..\packages\Ninject.3.2.2.0\lib\net45-full\Ninject.dll</HintPath> <HintPath>..\packages\Ninject.3.2.2.0\lib\net45-full\Ninject.dll</HintPath>
@ -248,12 +235,10 @@
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL"> <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.4\lib\net45\NLog.dll</HintPath> <HintPath>..\packages\NLog.4.4.12\lib\net45\NLog.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="NuGet.Squirrel, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="NuGet.Squirrel, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\squirrel.windows.1.4.4\lib\Net45\NuGet.Squirrel.dll</HintPath> <HintPath>..\packages\squirrel.windows.1.4.4\lib\Net45\NuGet.Squirrel.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="PcapDotNet.Base, Version=1.0.4.25027, Culture=neutral, PublicKeyToken=06a20bc2fabb1931, processorArchitecture=MSIL"> <Reference Include="PcapDotNet.Base, Version=1.0.4.25027, Culture=neutral, PublicKeyToken=06a20bc2fabb1931, processorArchitecture=MSIL">
<HintPath>..\packages\Pcap.Net.x64.1.0.4.1\lib\net45\PcapDotNet.Base.dll</HintPath> <HintPath>..\packages\Pcap.Net.x64.1.0.4.1\lib\net45\PcapDotNet.Base.dll</HintPath>
@ -271,25 +256,21 @@
<HintPath>..\packages\Process.NET.1.0.8\lib\Process.NET.dll</HintPath> <HintPath>..\packages\Process.NET.1.0.8\lib\Process.NET.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="SharpDX, Version=3.1.1.0, Culture=neutral, PublicKeyToken=b4dcf0f35e5521f1, processorArchitecture=MSIL"> <Reference Include="SharpDX, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b4dcf0f35e5521f1, processorArchitecture=MSIL">
<HintPath>..\packages\SharpDX.3.1.1\lib\net45\SharpDX.dll</HintPath> <HintPath>..\packages\SharpDX.4.0.1\lib\net45\SharpDX.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="SharpDX.Direct3D9, Version=3.1.1.0, Culture=neutral, PublicKeyToken=b4dcf0f35e5521f1, processorArchitecture=MSIL"> <Reference Include="SharpDX.Direct3D9, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b4dcf0f35e5521f1, processorArchitecture=MSIL">
<HintPath>..\packages\SharpDX.Direct3D9.3.1.1\lib\net45\SharpDX.Direct3D9.dll</HintPath> <HintPath>..\packages\SharpDX.Direct3D9.4.0.1\lib\net45\SharpDX.Direct3D9.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="Splat, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Splat, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Splat.2.0.0\lib\Net45\Splat.dll</HintPath> <HintPath>..\packages\Splat.2.0.0\lib\Net45\Splat.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="SpotifyAPI, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="SpotifyAPI, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\SpotifyAPI-NET.2.13.1\lib\SpotifyAPI.dll</HintPath> <HintPath>..\packages\SpotifyAPI-NET.2.16.0\lib\SpotifyAPI.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="Squirrel, Version=1.4.3.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Squirrel, Version=1.4.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\squirrel.windows.1.4.4\lib\Net45\Squirrel.dll</HintPath> <HintPath>..\packages\squirrel.windows.1.4.4\lib\Net45\Squirrel.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.ComponentModel.Composition" /> <Reference Include="System.ComponentModel.Composition" />
@ -303,7 +284,6 @@
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\MahApps.Metro.1.4.3\lib\net45\System.Windows.Interactivity.dll</HintPath> <HintPath>..\packages\MahApps.Metro.1.4.3\lib\net45\System.Windows.Interactivity.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
@ -1127,12 +1107,12 @@
<Folder Include="Resources\Lua\" /> <Folder Include="Resources\Lua\" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\CUE.NET.1.1.3.0\build\net45\CUE.NET.targets" Condition="Exists('..\packages\CUE.NET.1.1.3.0\build\net45\CUE.NET.targets')" /> <Import Project="..\packages\CUE.NET.1.1.3.1\build\net45\CUE.NET.targets" Condition="Exists('..\packages\CUE.NET.1.1.3.1\build\net45\CUE.NET.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup> <PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\packages\CUE.NET.1.1.3.0\build\net45\CUE.NET.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CUE.NET.1.1.3.0\build\net45\CUE.NET.targets'))" /> <Error Condition="!Exists('..\packages\CUE.NET.1.1.3.1\build\net45\CUE.NET.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CUE.NET.1.1.3.1\build\net45\CUE.NET.targets'))" />
</Target> </Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -7,7 +7,6 @@ using Artemis.Profiles;
using Artemis.Profiles.Lua; using Artemis.Profiles.Lua;
using Artemis.Profiles.Lua.Modules; using Artemis.Profiles.Lua.Modules;
using Artemis.Profiles.Lua.Modules.Gui; using Artemis.Profiles.Lua.Modules.Gui;
using Castle.Core.Internal;
using MoonSharp.Interpreter; using MoonSharp.Interpreter;
using Ninject; using Ninject;
using Ninject.Extensions.Logging; using Ninject.Extensions.Logging;
@ -64,7 +63,7 @@ namespace Artemis.Managers
LuaScript.Globals[luaModule.ModuleName] = luaModule; LuaScript.Globals[luaModule.ModuleName] = luaModule;
// If there is no LUA script, don't bother executing the string // If there is no LUA script, don't bother executing the string
if (ProfileModel.LuaScript.IsNullOrEmpty()) if (string.IsNullOrEmpty(ProfileModel.LuaScript))
return; return;
try try

View File

@ -12,6 +12,7 @@ namespace Artemis.Modules.Games.WoW.Models
public int Stacks { get; set; } public int Stacks { get; set; }
public DateTime StartTime { set; get; } public DateTime StartTime { set; get; }
public DateTime EndTime { get; set; } public DateTime EndTime { get; set; }
public float Progress { get; set; }
public void ApplyJson(JToken buffJson) public void ApplyJson(JToken buffJson)
{ {
@ -20,7 +21,25 @@ namespace Artemis.Modules.Games.WoW.Models
if (buffJson["c"] != null) if (buffJson["c"] != null)
Stacks = buffJson["c"].Value<int>(); Stacks = buffJson["c"].Value<int>();
// TODO: Duration if (buffJson["e"] != null)
{
var expires = buffJson["e"].Value<int>();
var tickCount = Environment.TickCount;
var timeLeft = expires - tickCount;
EndTime = DateTime.Now.AddMilliseconds(timeLeft);
}
if (buffJson["d"] != null)
StartTime = EndTime.AddSeconds(buffJson["d"].Value<int>() * -1);
}
public void UpdateProgress()
{
var elapsed = DateTime.Now - StartTime;
var total = EndTime - StartTime;
Progress = (float) (elapsed.TotalMilliseconds / total.TotalMilliseconds);
if (Progress > 1)
Progress = 1;
} }
} }
} }

View File

@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Artemis.Utilities; using Artemis.Utilities;
using MoonSharp.Interpreter; using MoonSharp.Interpreter;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
@ -37,7 +36,7 @@ namespace Artemis.Modules.Games.WoW.Models
public List<WoWAura> Buffs { get; } public List<WoWAura> Buffs { get; }
public List<WoWAura> Debuffs { get; } public List<WoWAura> Debuffs { get; }
public List<WoWSpell> RecentIntantCasts { get; private set; } public List<WoWSpell> RecentIntantCasts { get; }
public void ApplyJson(JToken json) public void ApplyJson(JToken json)
{ {
@ -67,6 +66,8 @@ namespace Artemis.Modules.Games.WoW.Models
public void ApplyAuraJson(JToken json, bool buffs) public void ApplyAuraJson(JToken json, bool buffs)
{ {
if (buffs) if (buffs)
{
lock (Buffs)
{ {
Buffs.Clear(); Buffs.Clear();
foreach (var auraJson in json.Children()) foreach (var auraJson in json.Children())
@ -76,7 +77,10 @@ namespace Artemis.Modules.Games.WoW.Models
Buffs.Add(aura); Buffs.Add(aura);
} }
} }
}
else else
{
lock (Debuffs)
{ {
Debuffs.Clear(); Debuffs.Clear();
foreach (var auraJson in json.Children()) foreach (var auraJson in json.Children())
@ -87,6 +91,7 @@ namespace Artemis.Modules.Games.WoW.Models
} }
} }
} }
}
public void AddInstantCast(WoWSpell spell) public void AddInstantCast(WoWSpell spell)
{ {
@ -113,6 +118,17 @@ namespace Artemis.Modules.Games.WoW.Models
{ {
CastBar.UpdateProgress(); CastBar.UpdateProgress();
ClearInstantCasts(); ClearInstantCasts();
lock (Buffs)
{
foreach (var buff in Buffs)
buff.UpdateProgress();
}
lock (Debuffs)
{
foreach (var debuff in Debuffs)
debuff.UpdateProgress();
}
} }
} }
} }

View File

@ -1,5 +1,9 @@
Artemis = LibStub("AceAddon-3.0"):NewAddon("Artemis", "AceConsole-3.0", "AceEvent-3.0", "AceTimer-3.0", "AceComm-3.0") Artemis = LibStub("AceAddon-3.0"):NewAddon("Artemis", "AceConsole-3.0", "AceEvent-3.0", "AceTimer-3.0", "AceComm-3.0")
json = LibStub("json") json = LibStub("json")
-- Hook onto logout because it seems PLAYER_LOGOUT fires on reload as well
local _Logout = Logout
local debugging = false local debugging = false
local lastLine = {} local lastLine = {}
local channeling = {} local channeling = {}
@ -14,8 +18,10 @@ channeling["player"] = false
channeling["target"] = false channeling["target"] = false
function Artemis:OnEnable() function Artemis:OnEnable()
-- Register all the various events that Artemis will want to know about
Artemis:RegisterEvent("PLAYER_ENTERING_WORLD") Artemis:RegisterEvent("PLAYER_ENTERING_WORLD")
Artemis:RegisterEvent("PLAYER_LEVEL_UP") Artemis:RegisterEvent("PLAYER_LEVEL_UP")
Artemis:RegisterEvent("PLAYER_FLAGS_CHANGED")
Artemis:RegisterEvent("ACHIEVEMENT_EARNED") Artemis:RegisterEvent("ACHIEVEMENT_EARNED")
Artemis:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED") Artemis:RegisterEvent("ACTIVE_TALENT_GROUP_CHANGED")
Artemis:RegisterEvent("UNIT_TARGET") Artemis:RegisterEvent("UNIT_TARGET")
@ -33,7 +39,11 @@ function Artemis:OnEnable()
Artemis:RegisterEvent("ZONE_CHANGED") Artemis:RegisterEvent("ZONE_CHANGED")
Artemis:RegisterEvent("ZONE_CHANGED_NEW_AREA") Artemis:RegisterEvent("ZONE_CHANGED_NEW_AREA")
-- Register the chat command /artemis <something>
Artemis:RegisterChatCommand("artemis", "HandleChatCommand") Artemis:RegisterChatCommand("artemis", "HandleChatCommand")
-- Create a loop that'll periodically send character data in case of an Artemis restart/late start
Artemis:ScheduleRepeatingTimer("PeriodicUpdate", 30)
end end
function Artemis:HandleChatCommand(input) function Artemis:HandleChatCommand(input)
@ -150,15 +160,45 @@ function Artemis:GetUnitAuras(unit, filter)
return auras return auras
end end
function Artemis:PeriodicUpdate()
-- Don't do this in combat, enough data going out at that time already
if InCombatLockdown() then
return
end
Artemis:Transmit("player", Artemis:GetPlayerDetails())
Artemis:TransmitUnitState("player", true);
end
function Artemis:PLAYER_ENTERING_WORLD(...) function Artemis:PLAYER_ENTERING_WORLD(...)
Artemis:Transmit("player", Artemis:GetPlayerDetails()) Artemis:Transmit("player", Artemis:GetPlayerDetails())
Artemis:TransmitUnitState("player", true); Artemis:TransmitUnitState("player", true);
end end
function Logout()
Artemis:Transmit("gameState", "loggedOut")
return _Logout()
end
function Artemis:PLAYER_LEVEL_UP(...) function Artemis:PLAYER_LEVEL_UP(...)
Artemis:Transmit("player", Artemis:GetPlayerDetails()) Artemis:Transmit("player", Artemis:GetPlayerDetails())
end end
function Artemis:PLAYER_FLAGS_CHANGED(...)
local _, unitID = ...
if unitID == "player" then
-- AFK overwrites DND
if UnitIsAFK("player") then
Artemis:Transmit("gameState", "afk")
return
end
if UnitIsDND("player") then
Artemis:Transmit("gameState", "dnd")
return
end
Artemis:Transmit("gameState", "ingame")
end
end
function Artemis:ACHIEVEMENT_EARNED(...) function Artemis:ACHIEVEMENT_EARNED(...)
Artemis:Transmit("player", Artemis:GetPlayerDetails()) Artemis:Transmit("player", Artemis:GetPlayerDetails())
end end

View File

@ -19,5 +19,15 @@ namespace Artemis.Modules.Games.WoW
public string Realm { get; set; } public string Realm { get; set; }
public string Zone { get; set; } public string Zone { get; set; }
public string SubZone { get; set; } public string SubZone { get; set; }
public WoWState State { get; set; }
}
public enum WoWState
{
LoggedOut,
Ingame,
Afk,
Dnd
} }
} }

View File

@ -3,7 +3,6 @@ using Artemis.Managers;
using Artemis.Modules.Abstract; using Artemis.Modules.Abstract;
using Artemis.Modules.Games.WoW.Models; using Artemis.Modules.Games.WoW.Models;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using static Artemis.Modules.Games.WoW.WowPacketScanner;
namespace Artemis.Modules.Games.WoW namespace Artemis.Modules.Games.WoW
{ {
@ -56,6 +55,9 @@ namespace Artemis.Modules.Games.WoW
var dataModel = (WoWDataModel) DataModel; var dataModel = (WoWDataModel) DataModel;
switch (command) switch (command)
{ {
case "gameState":
ParseGameState(data, dataModel);
break;
case "player": case "player":
ParsePlayer(json, dataModel); ParsePlayer(json, dataModel);
break; break;
@ -99,9 +101,25 @@ namespace Artemis.Modules.Games.WoW
} }
} }
private void ParseGameState(string data, WoWDataModel dataModel)
{
if (data == "\"ingame\"")
dataModel.State = WoWState.Ingame;
else if (data == "\"afk\"")
dataModel.State = WoWState.Afk;
else if (data == "\"dnd\"")
dataModel.State = WoWState.Dnd;
else if (data == "\"loggedOut\"")
dataModel.State = WoWState.LoggedOut;
}
private void ParsePlayer(JToken json, WoWDataModel dataModel) private void ParsePlayer(JToken json, WoWDataModel dataModel)
{ {
dataModel.Player.ApplyJson(json); dataModel.Player.ApplyJson(json);
// At this point class/race data is available so no point pretending to be logged out
if (dataModel.State == WoWState.LoggedOut)
dataModel.State = WoWState.Ingame;
} }
private void ParseTarget(JToken json, WoWDataModel dataModel) private void ParseTarget(JToken json, WoWDataModel dataModel)

View File

@ -164,6 +164,7 @@
<xs:element name="whenEqual" type="whenEqual" /> <xs:element name="whenEqual" type="whenEqual" />
<xs:element name="whenNotContains" type="whenNotContains" /> <xs:element name="whenNotContains" type="whenNotContains" />
<xs:element name="whenNotEqual" type="whenNotEqual" /> <xs:element name="whenNotEqual" type="whenNotEqual" />
<xs:element name="whenRepeated" type="whenRepeated" />
</xs:choice> </xs:choice>
</xs:complexType> </xs:complexType>
<xs:simpleType name="NLogLevel"> <xs:simpleType name="NLogLevel">
@ -326,6 +327,7 @@
<xs:extension base="WrapperTargetBase"> <xs:extension base="WrapperTargetBase">
<xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="asyncFlush" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="condition" minOccurs="0" maxOccurs="1" type="Condition" /> <xs:element name="condition" minOccurs="0" maxOccurs="1" type="Condition" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice> </xs:choice>
@ -334,6 +336,11 @@
<xs:documentation>Name of the target.</xs:documentation> <xs:documentation>Name of the target.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="asyncFlush" type="xs:boolean">
<xs:annotation>
<xs:documentation>Delay the flush until the LogEvent has been confirmed as written</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="condition" type="Condition"> <xs:attribute name="condition" type="Condition">
<xs:annotation> <xs:annotation>
<xs:documentation>Condition expression. Log events who meet this condition will cause a flush on the wrapped target.</xs:documentation> <xs:documentation>Condition expression. Log events who meet this condition will cause a flush on the wrapped target.</xs:documentation>
@ -403,13 +410,14 @@
<xs:element name="address" minOccurs="0" maxOccurs="1" type="Layout" /> <xs:element name="address" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="maxQueueSize" minOccurs="0" maxOccurs="1" type="xs:integer" /> <xs:element name="maxQueueSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.NLogViewerParameterInfo" /> <xs:element name="parameter" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.NLogViewerParameterInfo" />
<xs:element name="includeMdc" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="includeNdc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeSourceInfo" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="includeSourceInfo" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeNLogData" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="includeNLogData" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeNdc" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="includeMdc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeCallSite" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="includeCallSite" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="appInfo" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="appInfo" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="ndcItemSeparator" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="ndcItemSeparator" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="includeMdlc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice> </xs:choice>
<xs:attribute name="name" type="xs:string"> <xs:attribute name="name" type="xs:string">
@ -477,9 +485,9 @@
<xs:documentation>Maximum queue size.</xs:documentation> <xs:documentation>Maximum queue size.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeMdc" type="xs:boolean"> <xs:attribute name="includeNdc" type="xs:boolean">
<xs:annotation> <xs:annotation>
<xs:documentation>Indicates whether to include dictionary contents.</xs:documentation> <xs:documentation>Indicates whether to include stack contents.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeSourceInfo" type="xs:boolean"> <xs:attribute name="includeSourceInfo" type="xs:boolean">
@ -492,9 +500,9 @@
<xs:documentation>Indicates whether to include NLog-specific extensions to log4j schema.</xs:documentation> <xs:documentation>Indicates whether to include NLog-specific extensions to log4j schema.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeNdc" type="xs:boolean"> <xs:attribute name="includeMdc" type="xs:boolean">
<xs:annotation> <xs:annotation>
<xs:documentation>Indicates whether to include stack contents.</xs:documentation> <xs:documentation>Indicates whether to include dictionary contents.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeCallSite" type="xs:boolean"> <xs:attribute name="includeCallSite" type="xs:boolean">
@ -512,6 +520,11 @@
<xs:documentation>NDC item separator.</xs:documentation> <xs:documentation>NDC item separator.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeMdlc" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to include dictionary contents.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="optimizeBufferReuse" type="xs:boolean"> <xs:attribute name="optimizeBufferReuse" type="xs:boolean">
<xs:annotation> <xs:annotation>
<xs:documentation>Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit</xs:documentation> <xs:documentation>Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit</xs:documentation>
@ -1001,6 +1014,7 @@
<xs:element name="source" minOccurs="0" maxOccurs="1" type="Layout" /> <xs:element name="source" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="onOverflow" minOccurs="0" maxOccurs="1" type="NLog.Targets.EventLogTargetOverflowAction" /> <xs:element name="onOverflow" minOccurs="0" maxOccurs="1" type="NLog.Targets.EventLogTargetOverflowAction" />
<xs:element name="entryType" minOccurs="0" maxOccurs="1" type="Layout" /> <xs:element name="entryType" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="maxKilobytes" minOccurs="0" maxOccurs="1" type="xs:long" />
<xs:element name="maxMessageLength" minOccurs="0" maxOccurs="1" type="xs:integer" /> <xs:element name="maxMessageLength" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice> </xs:choice>
@ -1049,6 +1063,11 @@
<xs:documentation>Optional entrytype. When not set, or when not convertable to then determined by </xs:documentation> <xs:documentation>Optional entrytype. When not set, or when not convertable to then determined by </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="maxKilobytes" type="xs:long">
<xs:annotation>
<xs:documentation>Maximum Event log size in kilobytes. If null, the value won't be set. Default is 512 Kilobytes as specified by Eventlog API</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxMessageLength" type="xs:integer"> <xs:attribute name="maxMessageLength" type="xs:integer">
<xs:annotation> <xs:annotation>
<xs:documentation>Message length limit to write to the Event Log.</xs:documentation> <xs:documentation>Message length limit to write to the Event Log.</xs:documentation>
@ -1117,18 +1136,19 @@
<xs:element name="discardAll" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="discardAll" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="fileNameKind" minOccurs="0" maxOccurs="1" type="NLog.Targets.FilePathKind" /> <xs:element name="fileNameKind" minOccurs="0" maxOccurs="1" type="NLog.Targets.FilePathKind" />
<xs:element name="forceMutexConcurrentWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="forceMutexConcurrentWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="maxLogFilenames" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="writeFooterOnArchivingOnly" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="writeFooterOnArchivingOnly" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="fileName" minOccurs="0" maxOccurs="1" type="Layout" /> <xs:element name="fileName" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="archiveDateFormat" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="archiveDateFormat" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="archiveOldFileOnStartup" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="archiveOldFileOnStartup" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="createDirs" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="createDirs" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="enableFileDelete" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="fileAttributes" minOccurs="0" maxOccurs="1" type="NLog.Targets.Win32FileAttributes" /> <xs:element name="fileAttributes" minOccurs="0" maxOccurs="1" type="NLog.Targets.Win32FileAttributes" />
<xs:element name="deleteOldFileOnStartup" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="deleteOldFileOnStartup" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="replaceFileContentsOnEachWrite" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="replaceFileContentsOnEachWrite" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="enableFileDelete" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="concurrentWriteAttempts" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="concurrentWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="concurrentWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="keepFileOpen" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="keepFileOpen" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="maxLogFilenames" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="networkWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="networkWrites" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="openFileCacheSize" minOccurs="0" maxOccurs="1" type="xs:integer" /> <xs:element name="openFileCacheSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="openFileCacheTimeout" minOccurs="0" maxOccurs="1" type="xs:integer" /> <xs:element name="openFileCacheTimeout" minOccurs="0" maxOccurs="1" type="xs:integer" />
@ -1136,7 +1156,6 @@
<xs:element name="bufferSize" minOccurs="0" maxOccurs="1" type="xs:integer" /> <xs:element name="bufferSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="autoFlush" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="autoFlush" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="concurrentWriteAttemptDelay" minOccurs="0" maxOccurs="1" type="xs:integer" /> <xs:element name="concurrentWriteAttemptDelay" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="concurrentWriteAttempts" minOccurs="0" maxOccurs="1" type="xs:integer" />
</xs:choice> </xs:choice>
<xs:attribute name="name" type="xs:string"> <xs:attribute name="name" type="xs:string">
<xs:annotation> <xs:annotation>
@ -1228,6 +1247,11 @@
<xs:documentation>Value indicationg whether file creation calls should be synchronized by a system global mutex.</xs:documentation> <xs:documentation>Value indicationg whether file creation calls should be synchronized by a system global mutex.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="maxLogFilenames" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum number of log filenames that should be stored as existing.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="writeFooterOnArchivingOnly" type="xs:boolean"> <xs:attribute name="writeFooterOnArchivingOnly" type="xs:boolean">
<xs:annotation> <xs:annotation>
<xs:documentation>Indicates whether the footer should be written only when the file is archived.</xs:documentation> <xs:documentation>Indicates whether the footer should be written only when the file is archived.</xs:documentation>
@ -1253,11 +1277,6 @@
<xs:documentation>Indicates whether to create directories if they do not exist.</xs:documentation> <xs:documentation>Indicates whether to create directories if they do not exist.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="enableFileDelete" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to enable log file(s) to be deleted.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fileAttributes" type="NLog.Targets.Win32FileAttributes"> <xs:attribute name="fileAttributes" type="NLog.Targets.Win32FileAttributes">
<xs:annotation> <xs:annotation>
<xs:documentation>File attributes (Windows only).</xs:documentation> <xs:documentation>File attributes (Windows only).</xs:documentation>
@ -1273,6 +1292,16 @@
<xs:documentation>Indicates whether to replace file contents on each write instead of appending log message at the end.</xs:documentation> <xs:documentation>Indicates whether to replace file contents on each write instead of appending log message at the end.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="enableFileDelete" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to enable log file(s) to be deleted.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="concurrentWriteAttempts" type="xs:integer">
<xs:annotation>
<xs:documentation>Number of times the write is appended on the file before NLog discards the log message.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="concurrentWrites" type="xs:boolean"> <xs:attribute name="concurrentWrites" type="xs:boolean">
<xs:annotation> <xs:annotation>
<xs:documentation>Indicates whether concurrent writes to the log file by multiple processes on the same host.</xs:documentation> <xs:documentation>Indicates whether concurrent writes to the log file by multiple processes on the same host.</xs:documentation>
@ -1283,11 +1312,6 @@
<xs:documentation>Indicates whether to keep log file open instead of opening and closing it on each logging event.</xs:documentation> <xs:documentation>Indicates whether to keep log file open instead of opening and closing it on each logging event.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="maxLogFilenames" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum number of log filenames that should be stored as existing.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="networkWrites" type="xs:boolean"> <xs:attribute name="networkWrites" type="xs:boolean">
<xs:annotation> <xs:annotation>
<xs:documentation>Indicates whether concurrent writes to the log file by multiple processes on different network hosts.</xs:documentation> <xs:documentation>Indicates whether concurrent writes to the log file by multiple processes on different network hosts.</xs:documentation>
@ -1323,11 +1347,6 @@
<xs:documentation>Delay in milliseconds to wait before attempting to write to the file again.</xs:documentation> <xs:documentation>Delay in milliseconds to wait before attempting to write to the file again.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="concurrentWriteAttempts" type="xs:integer">
<xs:annotation>
<xs:documentation>Number of times the write is appended on the file before NLog discards the log message.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension> </xs:extension>
</xs:complexContent> </xs:complexContent>
</xs:complexType> </xs:complexType>
@ -1587,6 +1606,7 @@
<xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="layout" minOccurs="0" maxOccurs="1" type="Layout" /> <xs:element name="layout" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="parameterType" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="type" minOccurs="0" maxOccurs="1" type="xs:string" />
</xs:choice> </xs:choice>
<xs:attribute name="layout" type="SimpleLayoutAttribute"> <xs:attribute name="layout" type="SimpleLayoutAttribute">
@ -1599,11 +1619,16 @@
<xs:documentation>Name of the parameter.</xs:documentation> <xs:documentation>Name of the parameter.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="type" type="xs:string"> <xs:attribute name="parameterType" type="xs:string">
<xs:annotation> <xs:annotation>
<xs:documentation>Type of the parameter.</xs:documentation> <xs:documentation>Type of the parameter.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="type" type="xs:string">
<xs:annotation>
<xs:documentation>Type of the parameter. Obsolete alias for </xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType> </xs:complexType>
<xs:complexType name="Mail"> <xs:complexType name="Mail">
<xs:complexContent> <xs:complexContent>
@ -2020,13 +2045,14 @@
<xs:element name="address" minOccurs="0" maxOccurs="1" type="Layout" /> <xs:element name="address" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="maxQueueSize" minOccurs="0" maxOccurs="1" type="xs:integer" /> <xs:element name="maxQueueSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="parameter" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.NLogViewerParameterInfo" /> <xs:element name="parameter" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.NLogViewerParameterInfo" />
<xs:element name="includeMdc" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="includeNdc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeSourceInfo" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="includeSourceInfo" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeNLogData" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="includeNLogData" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeNdc" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="includeMdc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeCallSite" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="includeCallSite" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="appInfo" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="appInfo" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="ndcItemSeparator" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="ndcItemSeparator" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="includeMdlc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice> </xs:choice>
<xs:attribute name="name" type="xs:string"> <xs:attribute name="name" type="xs:string">
@ -2094,9 +2120,9 @@
<xs:documentation>Maximum queue size.</xs:documentation> <xs:documentation>Maximum queue size.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeMdc" type="xs:boolean"> <xs:attribute name="includeNdc" type="xs:boolean">
<xs:annotation> <xs:annotation>
<xs:documentation>Indicates whether to include dictionary contents.</xs:documentation> <xs:documentation>Indicates whether to include stack contents.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeSourceInfo" type="xs:boolean"> <xs:attribute name="includeSourceInfo" type="xs:boolean">
@ -2109,9 +2135,9 @@
<xs:documentation>Indicates whether to include NLog-specific extensions to log4j schema.</xs:documentation> <xs:documentation>Indicates whether to include NLog-specific extensions to log4j schema.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeNdc" type="xs:boolean"> <xs:attribute name="includeMdc" type="xs:boolean">
<xs:annotation> <xs:annotation>
<xs:documentation>Indicates whether to include stack contents.</xs:documentation> <xs:documentation>Indicates whether to include dictionary contents.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeCallSite" type="xs:boolean"> <xs:attribute name="includeCallSite" type="xs:boolean">
@ -2129,6 +2155,11 @@
<xs:documentation>NDC item separator.</xs:documentation> <xs:documentation>NDC item separator.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeMdlc" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to include dictionary contents.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="optimizeBufferReuse" type="xs:boolean"> <xs:attribute name="optimizeBufferReuse" type="xs:boolean">
<xs:annotation> <xs:annotation>
<xs:documentation>Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit</xs:documentation> <xs:documentation>Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit</xs:documentation>
@ -2487,8 +2518,10 @@
<xs:element name="encoding" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="encoding" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="escapeDataNLogLegacy" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="escapeDataNLogLegacy" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="escapeDataRfc3986" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="escapeDataRfc3986" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="header" minOccurs="0" maxOccurs="unbounded" type="NLog.Targets.MethodCallParameter" />
<xs:element name="methodName" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="methodName" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="namespace" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="namespace" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="preAuthenticate" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="protocol" minOccurs="0" maxOccurs="1" type="NLog.Targets.WebServiceProtocol" /> <xs:element name="protocol" minOccurs="0" maxOccurs="1" type="NLog.Targets.WebServiceProtocol" />
<xs:element name="url" minOccurs="0" maxOccurs="1" type="xs:anyURI" /> <xs:element name="url" minOccurs="0" maxOccurs="1" type="xs:anyURI" />
<xs:element name="xmlRoot" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="xmlRoot" minOccurs="0" maxOccurs="1" type="xs:string" />
@ -2534,6 +2567,11 @@
<xs:documentation>Web service namespace. Only used with Soap.</xs:documentation> <xs:documentation>Web service namespace. Only used with Soap.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="preAuthenticate" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="protocol" type="NLog.Targets.WebServiceProtocol"> <xs:attribute name="protocol" type="NLog.Targets.WebServiceProtocol">
<xs:annotation> <xs:annotation>
<xs:documentation>Protocol to be used when calling web service.</xs:documentation> <xs:documentation>Protocol to be used when calling web service.</xs:documentation>
@ -2677,8 +2715,10 @@
<xs:element name="attribute" minOccurs="0" maxOccurs="unbounded" type="NLog.Layouts.JsonAttribute" /> <xs:element name="attribute" minOccurs="0" maxOccurs="unbounded" type="NLog.Layouts.JsonAttribute" />
<xs:element name="excludeProperties" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="excludeProperties" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="includeAllProperties" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="includeAllProperties" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeMdc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="renderEmptyObject" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="renderEmptyObject" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="suppressSpaces" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="suppressSpaces" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeMdlc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice> </xs:choice>
<xs:attribute name="excludeProperties" type="xs:string"> <xs:attribute name="excludeProperties" type="xs:string">
<xs:annotation> <xs:annotation>
@ -2690,6 +2730,11 @@
<xs:documentation>Option to include all properties from the log events</xs:documentation> <xs:documentation>Option to include all properties from the log events</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeMdc" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to include contents of the dictionary.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="renderEmptyObject" type="xs:boolean"> <xs:attribute name="renderEmptyObject" type="xs:boolean">
<xs:annotation> <xs:annotation>
<xs:documentation>Option to render the empty object value {}</xs:documentation> <xs:documentation>Option to render the empty object value {}</xs:documentation>
@ -2700,12 +2745,18 @@
<xs:documentation>Option to suppress the extra spaces in the output json</xs:documentation> <xs:documentation>Option to suppress the extra spaces in the output json</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="includeMdlc" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to include contents of the dictionary.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension> </xs:extension>
</xs:complexContent> </xs:complexContent>
</xs:complexType> </xs:complexType>
<xs:complexType name="NLog.Layouts.JsonAttribute"> <xs:complexType name="NLog.Layouts.JsonAttribute">
<xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="encode" minOccurs="0" maxOccurs="1" type="xs:boolean" /> <xs:element name="encode" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="escapeUnicode" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="layout" minOccurs="0" maxOccurs="1" type="Layout" /> <xs:element name="layout" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" /> <xs:element name="name" minOccurs="0" maxOccurs="1" type="xs:string" />
</xs:choice> </xs:choice>
@ -2714,6 +2765,11 @@
<xs:documentation>Determines wether or not this attribute will be Json encoded.</xs:documentation> <xs:documentation>Determines wether or not this attribute will be Json encoded.</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="escapeUnicode" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to escape non-ascii characters</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute"> <xs:attribute name="layout" type="SimpleLayoutAttribute">
<xs:annotation> <xs:annotation>
<xs:documentation>Layout that will be rendered as the attribute's value.</xs:documentation> <xs:documentation>Layout that will be rendered as the attribute's value.</xs:documentation>
@ -2754,7 +2810,26 @@
<xs:complexType name="Log4JXmlEventLayout"> <xs:complexType name="Log4JXmlEventLayout">
<xs:complexContent> <xs:complexContent>
<xs:extension base="Layout"> <xs:extension base="Layout">
<xs:choice minOccurs="0" maxOccurs="unbounded" /> <xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="includeAllProperties" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeMdc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="includeMdlc" minOccurs="0" maxOccurs="1" type="xs:boolean" />
</xs:choice>
<xs:attribute name="includeAllProperties" type="xs:boolean">
<xs:annotation>
<xs:documentation>Option to include all properties from the log events</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeMdc" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to include contents of the dictionary.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="includeMdlc" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates whether to include contents of the dictionary.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension> </xs:extension>
</xs:complexContent> </xs:complexContent>
</xs:complexType> </xs:complexType>
@ -2929,6 +3004,74 @@
</xs:extension> </xs:extension>
</xs:complexContent> </xs:complexContent>
</xs:complexType> </xs:complexType>
<xs:complexType name="whenRepeated">
<xs:complexContent>
<xs:extension base="Filter">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="action" minOccurs="0" maxOccurs="1" type="FilterResult" />
<xs:element name="layout" minOccurs="0" maxOccurs="1" type="Layout" />
<xs:element name="defaultFilterCacheSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="filterCountMessageAppendFormat" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="filterCountPropertyName" minOccurs="0" maxOccurs="1" type="xs:string" />
<xs:element name="maxFilterCacheSize" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="maxLength" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="optimizeBufferDefaultLength" minOccurs="0" maxOccurs="1" type="xs:integer" />
<xs:element name="optimizeBufferReuse" minOccurs="0" maxOccurs="1" type="xs:boolean" />
<xs:element name="timeoutSeconds" minOccurs="0" maxOccurs="1" type="xs:integer" />
</xs:choice>
<xs:attribute name="action" type="FilterResult">
<xs:annotation>
<xs:documentation>Action to be taken when filter matches.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="layout" type="SimpleLayoutAttribute">
<xs:annotation>
<xs:documentation>Layout to be used to filter log messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="defaultFilterCacheSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Default number of unique filter values to expect, will automatically increase if needed</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="filterCountMessageAppendFormat" type="xs:string">
<xs:annotation>
<xs:documentation>Append FilterCount to the when an event is no longer filtered</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="filterCountPropertyName" type="xs:string">
<xs:annotation>
<xs:documentation>Insert FilterCount value into when an event is no longer filtered</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxFilterCacheSize" type="xs:integer">
<xs:annotation>
<xs:documentation>Max number of unique filter values to expect simultaneously</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxLength" type="xs:integer">
<xs:annotation>
<xs:documentation>Max length of filter values, will truncate if above limit</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="optimizeBufferDefaultLength" type="xs:integer">
<xs:annotation>
<xs:documentation>Default buffer size for the internal buffers</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="optimizeBufferReuse" type="xs:boolean">
<xs:annotation>
<xs:documentation>Reuse internal buffers, and doesn't have to constantly allocate new buffers</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="timeoutSeconds" type="xs:integer">
<xs:annotation>
<xs:documentation>How long before a filter expires, and logging is accepted again</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AccurateLocal"> <xs:complexType name="AccurateLocal">
<xs:complexContent> <xs:complexContent>
<xs:extension base="TimeSource"> <xs:extension base="TimeSource">

View File

@ -53,7 +53,7 @@ using System.Windows;
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.10.0.0")] [assembly: AssemblyVersion("1.11.0.0")]
[assembly: AssemblyFileVersion("1.10.0.0")] [assembly: AssemblyFileVersion("1.11.0.0")]
[assembly: AssemblyMetadata("SquirrelAwareVersion", "1")]
[assembly: InternalsVisibleTo("Artemis.Explorables")] [assembly: InternalsVisibleTo("Artemis.Explorables")]

View File

@ -26,7 +26,6 @@ using Artemis.Styles.DropTargetAdorners;
using Artemis.Utilities; using Artemis.Utilities;
using Artemis.Utilities.ActiveWindowDetection; using Artemis.Utilities.ActiveWindowDetection;
using Caliburn.Micro; using Caliburn.Micro;
using Castle.Components.DictionaryAdapter;
using GongSolutions.Wpf.DragDrop; using GongSolutions.Wpf.DragDrop;
using MahApps.Metro; using MahApps.Metro;
using MahApps.Metro.Controls; using MahApps.Metro.Controls;
@ -637,7 +636,7 @@ namespace Artemis.ViewModels
return SelectedProfile.GetRenderLayers(null, false, true); return SelectedProfile.GetRenderLayers(null, false, true);
if (SelectedLayer == null || !SelectedLayer.Enabled) if (SelectedLayer == null || !SelectedLayer.Enabled)
return new EditableList<LayerModel>(); return new List<LayerModel>();
if (SelectedLayer.LayerType is FolderType) if (SelectedLayer.LayerType is FolderType)
drawLayers = SelectedLayer.GetRenderLayers(null, false, true); drawLayers = SelectedLayer.GetRenderLayers(null, false, true);

View File

@ -3,7 +3,6 @@ using System.Linq;
using Artemis.Profiles.Layers.Models; using Artemis.Profiles.Layers.Models;
using Artemis.Utilities; using Artemis.Utilities;
using Caliburn.Micro; using Caliburn.Micro;
using Castle.Core.Internal;
namespace Artemis.ViewModels.Profiles namespace Artemis.ViewModels.Profiles
{ {
@ -219,7 +218,7 @@ namespace Artemis.ViewModels.Profiles
.DynamicProperties .DynamicProperties
.Where(p => p.LayerProperty != _property).ToList(); .Where(p => p.LayerProperty != _property).ToList();
if (!Proposed.GameProperty.IsNullOrEmpty()) if (!string.IsNullOrEmpty(Proposed.GameProperty))
proposedProperties.DynamicProperties.Add(Proposed); proposedProperties.DynamicProperties.Add(Proposed);
} }
} }

View File

@ -1,14 +1,13 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Betwixt" version="1.4.1" targetFramework="net461" /> <package id="Betwixt" version="1.4.1" targetFramework="net461" />
<package id="Caliburn.Micro" version="3.0.3" targetFramework="net461" /> <package id="Caliburn.Micro" version="3.1.0" targetFramework="net461" />
<package id="Caliburn.Micro.Core" version="3.0.3" targetFramework="net461" /> <package id="Caliburn.Micro.Core" version="3.1.0" targetFramework="net461" />
<package id="Castle.Core" version="4.0.0" targetFramework="net461" />
<package id="Colore" version="5.1.0" targetFramework="net461" /> <package id="Colore" version="5.1.0" targetFramework="net461" />
<package id="CSCore" version="1.2.0" targetFramework="net461" /> <package id="CSCore" version="1.2.1.1" targetFramework="net461" />
<package id="CUE.NET" version="1.1.3.0" targetFramework="net461" /> <package id="CUE.NET" version="1.1.3.1" targetFramework="net461" />
<package id="DeltaCompressionDotNet" version="1.1.0" targetFramework="net461" /> <package id="DeltaCompressionDotNet" version="1.1.0" targetFramework="net461" />
<package id="DynamicExpresso.Core" version="1.3.3.5" targetFramework="net461" /> <package id="DynamicExpresso.Core" version="1.3.3.6" targetFramework="net461" />
<package id="gong-wpf-dragdrop" version="0.1.4.3" targetFramework="net461" /> <package id="gong-wpf-dragdrop" version="0.1.4.3" targetFramework="net461" />
<package id="Hardcodet.NotifyIcon.Wpf" version="1.0.8" targetFramework="net452" /> <package id="Hardcodet.NotifyIcon.Wpf" version="1.0.8" targetFramework="net452" />
<package id="log4net" version="2.0.8" targetFramework="net461" /> <package id="log4net" version="2.0.8" targetFramework="net461" />
@ -17,19 +16,19 @@
<package id="Mono.Cecil" version="0.9.6.4" targetFramework="net461" /> <package id="Mono.Cecil" version="0.9.6.4" targetFramework="net461" />
<package id="MoonSharp" version="2.0.0.0" targetFramework="net461" /> <package id="MoonSharp" version="2.0.0.0" targetFramework="net461" />
<package id="MouseKeyHook" version="5.4.0" targetFramework="net461" /> <package id="MouseKeyHook" version="5.4.0" targetFramework="net461" />
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net461" />
<package id="Ninject" version="3.2.2.0" targetFramework="net452" /> <package id="Ninject" version="3.2.2.0" targetFramework="net452" />
<package id="Ninject.Extensions.Conventions" version="3.2.0.0" targetFramework="net461" /> <package id="Ninject.Extensions.Conventions" version="3.2.0.0" targetFramework="net461" />
<package id="Ninject.Extensions.Logging" version="3.2.3.0" targetFramework="net452" /> <package id="Ninject.Extensions.Logging" version="3.2.3.0" targetFramework="net452" />
<package id="Ninject.Extensions.Logging.nlog4" version="3.2.3.0" targetFramework="net452" /> <package id="Ninject.Extensions.Logging.nlog4" version="3.2.3.0" targetFramework="net452" />
<package id="NLog" version="4.4.4" targetFramework="net461" /> <package id="NLog" version="4.4.12" targetFramework="net461" />
<package id="NLog.Schema" version="4.4.4" targetFramework="net461" /> <package id="NLog.Schema" version="4.4.12" targetFramework="net461" />
<package id="Pcap.Net.x64" version="1.0.4.1" targetFramework="net461" /> <package id="Pcap.Net.x64" version="1.0.4.1" targetFramework="net461" />
<package id="Process.NET" version="1.0.8" targetFramework="net461" /> <package id="Process.NET" version="1.0.8" targetFramework="net461" />
<package id="SharpDX" version="3.1.1" targetFramework="net461" /> <package id="SharpDX" version="4.0.1" targetFramework="net461" />
<package id="SharpDX.Direct3D9" version="3.1.1" targetFramework="net461" /> <package id="SharpDX.Direct3D9" version="4.0.1" targetFramework="net461" />
<package id="Splat" version="2.0.0" targetFramework="net461" /> <package id="Splat" version="2.0.0" targetFramework="net461" />
<package id="SpotifyAPI-NET" version="2.13.1" targetFramework="net461" /> <package id="SpotifyAPI-NET" version="2.16.0" targetFramework="net461" />
<package id="squirrel.windows" version="1.4.4" targetFramework="net461" /> <package id="squirrel.windows" version="1.4.4" targetFramework="net461" />
<package id="WpfExceptionViewer" version="1.0.0.0" targetFramework="net452" /> <package id="WpfExceptionViewer" version="1.0.0.0" targetFramework="net452" />
</packages> </packages>

View File

@ -49,9 +49,8 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>True</Private>
</Reference> </Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net461" />
</packages> </packages>