* Remove new-projects channel emojis
With new loaders, this functionality has become unwieldy. We don't have enough emoji slots in the server for the number of emojis we'd need for the loaders. It is easiest to simply format them in the same way knossos does.
Note: I forgor how the borrow checker works, this compiles but I'm sure it's gore to anyone who actually knows the difference between a string slice and a String, I come from Javaland though so pls forgive
* Rename func accordingly
* Create base shared instance migration and initial routes
* Fix build
* Add version uploads
* Add permissions field for shared instance users
* Actually use permissions field
* Add "public" flag to shared instances that allow GETing them without authorization
* Add the ability to get and list shared instance versions
* Add the ability to delete shared instance versions
* Fix build after merge
* Secured file hosting (#3784)
* Remove Backblaze-specific file-hosting backend
* Added S3_USES_PATH_STYLE_BUCKETS
* Remove unused file_id parameter from delete_file_version
* Add support for separate public and private buckets in labrinth::file_hosting
* Rename delete_file_version to delete_file
* Add (untested) get_url_for_private_file
* Remove url field from shared instance routes
* Remove url field from shared instance routes
* Use private bucket for shared instance versions
* Make S3 environment variables fully separate between public and private buckets
* Change file host expiry for shared instances to 180 seconds
* Fix lint
* Merge shared instance migrations into a single migration
* Replace shared instance owners with Ghost instead of deleting the instance
* fix(labrinth): return version artifact size exceeded error eagerly
Now we don't wait until the result memory buffer has grown to a size
greater than the maximum allowed, and instead we return such an error
before the buffer is grown with the current chunk, which should reduce
memory usage.
* fix(labrinth): proper supported game versions range for datapacks
* feat(labrinth): allow protected resource and data packs to pass validation
* chore(clippy): enable and fix many stricter lints
These ensure that the codebase uses more idiomatic, performant, and
concise language constructions.
* chore: make non-Clippy compiler warnings also deny by default
* Put all ID types in the labrinth::models::ids, and reduce code duplication with them
* Rewrite labrinth::database::models::ids and rename most DB interface ID structs to be prefixed with DB
* Run sqlx prepare
---------
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
* chore: undo unintended updater `zip` feature drop, tweak comment
* fix: correct unintended regression on version and project validation
This was caused by a mistake when coalescing mostly copied and pasted
`RE_URL_SAFE` regexes into one.
* chore: inherit dependencies from workspace, optimize some deps out
* Update bitflags from 2.9.0 to 2.9.1
* Fix temp directory leak in check_java_at_filepath
* Fix build
* Fix lint
* chore(app-lib): refactor overkill `futures` executor usage to Tokio MPSC
* chore: fix Clippy lint
* tweak: optimize out dependency on OpenSSL source build
Contrary to what I expected before, this was caused due to the Tauri
updater plugin using a different TLS stack than everything else.
* chore(labrinth): drop now unused dependency
* Update zip because 2.6.1 got yanked
* Downgrade weezl to 0.1.8
* Mention that p256 is also a blocker for rand 0.9
* chore: sidestep GitHub review requirements
* chore: sidestep GitHub review requirements (2)
* chore: sidestep GitHub review requirements (3)
---------
Co-authored-by: Josiah Glosson <soujournme@gmail.com>
* Update some Labrinth dependencies
* Update some Labrinth dependencies
* Update some Labrinth dependencies
* Update zip in Labrinth
* Update itertools in Labrinth
* Update validator in labrinth
* Update thiserror in labrinth
* Update rust_decimal, redis, and deadpool-redis in labrinth
* Update totp-rs and spdx in labrinth
* Update maxminddb and tar in labrinth
* Update sentry and sentry-actix in labrinth
* Update image in labrinth
* Update lettre in labrinth
* Update derive-new and rust_iso3166 in labrinth
* Update async-stripe and json-patch in labrinth
* Update clap and iana-time-zone in labrinth
* Update labrinth to Rust 2024
* Cargo fmt
* Just do a full cargo update
* Update daedelus to Rust 2024
* Update daedelus_client to Rust 2024
* Set the formatting edition to 2024
* Fix formatting
IntelliJ messed up my formatting
* 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>
* Fix not being able to connect to local friends socket
* Start basic work on tunneling protocol and move some code into a common crate
* Commonize message serialization logic
* Serialize Base62Ids as u64 when human-readability is not required
* Move ActiveSockets tuple into struct
* Make CI run when rust-common is updated
CI is currently broken for labrinth, however
* Fix theseus-release.yml to reference itself correctly
* Implement Labrinth side of tunneling
* Implement non-friend part of theseus tunneling
* Implement client-side except for socket loop
* Implement the socket loop
Doesn't work though. Debugging time!
* Fix config.rs
* Fix deadlock in labrinth socket handling
* Update dockerfile
* switch to workspace prepare at root level
* Wait for connection before tunneling in playground
* Move rust-common into labrinth
* Remove rust-common references from Actions
* Revert "Update dockerfile"
This reverts commit 3caad59bb474ce425d0b8928d7cee7ae1a5011bd.
* Fix Docker build
* Rebuild Theseus if common code changes
* Allow multiple connections from the same user
* Fix test building
* Move FriendSocketListening and FriendSocketStoppedListening to non-panicking TODO for now
* Make message_serialization macro take varargs for binary messages
* Improve syntax of message_serialization macro
* Remove the ability to connect to a virtual socket, and disable the ability to listen on one
* Allow the app to compile without running labrinth
* Clippy fix
* Update Rust and Clippy fix again
---------
Co-authored-by: Jai A <jaiagr+gpg@pm.me>