Protocol: Minecraft: Rename java's response struct to JavaResponse

This commit is contained in:
CosminPerRam 2023-01-17 01:21:17 +02:00
parent f2ae81002e
commit 21a27fd9cc
7 changed files with 32 additions and 32 deletions

View file

@ -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)
}

View file

@ -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()
}
}

View file

@ -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()
}
}

View file

@ -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()
}
}

View file

@ -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()
}
}

View file

@ -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),

View file

@ -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,