@@ -32,6 +32,10 @@ public override void Write(PacketWriter writer)
3232 writer . Write ( DirectConnect ) ;
3333 break ;
3434
35+ case LobbyOpcode . LobbyKick :
36+ writer . Write ( Id ) ;
37+ break ;
38+
3539 case LobbyOpcode . LobbyReady :
3640 writer . Write ( Ready ) ;
3741 break ;
@@ -63,6 +67,10 @@ public override void Read(PacketReader reader)
6367 DirectConnect = reader . ReadBool ( ) ;
6468 break ;
6569
70+ case LobbyOpcode . LobbyKick :
71+ Id = reader . ReadByte ( ) ;
72+ break ;
73+
6674 case LobbyOpcode . LobbyReady :
6775 Ready = reader . ReadBool ( ) ;
6876 break ;
@@ -89,6 +97,10 @@ public override void Handle(Peer peer)
8997 HandleChatMessage ( peer ) ;
9098 break ;
9199
100+ case LobbyOpcode . LobbyKick :
101+ HandleKick ( peer ) ;
102+ break ;
103+
92104 case LobbyOpcode . LobbyReady :
93105 HandleReady ( peer ) ;
94106 break ;
@@ -103,6 +115,16 @@ public override void Handle(Peer peer)
103115 }
104116 }
105117
118+ // LobbyKick
119+ public byte Id { get ; set ; }
120+ private void HandleKick ( Peer peer )
121+ {
122+ if ( ! Server . Players [ ( byte ) peer . ID ] . Host )
123+ return ;
124+
125+ Server . Kick ( Id , DisconnectOpcode . Kicked ) ;
126+ }
127+
106128 // LobbyCreate
107129 public string LobbyName { get ; set ; }
108130 public string LobbyDescription { get ; set ; }
@@ -144,6 +166,9 @@ private void HandleChatMessage(Peer peer)
144166
145167 private void HandleCountdownChange ( Peer peer )
146168 {
169+ if ( ! Server . Players [ ( byte ) peer . ID ] . Host )
170+ return ;
171+
147172 Server . SendToOtherPlayers ( peer . ID , ServerPacketOpcode . Lobby , new SPacketLobby
148173 {
149174 LobbyOpcode = LobbyOpcode . LobbyCountdownChange ,
@@ -154,6 +179,9 @@ private void HandleCountdownChange(Peer peer)
154179 // LobbyGameStart
155180 private void HandleGameStart ( Peer peer )
156181 {
182+ if ( ! Server . Players [ ( byte ) peer . ID ] . Host )
183+ return ;
184+
157185 Server . DisallowJoiningLobby = true ;
158186 Server . SendToAllPlayers ( ServerPacketOpcode . Lobby , new SPacketLobby { LobbyOpcode = LobbyOpcode . LobbyGameStart } ) ;
159187 }
0 commit comments