Add Expedience.Models

main
ilitirit 3 years ago
parent e5a2cfd04c
commit 4e2b33e95f

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Expedience.Models
{
public class ClientInfo
{
public string GameVersion { get; set; }
public string GameLanguage { get; set; }
public string PluginVersion { get; set; }
}
}

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Expedience.Models
{
public class CompletionTimeInfo
{
public CompletionTimeInfo()
{
}
public CompletionTimeInfo(TimeSpan completionTime)
{
Hours = completionTime.Hours;
Minutes = completionTime.Minutes;
Seconds = completionTime.Seconds;
Milliseconds = completionTime.Milliseconds;
CompletionTimeText = completionTime.ToString(@"hh\:mm\:ss\.fff");
}
public int Hours { get; set; }
public int Minutes { get; set; }
public int Seconds { get; set; }
public int Milliseconds { get; set; }
public string CompletionTimeText { get; set; }
}
}

@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace Expedience.Models
{
public class CurrentDutyInfo
{
public CurrentDutyInfo(Stopwatch stopwatch)
{
_stopwatch = stopwatch;
StartTime = DateTime.UtcNow;
}
private Stopwatch _stopwatch;
public PlayerInfo Player { get; set; }
public int DutyId { get; set; }
public string PlaceName { get; set; }
public List<GroupMemberInfo> PartyMembers { get; set; } = new ();
public DateTime StartTime { get; }
public DateTime EndTime { get; private set; }
public bool IsUnrestricted { get; set; }
public bool HasNpcMembers { get; set; }
public bool HasEcho { get; set; }
public string DataCenter { get; set; }
public void EndDuty()
{
_stopwatch.Stop();
EndTime = DateTime.UtcNow;
}
public TimeSpan GetDuration()
{
return _stopwatch.Elapsed;
}
}
}

@ -0,0 +1,72 @@
using System;
using System.Collections.Generic;
using System.Linq;
namespace Expedience.Models
{
public class DutyCompletionResult
{
public DutyCompletionResult()
{
}
public DutyCompletionResult(CurrentDutyInfo currentDuty, ClientInfo clientInfo, UserInfo userInfo)
{
DutyInfo = new DutyInfo
{
DutyId = currentDuty.DutyId,
DutyName = currentDuty.PlaceName,
IsUnrestricted = currentDuty.IsUnrestricted,
IsNpcSupported = currentDuty.PartyMembers.Any(p => p.IsNpc),
HasEcho = currentDuty.HasEcho,
};
PlayerInfo = new PlayerInfo
{
ClassJob = currentDuty.Player.ClassJob,
Level = currentDuty.Player.Level,
};
GroupMembers = currentDuty.PartyMembers.Select(p => new GroupMemberInfo
{
ClassJob = p.ClassJob,
Level = p.Level,
GroupNumber = p.GroupNumber,
IsNpc = p.IsNpc,
IsPlayer = p.IsPlayer,
}).ToList();
ClientInfo = new ClientInfo
{
GameVersion = clientInfo.GameVersion,
GameLanguage = clientInfo.GameLanguage,
PluginVersion = clientInfo.PluginVersion,
};
UserInfo = new UserInfo
{
UserId = userInfo.UserId,
WorldId = userInfo.WorldId,
WorldName = userInfo.WorldName,
};
CompletionTimeInfo = new CompletionTimeInfo(currentDuty.GetDuration());
DutyStartDateUtc = currentDuty.StartTime;
DutyCompletionDateUtc = currentDuty.EndTime;
DataCenter = currentDuty.DataCenter;
}
public Guid UploadId { get; set; }
public DutyInfo DutyInfo { get; set; }
public CompletionTimeInfo CompletionTimeInfo { get; set; }
public PlayerInfo PlayerInfo { get; set; }
public List<GroupMemberInfo> GroupMembers { get; set; }
public DateTime DutyStartDateUtc { get; set; }
public DateTime DutyCompletionDateUtc { get; set; }
public ClientInfo ClientInfo { get; set; }
public UserInfo UserInfo{ get; set; }
public DateTime UploadDateUtc { get; set; }
public string DataCenter { get; set; }
}
}

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Expedience.Models
{
public class DutyInfo
{
public int DutyId { get; set; }
public string DutyName { get; set; }
public bool IsUnrestricted { get; set; }
public bool HasEcho { get; set; }
public bool IsNpcSupported { get; set; }
}
}

@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Expedience.Models
{
public class GroupMemberInfo
{
public string ClassJob { get; set; }
public bool IsNpc { get; set; }
public int Level { get; set; }
public int GroupNumber { get; set; }
public bool IsPlayer { get; set; }
}
}

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Expedience.Models
{
public class PlayerInfo
{
public string ClassJob { get; set; }
public uint Level { get; set; }
}
}

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Expedience.Models
{
public class UserInfo
{
public string UserId { get; set; }
public int WorldId { get; set; }
public string WorldName { get; set; }
}
}

@ -1,69 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Authors>MgAl2O4</Authors>
<Version>1.8.0.0</Version>
<Description>Pat counter</Description>
<Copyright>(c) 2023 MgAl2O4</Copyright>
<PackageProjectUrl>https://github.com/MgAl2O4/ExpedienceDalamud</PackageProjectUrl>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>net7.0-windows</TargetFramework>
<Platforms>x64</Platforms>
<LangVersion>9.0</LangVersion>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
<DalamudLibPath>$(appdata)\XIVLauncher\addon\Hooks\dev\</DalamudLibPath>
</PropertyGroup>
<ItemGroup>
<None Remove="assets\fan-kit-lala.png" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="assets\fan-kit-lala.png" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="DalamudPackager" Version="2.1.11" />
<Reference Include="Dalamud">
<HintPath>$(DalamudLibPath)Dalamud.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="ImGui.NET">
<HintPath>$(DalamudLibPath)ImGui.NET.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="ImGuiScene">
<HintPath>$(DalamudLibPath)ImGuiScene.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="FFXIVClientStructs">
<HintPath>$(DalamudLibPath)FFXIVClientStructs.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Lumina">
<HintPath>$(DalamudLibPath)Lumina.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Lumina.Excel">
<HintPath>$(DalamudLibPath)Lumina.Excel.dll</HintPath>
<Private>false</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<None Update="Expedience.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<Target Name="CopyAssets" BeforeTargets="Build">
<Copy SourceFiles="$(ProjectDir)\assets\icon.png" DestinationFolder="$(OutDir)\images" />
</Target>
</Project>

@ -1,11 +0,0 @@
{
"Author": "ilitirit",
"Name": "Expedience",
"Punchline": "Ahahaha worthless buff",
"Description": "Records and uploads Duty Completion times",
"InternalName": "Expedience",
"ApplicableVersion": "any",
"Tags": [ "speed", "duty" ],
"CategoryTags": [ "social" ],
"DalamudApiLevel": 8
}

@ -1,13 +0,0 @@
{
"version": 1,
"dependencies": {
"net7.0-windows7.0": {
"DalamudPackager": {
"type": "Direct",
"requested": "[2.1.11, )",
"resolved": "2.1.11",
"contentHash": "9qlAWoRRTiL/geAvuwR/g6Bcbrd/bJJgVnB/RurBiyKs6srsP0bvpoo8IK+Eg8EA6jWeM6/YJWs66w4FIAzqPw=="
}
}
}
}
Loading…
Cancel
Save