MR App 0.9.5 - Big bugfix update (#3585)

* Add launcher_feature_version to Profile

* Misc fixes

- Add typing to theme and settings stuff
- Push instance route on creation from installing a modpack
- Fixed servers not reloading properly when first added

* Make old instances scan the logs folder for joined servers on launcher startup

* Create AttachedWorldData

* Change AttachedWorldData interface

* Rename WorldType::World to WorldType::Singleplayer

* Implement world display status system

* Fix Minecraft font

* Fix set_world_display_status Tauri error

* Add 'Play instance' option

* Add option to disable worlds showing in Home

* Fixes

- Fix available server filter only showing if there are some available
- Fixed server and singleplayer filters sometimes showing when there are only servers or singleplayer worlds
- Fixed new worlds not being automatically added when detected
- Rephrased Jump back into worlds option description

* Fixed sometimes more than 6 items showing up in Jump back in

* Fix servers.dat issue with instances you haven't played before

* Fix too large of bulk requests being made, limit max to 800 #3430

* Add hiding from home page, add types to Mods.vue

* Make recent worlds go into grid when display is huge

* Fix lint

* Remove redundant media query

* Fix protocol version on home page, and home page being blocked by pinging servers

* Clippy fix

* More Clippy fixes

* Fix Prettier lints

* Undo `from_string` changes

---------

Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Co-authored-by: Alejandro González <me@alegon.dev>
This commit is contained in:
Prospector
2025-05-01 16:13:13 -07:00
committed by GitHub
parent 4a2605bc1e
commit 3dad6b317f
123 changed files with 1622 additions and 744 deletions

View File

@@ -71,7 +71,7 @@ impl ApiV2 {
};
let req = test::TestRequest::get()
.uri(&format!("/v2/search?{}{}", query_field, facets_field))
.uri(&format!("/v2/search?{query_field}{facets_field}"))
.append_pat(pat)
.to_request();
let resp = self.call(req).await;
@@ -99,7 +99,7 @@ impl ApiProject for ApiV2 {
// Approve as a moderator.
let req = TestRequest::patch()
.uri(&format!("/v2/project/{}", slug))
.uri(&format!("/v2/project/{slug}"))
.append_pat(MOD_USER_PAT)
.set_json(json!(
{
@@ -114,7 +114,7 @@ impl ApiProject for ApiV2 {
// Get project's versions
let req = TestRequest::get()
.uri(&format!("/v2/project/{}/version", slug))
.uri(&format!("/v2/project/{slug}/version"))
.append_pat(pat)
.to_request();
let resp = self.call(req).await;
@@ -217,7 +217,7 @@ impl ApiProject for ApiV2 {
pat: Option<&str>,
) -> ServiceResponse {
let req = test::TestRequest::get()
.uri(&format!("/v2/user/{}/projects", user_id_or_username))
.uri(&format!("/v2/user/{user_id_or_username}/projects"))
.append_pat(pat)
.to_request();
self.call(req).await
@@ -260,7 +260,7 @@ impl ApiProject for ApiV2 {
) -> ServiceResponse {
let projects_str = ids_or_slugs
.iter()
.map(|s| format!("\"{}\"", s))
.map(|s| format!("\"{s}\""))
.collect::<Vec<_>>()
.join(",");
let req = test::TestRequest::patch()
@@ -490,13 +490,13 @@ impl ApiProject for ApiV2 {
featured = featured
);
if let Some(title) = title {
url.push_str(&format!("&title={}", title));
url.push_str(&format!("&title={title}"));
}
if let Some(description) = description {
url.push_str(&format!("&description={}", description));
url.push_str(&format!("&description={description}"));
}
if let Some(ordering) = ordering {
url.push_str(&format!("&ordering={}", ordering));
url.push_str(&format!("&ordering={ordering}"));
}
let req = test::TestRequest::post()
@@ -542,10 +542,7 @@ impl ApiProject for ApiV2 {
pat: Option<&str>,
) -> ServiceResponse {
let req = test::TestRequest::delete()
.uri(&format!(
"/v2/project/{id_or_slug}/gallery?url={url}",
url = url
))
.uri(&format!("/v2/project/{id_or_slug}/gallery?url={url}"))
.append_pat(pat)
.to_request();

View File

@@ -11,7 +11,7 @@ impl ApiUser for ApiV2 {
pat: Option<&str>,
) -> ServiceResponse {
let req = test::TestRequest::get()
.uri(&format!("/v2/user/{}", user_id_or_username))
.uri(&format!("/v2/user/{user_id_or_username}"))
.append_pat(pat)
.to_request();
self.call(req).await
@@ -32,7 +32,7 @@ impl ApiUser for ApiV2 {
pat: Option<&str>,
) -> ServiceResponse {
let req = test::TestRequest::patch()
.uri(&format!("/v2/user/{}", user_id_or_username))
.uri(&format!("/v2/user/{user_id_or_username}"))
.append_pat(pat)
.set_json(patch)
.to_request();
@@ -46,7 +46,7 @@ impl ApiUser for ApiV2 {
pat: Option<&str>,
) -> ServiceResponse {
let req = test::TestRequest::delete()
.uri(&format!("/v2/user/{}", user_id_or_username))
.uri(&format!("/v2/user/{user_id_or_username}"))
.append_pat(pat)
.to_request();

View File

@@ -399,18 +399,18 @@ impl ApiVersion for ApiV2 {
));
}
if let Some(featured) = featured {
query_string.push_str(&format!("&featured={}", featured));
query_string.push_str(&format!("&featured={featured}"));
}
if let Some(version_type) = version_type {
query_string.push_str(&format!("&version_type={}", version_type));
query_string.push_str(&format!("&version_type={version_type}"));
}
if let Some(limit) = limit {
let limit = limit.to_string();
query_string.push_str(&format!("&limit={}", limit));
query_string.push_str(&format!("&limit={limit}"));
}
if let Some(offset) = offset {
let offset = offset.to_string();
query_string.push_str(&format!("&offset={}", offset));
query_string.push_str(&format!("&offset={offset}"));
}
let req = test::TestRequest::get()
@@ -480,7 +480,7 @@ impl ApiVersion for ApiV2 {
) -> ServiceResponse {
let ids = url_encode_json_serialized_vec(&version_ids);
let request = test::TestRequest::get()
.uri(&format!("/v2/versions?ids={}", ids))
.uri(&format!("/v2/versions?ids={ids}"))
.append_pat(pat)
.to_request();
self.call(request).await