Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Minecraft Stats is a web platform that allows users to visualize the evolution o

* **Precision Tracking:** High-performance, ultra-smooth player count charts using [uPlot](https://github.com/leeoniya/uPlot).
* **Custom Alerts:** Configure personalized notifications (e.g., when a server goes offline or player counts exceed/drop below a threshold).
* **Lunar & LabyMod Integration:** Automatically detects and displays **Lunar Client** and **LabyMod** servers, including their custom backgrounds, icons, and specific manifest information directly on the server details page.
* **Lunar & LabyClient Integration:** Automatically detects and displays **Lunar Client** and **LabyClient** servers, including their custom backgrounds, icons, and specific manifest information directly on the server details page.
* **MOTD Preview:** Full support for rendering Minecraft Server MOTDs with their original colors and formatting.

## 🚀 Tech Stack
Expand Down
4 changes: 2 additions & 2 deletions backend/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion backend/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ members = ["worker", "rest-api"]

[workspace.dependencies]
repository = { path = "./crates/repository" }
minecraft-pinger = "0.1.6"
minecraft-pinger = "0.1.8"

log = "0.4.*"
env_logger = "0.11.*"
Expand Down
4 changes: 2 additions & 2 deletions backend/worker/src/tasks/mojang_checker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ pub async fn mojang_checker_worker(repository: impl Repository + Clone) {
.build()
.unwrap();

let mut consecutive_failures = 0;
let mut consecutive_failures: u32 = 0;
loop {
let count_time = Instant::now();

Expand Down Expand Up @@ -88,7 +88,7 @@ pub async fn mojang_checker_worker(repository: impl Repository + Clone) {
consecutive_failures = 0;
}

let is_confirmed_down = consecutive_failures >= REQUIRED_FAILURES;
let is_confirmed_down = consecutive_failures >= u32::from(REQUIRED_FAILURES);

match repository.get_mojang_api_status().await {
Ok(db_is_down) => {
Expand Down
2 changes: 1 addition & 1 deletion frontend/app/core/lib/theme-colors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ export function lunarLogoClass(partnered: boolean | undefined): string {
return partnered ? BRAND_COLORS.lunarPartnered : BRAND_COLORS.lunarDefault;
}

/** Reusable class pair for the LabyMod logo across cards/search/tags. */
/** Reusable class pair for the LabyClient logo across cards/search/tags. */
export function labyLogoClass(partnered: boolean | undefined): string {
return partnered ? BRAND_COLORS.labyPartnered : "text-foreground";
}
15 changes: 9 additions & 6 deletions frontend/app/locales/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,12 @@
"launcher": "Launcher",
"allLaunchers": "Alle Launcher",
"lunar": "Lunar Client",
"labymod": "LabyMod",
"labymod": "LabyClient",
"filterSort": "Filtern & Sortieren",
"reset": "Zurücksetzen",
"sortAscTitle": "Aufsteigende Reihenfolge",
"sortDescTitle": "Absteigende Reihenfolge"
"sortDescTitle": "Absteigende Reihenfolge",
"laby": "LabyClient"
}
},
"hero": {
Expand Down Expand Up @@ -144,14 +145,14 @@
"offlineMotdNotice": "Dieser Server ist derzeit offline, der zuletzt gespeicherte Status wird angezeigt",
"sidebar": {
"socials": "Soziale Netzwerke",
"labyEmpty": "Dieser Server ist bei LabyMod registriert, hat aber seine Informationen noch nicht ausgefüllt.",
"labyEmpty": "Dieser Server ist bei LabyClient registriert, hat aber seine Informationen noch nicht ausgefüllt.",
"lunarEmpty": "Dieser Server ist bei Lunar Client registriert, hat aber seine Informationen noch nicht ausgefüllt.",
"labyPartner": "Offizieller LabyMod-Partner",
"labyPartner": "Offizieller LabyClient-Partner",
"lunarPartner": "Offizieller Lunar-Partner",
"playerStats": "Spieler-Statistiken",
"searchPlayer": "Suche nach einem Spieler...",
"gamemodes": "Spielmodi",
"labymodInfo": "LabyMod-Info",
"labymodInfo": "LabyClient-Info",
"lunarInfo": "Lunar Client-Info",
"website": "Webseite",
"web": "Webseite",
Expand All @@ -160,7 +161,9 @@
"minecraftVersions": "Minecraft-Versionen",
"trailer": "Trailer-Video",
"showMore": "Zeige {count} mehr",
"showLess": "Weniger anzeigen"
"showLess": "Weniger anzeigen",
"labyInfo": "LabyClient-Info",
"labyServerList": "LabyClient-Serverliste"
}
},
"comparison": {
Expand Down
15 changes: 9 additions & 6 deletions frontend/app/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,12 @@
"launcher": "Launcher",
"allLaunchers": "All Launchers",
"lunar": "Lunar Client",
"labymod": "LabyMod",
"labymod": "LabyClient",
"filterSort": "Filter & Sort",
"reset": "Reset",
"sortAscTitle": "Ascending order",
"sortDescTitle": "Descending order"
"sortDescTitle": "Descending order",
"laby": "LabyClient"
}
},
"hero": {
Expand Down Expand Up @@ -144,14 +145,14 @@
"offlineMotdNotice": "This server is currently offline, showing the last saved status",
"sidebar": {
"socials": "Social Networks",
"labyEmpty": "This server is registered on LabyMod but hasn't filled in its information yet.",
"labyEmpty": "This server is registered on LabyClient but hasn't filled in its information yet.",
"lunarEmpty": "This server is registered on Lunar Client but hasn't filled in its information yet.",
"labyPartner": "Official LabyMod Partner",
"labyPartner": "Official LabyClient Partner",
"lunarPartner": "Official Lunar Partner",
"playerStats": "Player Statistics",
"searchPlayer": "Search for a player...",
"gamemodes": "Gamemodes",
"labymodInfo": "LabyMod Info",
"labymodInfo": "LabyClient Info",
"lunarInfo": "Lunar Client Info",
"website": "Website",
"web": "Website",
Expand All @@ -160,7 +161,9 @@
"minecraftVersions": "Minecraft Versions",
"trailer": "Trailer Video",
"showMore": "Show {count} more",
"showLess": "Show less"
"showLess": "Show less",
"labyInfo": "LabyClient Info",
"labyServerList": "LabyClient Server List"
}
},
"comparison": {
Expand Down
15 changes: 9 additions & 6 deletions frontend/app/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,12 @@
"launcher": "Lanzador",
"allLaunchers": "Todos los lanzadores",
"lunar": "Lunar Client",
"labymod": "LabyMod",
"labymod": "LabyClient",
"filterSort": "Filtrar y Ordenar",
"reset": "Restablecer",
"sortAscTitle": "Orden ascendente",
"sortDescTitle": "Orden descendente"
"sortDescTitle": "Orden descendente",
"laby": "LabyClient"
}
},
"hero": {
Expand Down Expand Up @@ -144,14 +145,14 @@
"offlineMotdNotice": "Este servidor está fuera de línea, se muestra el último estado registrado",
"sidebar": {
"socials": "Redes sociales",
"labyEmpty": "Este servidor está registrado en LabyMod pero aún no ha completado su información.",
"labyEmpty": "Este servidor está registrado en LabyClient pero aún no ha completado su información.",
"lunarEmpty": "Este servidor está registrado en Lunar Client pero aún no ha completado su información.",
"labyPartner": "Socio oficial de LabyMod",
"labyPartner": "Socio oficial de LabyClient",
"lunarPartner": "Socio oficial de Lunar",
"playerStats": "Estadísticas de jugadores",
"searchPlayer": "Buscar un jugador...",
"gamemodes": "Modos de juego",
"labymodInfo": "Información de LabyMod",
"labymodInfo": "Información de LabyClient",
"lunarInfo": "Información de Lunar Client",
"website": "Sitio web",
"web": "Web",
Expand All @@ -160,7 +161,9 @@
"minecraftVersions": "Versiones de Minecraft",
"trailer": "Tráiler de video",
"showMore": "Mostrar {count} más",
"showLess": "Mostrar menos"
"showLess": "Mostrar menos",
"labyInfo": "Información de LabyClient",
"labyServerList": "Lista de servidores LabyClient"
}
},
"comparison": {
Expand Down
15 changes: 9 additions & 6 deletions frontend/app/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,12 @@
"launcher": "Launcher",
"allLaunchers": "Tous les launchers",
"lunar": "Lunar Client",
"labymod": "LabyMod",
"labymod": "LabyClient",
"filterSort": "Filtres & Tri",
"reset": "Réinitialiser",
"sortAscTitle": "Ordre croissant",
"sortDescTitle": "Ordre décroissant"
"sortDescTitle": "Ordre décroissant",
"laby": "LabyClient"
}
},
"hero": {
Expand Down Expand Up @@ -144,14 +145,14 @@
"offlineMotdNotice": "Le serveur est actuellement hors ligne, il s'agit du dernier statut enregistré",
"sidebar": {
"socials": "Réseaux Sociaux",
"labyEmpty": "Ce serveur est référencé sur LabyMod mais n'a pas encore renseigné ses informations.",
"labyEmpty": "Ce serveur est référencé sur LabyClient mais n'a pas encore renseigné ses informations.",
"lunarEmpty": "Ce serveur est référencé sur Lunar Client mais n'a pas encore renseigné ses informations.",
"labyPartner": "Partenaire officiel LabyMod",
"labyPartner": "Partenaire officiel LabyClient",
"lunarPartner": "Partenaire officiel Lunar Client",
"playerStats": "Statistiques Joueurs",
"searchPlayer": "Rechercher un joueur...",
"gamemodes": "Modes de jeu",
"labymodInfo": "Infos LabyMod",
"labymodInfo": "Infos LabyClient",
"lunarInfo": "Infos Lunar Client",
"website": "Site Web",
"web": "Site Web",
Expand All @@ -160,7 +161,9 @@
"minecraftVersions": "Versions Minecraft",
"trailer": "Trailer Vidéo",
"showMore": "Voir {count} autres",
"showLess": "Voir moins"
"showLess": "Voir moins",
"labyInfo": "Infos LabyClient",
"labyServerList": "Liste des serveurs LabyClient"
}
},
"comparison": {
Expand Down
15 changes: 9 additions & 6 deletions frontend/app/locales/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,12 @@
"launcher": "Launcher",
"allLaunchers": "Tutti i Launcher",
"lunar": "Lunar Client",
"labymod": "LabyMod",
"labymod": "LabyClient",
"filterSort": "Filtra e ordina",
"reset": "Reimposta",
"sortAscTitle": "Ordine crescente",
"sortDescTitle": "Ordine decrescente"
"sortDescTitle": "Ordine decrescente",
"laby": "LabyClient"
}
},
"hero": {
Expand Down Expand Up @@ -144,14 +145,14 @@
"offlineMotdNotice": "Questo server è attualmente offline, viene mostrato l'ultimo stato salvato",
"sidebar": {
"socials": "Reti sociali",
"labyEmpty": "Questo server è registrato su LabyMod ma non ha ancora inserito le sue informazioni.",
"labyEmpty": "Questo server è registrato su LabyClient ma non ha ancora inserito le sue informazioni.",
"lunarEmpty": "Questo server è registrato su Lunar Client ma non ha ancora inserito le sue informazioni.",
"labyPartner": "Partner Ufficiale LabyMod",
"labyPartner": "Partner Ufficiale LabyClient",
"lunarPartner": "Partner Ufficiale Lunar",
"playerStats": "Statistiche Giocatori",
"searchPlayer": "Cerca un giocatore...",
"gamemodes": "Modalità di gioco",
"labymodInfo": "Informazioni LabyMod",
"labymodInfo": "Informazioni LabyClient",
"lunarInfo": "Informazioni Lunar Client",
"website": "Sito web",
"web": "Sito web",
Expand All @@ -160,7 +161,9 @@
"minecraftVersions": "Versioni di Minecraft",
"trailer": "Video trailer",
"showMore": "Mostra altri {count}",
"showLess": "Mostra meno"
"showLess": "Mostra meno",
"labyInfo": "Informazioni LabyClient",
"labyServerList": "Lista server LabyClient"
}
},
"comparison": {
Expand Down
15 changes: 9 additions & 6 deletions frontend/app/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,12 @@
"launcher": "ランチャー",
"allLaunchers": "すべてのランチャー",
"lunar": "Lunar Client",
"labymod": "LabyMod",
"labymod": "LabyClient",
"filterSort": "フィルター&並び替え",
"reset": "リセット",
"sortAscTitle": "昇順",
"sortDescTitle": "降順"
"sortDescTitle": "降順",
"laby": "LabyClient"
}
},
"hero": {
Expand Down Expand Up @@ -144,14 +145,14 @@
"offlineMotdNotice": "このサーバーは現在オフラインのため、最後に保存されたステータスを表示しています",
"sidebar": {
"socials": "ソーシャルネットワーク",
"labyEmpty": "このサーバーはLabyModに登録されていますが、情報はまだ入力されていません。",
"labyEmpty": "このサーバーはLabyClientに登録されていますが、情報はまだ入力されていません。",
"lunarEmpty": "このサーバーはLunar Clientに登録されていますが、情報はまだ入力されていません。",
"labyPartner": "LabyMod公式パートナー",
"labyPartner": "LabyClient公式パートナー",
"lunarPartner": "Lunar公式パートナー",
"playerStats": "プレイヤー統計",
"searchPlayer": "プレイヤーを検索...",
"gamemodes": "ゲームモード",
"labymodInfo": "LabyMod情報",
"labymodInfo": "LabyClient情報",
"lunarInfo": "Lunar Client情報",
"website": "ウェブサイト",
"web": "ウェブサイト",
Expand All @@ -160,7 +161,9 @@
"minecraftVersions": "Minecraftバージョン",
"trailer": "トレイラー動画",
"showMore": "さらに {count} 件表示",
"showLess": "表示を減らす"
"showLess": "表示を減らす",
"labyInfo": "LabyClient情報",
"labyServerList": "LabyClient サーバーリスト"
}
},
"comparison": {
Expand Down
15 changes: 9 additions & 6 deletions frontend/app/locales/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,12 @@
"launcher": "런처",
"allLaunchers": "모든 런처",
"lunar": "Lunar Client",
"labymod": "LabyMod",
"labymod": "LabyClient",
"filterSort": "필터 및 정렬",
"reset": "초기화",
"sortAscTitle": "오름차순",
"sortDescTitle": "내림차순"
"sortDescTitle": "내림차순",
"laby": "LabyClient"
}
},
"hero": {
Expand Down Expand Up @@ -144,14 +145,14 @@
"offlineMotdNotice": "이 서버는 현재 오프라인 상태이므로 마지막으로 저장된 상태를 표시합니다",
"sidebar": {
"socials": "소셜 네트워크",
"labyEmpty": "이 서버는 LabyMod에 등록되어 있지만 아직 정보가 입력되지 않았습니다.",
"labyEmpty": "이 서버는 LabyClient에 등록되어 있지만 아직 정보가 입력되지 않았습니다.",
"lunarEmpty": "이 서버는 Lunar Client에 등록되어 있지만 아직 정보가 입력되지 않았습니다.",
"labyPartner": "공식 LabyMod 파트너",
"labyPartner": "공식 LabyClient 파트너",
"lunarPartner": "공식 Lunar 파트너",
"playerStats": "플레이어 통계",
"searchPlayer": "플레이어 검색...",
"gamemodes": "게임 모드",
"labymodInfo": "LabyMod 정보",
"labymodInfo": "LabyClient 정보",
"lunarInfo": "Lunar Client 정보",
"website": "웹사이트",
"web": "웹사이트",
Expand All @@ -160,7 +161,9 @@
"minecraftVersions": "마인크래프트 버전",
"trailer": "트레일러 영상",
"showMore": "{count}개 더 보기",
"showLess": "간략히 보기"
"showLess": "간략히 보기",
"labyInfo": "LabyClient 정보",
"labyServerList": "LabyClient 서버 목록"
}
},
"comparison": {
Expand Down
Loading
Loading