11use async_trait:: async_trait;
2- use rand:: { random_range, Rng } ;
3- use rand:: distr:: Alphanumeric ;
2+ use rand:: random_range;
43use serde:: { Deserialize , Serialize } ;
54use tentacli_packet:: { LoginPacket , Segment } ;
65use tentacli_traits:: types:: opcodes:: Opcode ;
76use tentacli_traits:: types:: realm:: Realm ;
87
9- use crate :: primary:: server:: WORLD_PORT ;
108use crate :: primary:: traits:: packet_handler:: PacketHandler ;
119use crate :: primary:: types:: { HandlerInput , HandlerOutput , HandlerResult } ;
12- use crate :: primary:: types:: fields:: realms:: Realms ;
1310
1411#[ derive( LoginPacket , Serialize , Deserialize , Debug ) ]
1512pub struct RealmlistIncoming {
@@ -28,18 +25,15 @@ struct Outgoing {
2825pub struct Handler ;
2926#[ async_trait]
3027impl PacketHandler for Handler {
31- async fn handle ( & mut self , _: & mut HandlerInput ) -> HandlerResult {
32- let realms = Self :: generate_unique_realms ( ) ;
33- let realms_count = realms. len ( ) as u16 ;
34-
28+ async fn handle ( & mut self , input : & mut HandlerInput ) -> HandlerResult {
3529 let realms_bytes = {
36- #[ derive( Segment , Serialize , Deserialize ) ]
30+ #[ derive( Segment , Serialize ) ]
3731 struct RealmsSerializer {
38- realms : Realms ,
32+ realms : Vec < Realm > ,
3933 }
4034
4135 RealmsSerializer {
42- realms : Realms ( realms . clone ( ) ) ,
36+ realms : vec ! [ Self :: generate_realm ( input . server_info . world_port ) ] ,
4337 }
4438 . to_binary ( )
4539 . unwrap ( )
@@ -49,7 +43,7 @@ impl PacketHandler for Handler {
4943 Outgoing {
5044 size: ( realms_bytes. len( ) + 8 ) as u16 ,
5145 unknown: 0 ,
52- realms_count,
46+ realms_count: 1 ,
5347 realms: realms_bytes,
5448 unknown2: 0x0010 ,
5549 }
@@ -59,40 +53,17 @@ impl PacketHandler for Handler {
5953}
6054
6155impl Handler {
62- fn generate_realm ( ) -> Realm {
56+ fn generate_realm ( port : u16 ) -> Realm {
6357 let mut realm = Realm :: default ( ) ;
6458
65- let name: String = rand:: rng ( )
66- . sample_iter ( Alphanumeric )
67- . take ( 10 )
68- . map ( char:: from)
69- . collect ( ) ;
70-
7159 realm. icon = 1 ;
7260 realm. lock = 0 ;
7361 realm. flags = 1 ;
74- realm. name = name ;
75- realm. address = format ! ( "127.0.0.1:{}" , WORLD_PORT ) ;
62+ realm. name = String :: from ( "TINE Aspect Server" ) ;
63+ realm. address = format ! ( "127.0.0.1:{}" , port ) ;
7664 realm. timezone = 1 ;
7765 realm. server_id = random_range ( 0 ..=100 ) ;
7866
7967 realm
8068 }
81-
82- fn generate_unique_realms ( ) -> Vec < Realm > {
83- let random_count: usize = random_range ( 1 ..=10 ) ;
84-
85- let mut realms = Vec :: new ( ) ;
86- let mut generated_names = std:: collections:: HashSet :: new ( ) ;
87-
88- while realms. len ( ) < random_count {
89- let realm = Self :: generate_realm ( ) ;
90-
91- if generated_names. insert ( realm. name . clone ( ) ) {
92- realms. push ( realm) ;
93- }
94- }
95-
96- realms
97- }
9869}
0 commit comments