From 2e8f1b32e45e02c307fb7bbee988e27798821425 Mon Sep 17 00:00:00 2001 From: eshark22 Date: Wed, 1 Oct 2025 12:55:45 +0000 Subject: [PATCH 1/2] feat: Make server ping response data a resource --- crates/hyperion/src/ingress/mod.rs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/crates/hyperion/src/ingress/mod.rs b/crates/hyperion/src/ingress/mod.rs index 1b137eac..ad41f0ce 100644 --- a/crates/hyperion/src/ingress/mod.rs +++ b/crates/hyperion/src/ingress/mod.rs @@ -66,8 +66,27 @@ pub fn process_handshake( } } +#[derive(Resource)] +pub struct ServerPingResponse { + pub description: String, + pub max_players: u32, +} + +impl Default for ServerPingResponse { + fn default() -> Self { + Self { + description: String::from( + "Getting 10k Players to PvP at Once on a Minecraft Server to Break the Guinness \ + World Record", + ), + max_players: 12_000, + } + } +} + fn process_status_request( mut packets: EventReader<'_, '_, packet::status::QueryRequest>, + ping_response_data: Res, compose: Res<'_, Compose>, ) { for packet in packets.read() { @@ -89,10 +108,10 @@ fn process_status_request( }, "players": { "online": online, - "max": 12_000, + "max": ping_response_data.max_players, "sample": [], }, - "description": "Getting 10k Players to PvP at Once on a Minecraft Server to Break the Guinness World Record", + "description": ping_response_data.description, // "favicon": favicon, }); @@ -288,5 +307,6 @@ impl Plugin for IngressPlugin { ), ); app.add_observer(remove_player_from_visibility); + app.init_resource::(); } } From ba01e1c11adbcf19d6d79973b750de4fb4366e10 Mon Sep 17 00:00:00 2001 From: Eshark22 Date: Fri, 3 Oct 2025 11:04:45 +0000 Subject: [PATCH 2/2] fix: Add explicit lifetime to resource Co-authored-by: TestingPlant <44930139+TestingPlant@users.noreply.github.com> --- crates/hyperion/src/ingress/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/hyperion/src/ingress/mod.rs b/crates/hyperion/src/ingress/mod.rs index ad41f0ce..374fe838 100644 --- a/crates/hyperion/src/ingress/mod.rs +++ b/crates/hyperion/src/ingress/mod.rs @@ -86,7 +86,7 @@ impl Default for ServerPingResponse { fn process_status_request( mut packets: EventReader<'_, '_, packet::status::QueryRequest>, - ping_response_data: Res, + ping_response_data: Res<'_, ServerPingResponse>, compose: Res<'_, Compose>, ) { for packet in packets.read() {