Skip to content

Commit 6116342

Browse files
authored
Merge pull request #170 from litetex-oss/dev
Release
2 parents c40e26e + 2fc61e6 commit 6116342

File tree

11 files changed

+78
-81
lines changed

11 files changed

+78
-81
lines changed

.github/workflows/broken-links.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838

3939
- name: Create Issue From File
4040
if: steps.lychee.outputs.exit_code != 0
41-
uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd # v5
41+
uses: peter-evans/create-issue-from-file@fca9117c27cdc29c6c4db3b86c48e4115a786710 # v6
4242
with:
4343
issue-number: ${{ steps.find-issue.outputs.number }}
4444
title: Link Checker Report

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# 4.1.1
2+
* Update Cosmetica API #166
3+
* Improved mod compatibility
4+
15
# 4.1.0
26
* Updated to 1.21.9
37

build.gradle

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ plugins {
99
}
1010

1111
ext {
12-
checkstyleVersion = '11.1.0'
12+
checkstyleVersion = '12.0.0'
1313

1414
pmdVersion = '7.17.0'
1515

@@ -91,14 +91,13 @@ dependencies {
9191

9292
modCompileOnly "com.terraformersmc:modmenu:${project.modmenu_version}"
9393
modCompileOnly "maven.modrinth:skinshuffle:${project.skinshuffle_version}"
94-
modCompileOnly "maven.modrinth:cicada:${project.cicada_version}"
9594
modCompileOnly "maven.modrinth:minecraftcapes:${project.minecraftcapes_version}"
9695

9796
// Only needed during development
98-
// modLocalRuntime "com.terraformersmc:modmenu:${project.modmenu_version}"
97+
modLocalRuntime "com.terraformersmc:modmenu:${project.modmenu_version}"
9998
modLocalRuntime "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
10099
modLocalRuntime "me.djtheredstoner:DevAuth-fabric:1.2.1"
101-
// modLocalRuntime "maven.modrinth:no-chat-reports:Fabric-1.21.7-v2.14.0"
100+
modLocalRuntime "maven.modrinth:no-chat-reports:Fabric-1.21.10-v2.16.0"
102101
}
103102

104103
processResources {

gradle.properties

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Done to increase the memory available to gradle.
22
org.gradle.jvmargs=-Xmx2G
33
# Fabric Properties
4-
yarn_mappings=1.21.9+build.1
4+
yarn_mappings=1.21.10+build.2
55
loader_version=0.17.2
66
# Mod Properties
77
mod_version=4.1.1-SNAPSHOT
@@ -12,8 +12,7 @@ mod_desc=Use capes from various providers
1212
mod_license_spdx_id=LGPL-2.1-or-later
1313
mod_license_url=https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
1414
# Additional
15-
fabric_api_version=0.133.14+1.21.9
16-
modmenu_version=15.0.0
15+
fabric_api_version=0.135.0+1.21.10
16+
modmenu_version=16.0.0-rc.1
1717
skinshuffle_version=2.9.5+1.21.6
18-
cicada_version=0.14.2+1.21.6-and-above
19-
minecraftcapes_version=fabric-1.21.8-12.4.0
18+
minecraftcapes_version=fabric-1.21.10-12.4.0

src/main/java/net/litetex/capes/mixins/compat/cicada/CapeHandlerMixin.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/main/java/net/litetex/capes/mixins/compat/cicada/ConversationManagerMixin.java

Lines changed: 0 additions & 33 deletions
This file was deleted.

src/main/java/net/litetex/capes/provider/CosmeticaProvider.java

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
package net.litetex.capes.provider;
22

3+
import java.io.IOException;
4+
import java.net.http.HttpClient;
5+
import java.net.http.HttpRequest;
6+
import java.net.http.HttpResponse;
37
import java.util.List;
48

9+
import com.google.gson.Gson;
510
import com.mojang.authlib.GameProfile;
611

712
import net.litetex.capes.provider.antifeature.AntiFeature;
@@ -11,6 +16,8 @@
1116

1217
public class CosmeticaProvider implements CapeProvider
1318
{
19+
private static final String BASE64_PREFIX = "data:image/png;base64,";
20+
1421
@Override
1522
public String id()
1623
{
@@ -26,9 +33,50 @@ public String name()
2633
@Override
2734
public String getBaseUrl(final GameProfile profile)
2835
{
29-
return "https://api.cosmetica.cc/get/cloak?username=" + profile.name()
30-
+ "&uuid=" + profile.id().toString()
31-
+ "&nothirdparty";
36+
return "https://api.cosmetica.cc/v2/get/info"
37+
+ "?uuid=" + profile.id().toString()
38+
+ "&nothirdparty"
39+
+ "&excludemodels";
40+
}
41+
42+
@Override
43+
public ResolvedTextureInfo resolveTexture(
44+
final HttpClient.Builder clientBuilder,
45+
final HttpRequest.Builder requestBuilder,
46+
final GameProfile profile) throws IOException, InterruptedException
47+
{
48+
requestBuilder.setHeader("Accept", "application/json");
49+
50+
try(final HttpClient client = clientBuilder.build())
51+
{
52+
final HttpResponse<String> response =
53+
client.send(requestBuilder.GET().build(), HttpResponse.BodyHandlers.ofString());
54+
55+
if(response.statusCode() / 100 != 2)
56+
{
57+
return null;
58+
}
59+
60+
record CapeData(String image)
61+
{
62+
}
63+
record ResponseData(CapeData cape)
64+
{
65+
}
66+
67+
final ResponseData responseData = new Gson().fromJson(response.body(), ResponseData.class);
68+
if(responseData == null
69+
|| responseData.cape() == null
70+
|| responseData.cape().image() == null
71+
|| !responseData.cape().image().startsWith(BASE64_PREFIX))
72+
{
73+
return null;
74+
}
75+
76+
return new ResolvedTextureInfo.Base64TextureInfo(
77+
responseData.cape().image().substring(BASE64_PREFIX.length())
78+
);
79+
}
3280
}
3381

3482
@Override
@@ -53,7 +101,15 @@ public String homepageUrl()
53101
public List<AntiFeature> antiFeatures()
54102
{
55103
return List.of(
56-
AntiFeatures.ABANDONED // Last updated 2024-05
104+
AntiFeatures.ABANDONED, // Last updated 2024-05
105+
AntiFeatures.BAD_CONNECTION // Response can take up to 3s
57106
);
58107
}
108+
109+
@Override
110+
public double rateLimitedReqPerSec()
111+
{
112+
// has an underperforming backend
113+
return 10;
114+
}
59115
}

src/main/java/net/litetex/capes/provider/MinecraftCapesCapeProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ public ResolvedTextureInfo resolveTexture(
4343
final GameProfile profile) throws IOException, InterruptedException
4444
{
4545
requestBuilder
46-
.setHeader("User-Agent", "minecraftcapes-mod/" + SharedConstants.getGameVersion().name());
46+
.setHeader("User-Agent", "minecraftcapes-mod/" + SharedConstants.getGameVersion().name())
47+
.setHeader("Accept", "application/json");
4748

4849
try(final HttpClient client = clientBuilder.build())
4950
{

src/main/java/net/litetex/capes/provider/WynntilsProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public ResolvedTextureInfo resolveTexture(
4646

4747
final HttpRequest request = requestBuilder
4848
// Does UserAgent blocking: https://github.com/Wynntils/athena-backend/pull/36
49-
.header("User-Agent", "Wynntils Artemis\\3.2.9+MC-1.21.4 (client) FABRIC")
49+
.header("User-Agent", "Wynntils Artemis\\3.3.0+MC-1.21.4 (client) FABRIC")
5050
.header("Content-Type", "application/json")
5151
.POST(HttpRequest.BodyPublishers.ofString(body.toString()))
5252
.build();
@@ -101,7 +101,7 @@ public String homepageUrl()
101101
@Override
102102
public double rateLimitedReqPerSec()
103103
{
104-
// Wynntils has a very underperforming backend
104+
// has a very underperforming backend
105105
return 4;
106106
}
107107
}

src/main/resources/cape-provider.mixins.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
"CapeFeatureRendererMixin",
1111
"PlayerListEntryMixin",
1212
"SkinOptionsScreenMixin",
13-
"compat.cicada.CapeHandlerMixin",
14-
"compat.cicada.ConversationManagerMixin",
1513
"compat.minecraftcapes.DownloadManagerMixin",
1614
"compat.skinshuffle.CapesCompatMixin"
1715
],

0 commit comments

Comments
 (0)