@@ -7,7 +7,7 @@ use crate::{
7
7
} ;
8
8
use aes:: Aes128 ;
9
9
use anyhow:: { anyhow, Result } ;
10
- use bytes:: { BufMut , BytesMut } ;
10
+ use bytes:: { Buf , BufMut , BytesMut } ;
11
11
use cfb8:: Encryptor ;
12
12
use std:: { net:: SocketAddr , sync:: Arc , time:: Duration } ;
13
13
use tokio:: net:: TcpStream ;
@@ -81,7 +81,7 @@ impl MinecraftServer {
81
81
}
82
82
}
83
83
84
- pub async fn _run ( & mut self ) -> Result < ( ) > {
84
+ async fn _run ( & mut self ) -> Result < ( ) > {
85
85
loop {
86
86
self . stream . readable ( ) . await ?;
87
87
let mut temp_buf = vec ! [ 0 ; 1024 ] ;
@@ -144,7 +144,8 @@ impl MinecraftServer {
144
144
match self . session . next_state {
145
145
NextStateEnum :: Status => {
146
146
// Handle ping request
147
- self . handle_ping ( ) . await ?
147
+ let payload = self . buffer . get_i64 ( ) ;
148
+ self . send_ping ( payload) . await ?
148
149
}
149
150
NextStateEnum :: Login => {
150
151
debug ! ( "Received encryption response" ) ;
@@ -159,15 +160,14 @@ impl MinecraftServer {
159
160
async fn auth_client ( & mut self ) -> Result < ( ) > {
160
161
let player_data = mojang:: join ( & mut self . session , self . keys . clone ( ) ) . await ?;
161
162
162
- if player_data. is_none ( ) {
163
- debug ! ( "Mojang API error" ) ;
164
- self . send_disconnect ( self . config . messages . bad_session . clone ( ) )
165
- . await ?;
166
- return Err ( anyhow ! ( "Mojang API error" ) ) ;
167
- }
168
-
169
- // HA-HA: Unwrap is safe, because we already checked for none above
170
- let player_data = player_data. unwrap ( ) ;
163
+ let player_data = match player_data {
164
+ Some ( x) => x,
165
+ None => {
166
+ self . send_disconnect ( self . config . messages . bad_session . clone ( ) )
167
+ . await ?;
168
+ return Err ( anyhow ! ( "Mojang API error" ) ) ;
169
+ }
170
+ } ;
171
171
let map = get_map ( ) . await ;
172
172
let code = generate_code ( 6 ) ; // Generate 6-digit code
173
173
0 commit comments