Compare commits
16 Commits
1b71cda403
...
0.2.1
Author | SHA1 | Date | |
---|---|---|---|
6d5ed42e60 | |||
778d30ae26 | |||
d2212da456
|
|||
a3dfe35df6
|
|||
da6623741c
|
|||
abea8f0856
|
|||
1624a84cf1 | |||
ba852831aa
|
|||
5de9ad3a54
|
|||
4c8ce23e8a
|
|||
2be5f5d320
|
|||
c428f306ca
|
|||
3dde713c91
|
|||
3280446c7e
|
|||
a408e22a68 | |||
abc361faf0
|
52
.gitea/workflows/build.yml
Normal file
52
.gitea/workflows/build.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
name: .NET Build and Publish to Gitea
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: '*'
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: dotnet
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
|
||||
- name: Download Dalamud
|
||||
run: |
|
||||
mkdir -p $HOME/.xlcore/dalamud/Hooks/dev/
|
||||
curl -L https://goatcorp.github.io/dalamud-distrib/stg/latest.zip -o latest.zip
|
||||
unzip -o latest.zip -d $HOME/.xlcore/dalamud/Hooks/dev/
|
||||
|
||||
- name: Build project
|
||||
run: dotnet build --no-restore --configuration Release --nologo
|
||||
|
||||
- name: Publish Windows executable
|
||||
run: dotnet publish -c Release -r win-x64 --self-contained true -o ./publish
|
||||
|
||||
- name: Archive published files
|
||||
run: zip -r SnowcloakClient.zip ./publish/*
|
||||
|
||||
- name: Create Gitea release
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.BUILD_SNOWCLOAK_CLIENT }}
|
||||
run: |
|
||||
API_URL="https://git.snowcloak-sync.com/api/v1/repos/Eauldane/SnowcloakClient/releases"
|
||||
TAG="v$(date +%Y%m%d%H%M)"
|
||||
# Create release
|
||||
RELEASE_ID=$(curl -s -X POST \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: token $GITEA_TOKEN" \
|
||||
-d "{\"tag_name\":\"$TAG\",\"name\":\"Automated Build $TAG\",\"body\":\"Automated build artifact\"}" \
|
||||
$API_URL | jq -r '.id')
|
||||
echo "Release ID: $RELEASE_ID"
|
||||
# Upload asset
|
||||
curl -s -X POST \
|
||||
-H "Authorization: token $GITEA_TOKEN" \
|
||||
-F "name=SnowcloakClient.zip" \
|
||||
-F "attachment=@SnowcloakClient.zip" \
|
||||
"$API_URL/$RELEASE_ID/assets"
|
@@ -27,9 +27,9 @@ public sealed class IpcCallerMoodles : IIpcCaller
|
||||
|
||||
_moodlesApiVersion = pi.GetIpcSubscriber<int>("Moodles.Version");
|
||||
_moodlesOnChange = pi.GetIpcSubscriber<IPlayerCharacter, object>("Moodles.StatusManagerModified");
|
||||
_moodlesGetStatus = pi.GetIpcSubscriber<nint, string>("Moodles.GetStatusManagerByPtr");
|
||||
_moodlesSetStatus = pi.GetIpcSubscriber<nint, string, object>("Moodles.SetStatusManagerByPtr");
|
||||
_moodlesRevertStatus = pi.GetIpcSubscriber<nint, object>("Moodles.ClearStatusManagerByPtr");
|
||||
_moodlesGetStatus = pi.GetIpcSubscriber<nint, string>("Moodles.GetStatusManagerByPtrV2");
|
||||
_moodlesSetStatus = pi.GetIpcSubscriber<nint, string, object>("Moodles.SetStatusManagerByPtrV2");
|
||||
_moodlesRevertStatus = pi.GetIpcSubscriber<nint, object>("Moodles.ClearStatusManagerByPtrV2");
|
||||
|
||||
_moodlesOnChange.Subscribe(OnMoodlesChange);
|
||||
|
||||
@@ -47,7 +47,7 @@ public sealed class IpcCallerMoodles : IIpcCaller
|
||||
{
|
||||
try
|
||||
{
|
||||
APIAvailable = _moodlesApiVersion.InvokeFunc() == 1;
|
||||
APIAvailable = _moodlesApiVersion.InvokeFunc() == 3;
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<Project Sdk="Dalamud.NET.Sdk/13.0.0">
|
||||
<PropertyGroup>
|
||||
<AssemblyName>Snowcloak</AssemblyName>
|
||||
<Version>0.2.0.3</Version>
|
||||
<Version>0.2.1</Version>
|
||||
<PackageProjectUrl>https://github.com/Eauldane/SnowcloakClient/</PackageProjectUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@@ -20,7 +20,7 @@ public class PngHdr
|
||||
|
||||
stream.ReadExactly(buffer[..8]);
|
||||
|
||||
uint ihdrLength = BitConverter.ToUInt32(buffer);
|
||||
uint ihdrLength = ReadBigEndianUInt32(buffer[..4]);
|
||||
|
||||
// The next four bytes will be the length of the IHDR section (it should be 13 bytes but we only need 8)
|
||||
if (ihdrLength < 8)
|
||||
@@ -32,8 +32,8 @@ public class PngHdr
|
||||
|
||||
stream.ReadExactly(buffer[..8]);
|
||||
|
||||
uint width = BitConverter.ToUInt32(buffer);
|
||||
uint height = BitConverter.ToUInt32(buffer[4..]);
|
||||
uint width = ReadBigEndianUInt32(buffer[..4]);
|
||||
uint height = ReadBigEndianUInt32(buffer[4..8]);
|
||||
|
||||
// Validate the width/height are non-negative and... that's all we care about!
|
||||
if (width > int.MaxValue || height > int.MaxValue)
|
||||
@@ -46,4 +46,12 @@ public class PngHdr
|
||||
return InvalidSize;
|
||||
}
|
||||
}
|
||||
// Minimal helper for big-endian conversion
|
||||
private static uint ReadBigEndianUInt32(ReadOnlySpan<byte> bytes)
|
||||
{
|
||||
return ((uint)bytes[0] << 24) |
|
||||
((uint)bytes[1] << 16) |
|
||||
((uint)bytes[2] << 8) |
|
||||
bytes[3];
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user