diff --git a/src/Modrinth.Net/Endpoints/Team/ITeamEndpoint.cs b/src/Modrinth.Net/Endpoints/Team/ITeamEndpoint.cs index 3059fbb..cebadef 100644 --- a/src/Modrinth.Net/Endpoints/Team/ITeamEndpoint.cs +++ b/src/Modrinth.Net/Endpoints/Team/ITeamEndpoint.cs @@ -93,5 +93,5 @@ public interface ITeamEndpoint /// /// Thrown when the API returns an error or the request fails Task ModifyMemberAsync(string teamId, string userId, string role, Permissions permissions, int payoutsSplit, - int ordering, CancellationToken cancellationToken = default); + long ordering, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/src/Modrinth.Net/Endpoints/Team/TeamEndpoint.cs b/src/Modrinth.Net/Endpoints/Team/TeamEndpoint.cs index 61992cb..8c98970 100644 --- a/src/Modrinth.Net/Endpoints/Team/TeamEndpoint.cs +++ b/src/Modrinth.Net/Endpoints/Team/TeamEndpoint.cs @@ -119,7 +119,7 @@ public async Task TransferOwnershipAsync(string teamId, string userId, /// public async Task ModifyMemberAsync(string teamId, string userId, string role, Permissions permissions, int payoutsSplit, - int ordering, CancellationToken cancellationToken = default) + long ordering, CancellationToken cancellationToken = default) { using var reqMsg = new HttpRequestMessage(); reqMsg.Method = HttpMethod.Patch; diff --git a/src/Modrinth.Net/Models/TeamMember.cs b/src/Modrinth.Net/Models/TeamMember.cs index 645e2e2..f7b6dc1 100644 --- a/src/Modrinth.Net/Models/TeamMember.cs +++ b/src/Modrinth.Net/Models/TeamMember.cs @@ -50,5 +50,5 @@ public class TeamMember /// /// The order of the team member. /// - public int? Ordering { get; set; } + public long? Ordering { get; set; } } \ No newline at end of file diff --git a/test/Modrinth.Net.Test/RequesterTests.cs b/test/Modrinth.Net.Test/RequesterTests.cs index f52ff63..a4719a3 100644 --- a/test/Modrinth.Net.Test/RequesterTests.cs +++ b/test/Modrinth.Net.Test/RequesterTests.cs @@ -215,4 +215,30 @@ public async Task GetJsonAsync_GalleryOrderingHugeInt64_DeserializesSuccessfully Assert.That(galleries[0].Ordering, Is.EqualTo(expectedOrdering)); } + + [Test] + public async Task GetJsonAsync_TeamMemberOrderingAboveInt32Max_DeserializesSuccessfully() + { + const long expectedOrdering = 6844313514; + var json = + "[{\"team_id\":\"team_1\",\"user\":{\"username\":\"user\",\"name\":\"User\",\"id\":\"u1\",\"github_id\":null,\"avatar_url\":\"https://example.com/avatar.png\",\"bio\":\"\",\"created\":\"2026-01-01T00:00:00Z\",\"role\":\"developer\"},\"role\":\"Owner\",\"permissions\":null,\"accepted\":true,\"payouts_split\":null,\"ordering\":" + + expectedOrdering + "}]"; + + var handler = new DelegateMessageHandler((_, _) => + Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK) + { + Content = new StringContent(json, Encoding.UTF8, "application/json") + })); + + using var requester = CreateRequester(handler); + var request = new HttpRequestMessage(HttpMethod.Get, "http://test.com"); + + var teamMembers = await requester.GetJsonAsync(request); + + using (Assert.EnterMultipleScope()) + { + Assert.That(teamMembers, Has.Length.EqualTo(1)); + Assert.That(teamMembers[0].Ordering, Is.EqualTo(expectedOrdering)); + } + } } \ No newline at end of file