mirror of
https://github.com/tribufu/rust-gamedig
synced 2026-05-06 15:27:28 +00:00
Protocol: Minecraft: Rename java's response struct to JavaResponse
This commit is contained in:
parent
f2ae81002e
commit
21a27fd9cc
7 changed files with 32 additions and 32 deletions
|
|
@ -1,15 +1,15 @@
|
|||
use crate::{GDError, GDResult};
|
||||
use crate::protocols::minecraft;
|
||||
use crate::protocols::minecraft::{Response, LegacyGroup, BedrockResponse};
|
||||
use crate::protocols::minecraft::{JavaResponse, LegacyGroup, BedrockResponse};
|
||||
|
||||
/// Query with all the protocol variants one by one (Java -> Bedrock -> Legacy (1.6 -> 1.4 -> Beta 1.8)).
|
||||
pub fn query(address: &str, port: Option<u16>) -> GDResult<Response> {
|
||||
pub fn query(address: &str, port: Option<u16>) -> GDResult<JavaResponse> {
|
||||
if let Ok(response) = query_java(address, port) {
|
||||
return Ok(response);
|
||||
}
|
||||
|
||||
if let Ok(response) = query_bedrock(address, port) {
|
||||
return Ok(Response::from_bedrock_response(response));
|
||||
return Ok(JavaResponse::from_bedrock_response(response));
|
||||
}
|
||||
|
||||
if let Ok(response) = query_legacy(address, port) {
|
||||
|
|
@ -20,17 +20,17 @@ pub fn query(address: &str, port: Option<u16>) -> GDResult<Response> {
|
|||
}
|
||||
|
||||
/// Query a Java Server.
|
||||
pub fn query_java(address: &str, port: Option<u16>) -> GDResult<Response> {
|
||||
pub fn query_java(address: &str, port: Option<u16>) -> GDResult<JavaResponse> {
|
||||
minecraft::query_java(address, port_or_java_default(port), None)
|
||||
}
|
||||
|
||||
/// Query a (Java) Legacy Server (1.6 -> 1.4 -> Beta 1.8).
|
||||
pub fn query_legacy(address: &str, port: Option<u16>) -> GDResult<Response> {
|
||||
pub fn query_legacy(address: &str, port: Option<u16>) -> GDResult<JavaResponse> {
|
||||
minecraft::query_legacy(address, port_or_java_default(port), None)
|
||||
}
|
||||
|
||||
/// Query a specific (Java) Legacy Server.
|
||||
pub fn query_legacy_specific(group: LegacyGroup, address: &str, port: Option<u16>) -> GDResult<Response> {
|
||||
pub fn query_legacy_specific(group: LegacyGroup, address: &str, port: Option<u16>) -> GDResult<JavaResponse> {
|
||||
minecraft::query_legacy_specific(group, address, port_or_java_default(port), None)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ use serde_json::Value;
|
|||
use crate::GDResult;
|
||||
use crate::GDError::{JsonParse, PacketBad};
|
||||
use crate::bufferer::{Bufferer, Endianess};
|
||||
use crate::protocols::minecraft::{as_varint, get_string, get_varint, Player, Response, Server};
|
||||
use crate::protocols::minecraft::{as_varint, get_string, get_varint, Player, JavaResponse, Server};
|
||||
use crate::protocols::types::TimeoutSettings;
|
||||
use crate::socket::{Socket, TcpSocket};
|
||||
|
||||
|
|
@ -65,7 +65,7 @@ impl Java {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
fn get_info(&mut self) -> GDResult<Response> {
|
||||
fn get_info(&mut self) -> GDResult<JavaResponse> {
|
||||
self.send_handshake()?;
|
||||
self.send_status_request()?;
|
||||
self.send_ping_request()?;
|
||||
|
|
@ -107,7 +107,7 @@ impl Java {
|
|||
})
|
||||
};
|
||||
|
||||
Ok(Response {
|
||||
Ok(JavaResponse {
|
||||
version_name,
|
||||
version_protocol,
|
||||
players_maximum: max_players,
|
||||
|
|
@ -121,7 +121,7 @@ impl Java {
|
|||
})
|
||||
}
|
||||
|
||||
pub fn query(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<Response> {
|
||||
pub fn query(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<JavaResponse> {
|
||||
Java::new(address, port, timeout_settings)?.get_info()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
use crate::GDResult;
|
||||
use crate::bufferer::{Bufferer, Endianess};
|
||||
use crate::GDError::{PacketBad, ProtocolFormat};
|
||||
use crate::protocols::minecraft::{LegacyGroup, Response, Server};
|
||||
use crate::protocols::minecraft::{LegacyGroup, JavaResponse, Server};
|
||||
use crate::protocols::types::TimeoutSettings;
|
||||
use crate::socket::{Socket, TcpSocket};
|
||||
use crate::utils::error_by_expected_size;
|
||||
|
|
@ -25,7 +25,7 @@ impl LegacyBV1_8 {
|
|||
self.socket.send(&[0xFE])
|
||||
}
|
||||
|
||||
fn get_info(&mut self) -> GDResult<Response> {
|
||||
fn get_info(&mut self) -> GDResult<JavaResponse> {
|
||||
self.send_initial_request()?;
|
||||
|
||||
let mut buffer = Bufferer::new_with_data(Endianess::Big, &self.socket.receive(None)?);
|
||||
|
|
@ -48,7 +48,7 @@ impl LegacyBV1_8 {
|
|||
let max_players = split[2].parse()
|
||||
.map_err(|_| PacketBad)?;
|
||||
|
||||
Ok(Response {
|
||||
Ok(JavaResponse {
|
||||
version_name: "Beta 1.8+".to_string(),
|
||||
version_protocol: -1,
|
||||
players_maximum: max_players,
|
||||
|
|
@ -62,7 +62,7 @@ impl LegacyBV1_8 {
|
|||
})
|
||||
}
|
||||
|
||||
pub fn query(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<Response> {
|
||||
pub fn query(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<JavaResponse> {
|
||||
LegacyBV1_8::new(address, port, timeout_settings)?.get_info()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
use crate::GDResult;
|
||||
use crate::bufferer::{Bufferer, Endianess};
|
||||
use crate::GDError::{PacketBad, ProtocolFormat};
|
||||
use crate::protocols::minecraft::{LegacyGroup, Response, Server};
|
||||
use crate::protocols::minecraft::{LegacyGroup, JavaResponse, Server};
|
||||
use crate::protocols::minecraft::protocol::legacy_v1_6::LegacyV1_6;
|
||||
use crate::protocols::types::TimeoutSettings;
|
||||
use crate::socket::{Socket, TcpSocket};
|
||||
|
|
@ -26,7 +26,7 @@ impl LegacyV1_4 {
|
|||
self.socket.send(&[0xFE, 0x01])
|
||||
}
|
||||
|
||||
fn get_info(&mut self) -> GDResult<Response> {
|
||||
fn get_info(&mut self) -> GDResult<JavaResponse> {
|
||||
self.send_initial_request()?;
|
||||
|
||||
let mut buffer = Bufferer::new_with_data(Endianess::Big, &self.socket.receive(None)?);
|
||||
|
|
@ -53,7 +53,7 @@ impl LegacyV1_4 {
|
|||
let max_players = split[2].parse()
|
||||
.map_err(|_| PacketBad)?;
|
||||
|
||||
Ok(Response {
|
||||
Ok(JavaResponse {
|
||||
version_name: "1.4+".to_string(),
|
||||
version_protocol: -1,
|
||||
players_maximum: max_players,
|
||||
|
|
@ -67,7 +67,7 @@ impl LegacyV1_4 {
|
|||
})
|
||||
}
|
||||
|
||||
pub fn query(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<Response> {
|
||||
pub fn query(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<JavaResponse> {
|
||||
LegacyV1_4::new(address, port, timeout_settings)?.get_info()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
use crate::GDResult;
|
||||
use crate::GDError::{PacketBad, ProtocolFormat};
|
||||
use crate::bufferer::{Bufferer, Endianess};
|
||||
use crate::protocols::minecraft::{LegacyGroup, Response, Server};
|
||||
use crate::protocols::minecraft::{LegacyGroup, JavaResponse, Server};
|
||||
use crate::protocols::types::TimeoutSettings;
|
||||
use crate::socket::{Socket, TcpSocket};
|
||||
use crate::utils::error_by_expected_size;
|
||||
|
|
@ -46,7 +46,7 @@ impl LegacyV1_6 {
|
|||
Ok(state)
|
||||
}
|
||||
|
||||
pub fn get_response(buffer: &mut Bufferer) -> GDResult<Response> {
|
||||
pub fn get_response(buffer: &mut Bufferer) -> GDResult<JavaResponse> {
|
||||
let packet_string = buffer.get_string_utf16()?;
|
||||
|
||||
let split: Vec<&str> = packet_string.split("\x00").collect();
|
||||
|
|
@ -61,7 +61,7 @@ impl LegacyV1_6 {
|
|||
let max_players = split[4].parse()
|
||||
.map_err(|_| PacketBad)?;
|
||||
|
||||
Ok(Response {
|
||||
Ok(JavaResponse {
|
||||
version_name,
|
||||
version_protocol,
|
||||
players_maximum: max_players,
|
||||
|
|
@ -75,7 +75,7 @@ impl LegacyV1_6 {
|
|||
})
|
||||
}
|
||||
|
||||
fn get_info(&mut self) -> GDResult<Response> {
|
||||
fn get_info(&mut self) -> GDResult<JavaResponse> {
|
||||
self.send_initial_request()?;
|
||||
|
||||
let mut buffer = Bufferer::new_with_data(Endianess::Big, &self.socket.receive(None)?);
|
||||
|
|
@ -94,7 +94,7 @@ impl LegacyV1_6 {
|
|||
LegacyV1_6::get_response(&mut buffer)
|
||||
}
|
||||
|
||||
pub fn query(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<Response> {
|
||||
pub fn query(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<JavaResponse> {
|
||||
LegacyV1_6::new(address, port, timeout_settings)?.get_info()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use crate::GDError::AutoQuery;
|
||||
use crate::GDResult;
|
||||
use crate::protocols::minecraft::{BedrockResponse, LegacyGroup, Response};
|
||||
use crate::protocols::minecraft::{BedrockResponse, LegacyGroup, JavaResponse};
|
||||
use crate::protocols::minecraft::protocol::bedrock::Bedrock;
|
||||
use crate::protocols::minecraft::protocol::java::Java;
|
||||
use crate::protocols::minecraft::protocol::legacy_v1_4::LegacyV1_4;
|
||||
|
|
@ -15,13 +15,13 @@ mod legacy_bv1_8;
|
|||
mod bedrock;
|
||||
|
||||
/// Queries a Minecraft server with all the protocol variants one by one (Java -> Bedrock -> Legacy (1.6 -> 1.4 -> Beta 1.8)).
|
||||
pub fn query(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<Response> {
|
||||
pub fn query(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<JavaResponse> {
|
||||
if let Ok(response) = query_java(address, port, timeout_settings.clone()) {
|
||||
return Ok(response);
|
||||
}
|
||||
|
||||
if let Ok(response) = query_bedrock(address, port, timeout_settings.clone()) {
|
||||
return Ok(Response::from_bedrock_response(response));
|
||||
return Ok(JavaResponse::from_bedrock_response(response));
|
||||
}
|
||||
|
||||
if let Ok(response) = query_legacy(address, port, timeout_settings) {
|
||||
|
|
@ -32,12 +32,12 @@ pub fn query(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>
|
|||
}
|
||||
|
||||
/// Query a Java Server.
|
||||
pub fn query_java(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<Response> {
|
||||
pub fn query_java(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<JavaResponse> {
|
||||
Java::query(address, port, timeout_settings)
|
||||
}
|
||||
|
||||
/// Query a (Java) Legacy Server (1.6 -> 1.4 -> Beta 1.8).
|
||||
pub fn query_legacy(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<Response> {
|
||||
pub fn query_legacy(address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<JavaResponse> {
|
||||
if let Ok(response) = query_legacy_specific(LegacyGroup::V1_6, address, port, timeout_settings.clone()) {
|
||||
return Ok(response);
|
||||
}
|
||||
|
|
@ -54,7 +54,7 @@ pub fn query_legacy(address: &str, port: u16, timeout_settings: Option<TimeoutSe
|
|||
}
|
||||
|
||||
/// Query a specific (Java) Legacy Server.
|
||||
pub fn query_legacy_specific(group: LegacyGroup, address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<Response> {
|
||||
pub fn query_legacy_specific(group: LegacyGroup, address: &str, port: u16, timeout_settings: Option<TimeoutSettings>) -> GDResult<JavaResponse> {
|
||||
match group {
|
||||
LegacyGroup::V1_6 => LegacyV1_6::query(address, port, timeout_settings),
|
||||
LegacyGroup::V1_4 => LegacyV1_4::query(address, port, timeout_settings),
|
||||
|
|
|
|||
|
|
@ -38,9 +38,9 @@ pub struct Player {
|
|||
pub id: String
|
||||
}
|
||||
|
||||
/// A query response.
|
||||
/// A Java query response.
|
||||
#[derive(Debug)]
|
||||
pub struct Response {
|
||||
pub struct JavaResponse {
|
||||
/// Version name, example: "1.19.2".
|
||||
pub version_name: String,
|
||||
/// Version protocol, example: 760 (for 1.19.2).
|
||||
|
|
@ -88,7 +88,7 @@ pub struct BedrockResponse {
|
|||
pub server_type: Server
|
||||
}
|
||||
|
||||
impl Response {
|
||||
impl JavaResponse {
|
||||
pub fn from_bedrock_response(response: BedrockResponse) -> Self {
|
||||
Self {
|
||||
version_name: response.version_name,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue