init commit
This commit is contained in:
66
internal/handlers/dispatcher.go
Normal file
66
internal/handlers/dispatcher.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"customServer/internal/protocol"
|
||||
"fmt"
|
||||
"net"
|
||||
)
|
||||
|
||||
// Dispatcher Function
|
||||
// Note: We might pass dependencies here if we want to avoid globals,
|
||||
// but for this refactor we'll stick to dispatching to handler functions.
|
||||
|
||||
func Dispatch(conn net.Conn, packetID int64, requestNumber int32, requestData []byte) ([]byte, int) {
|
||||
fmt.Printf("[Dispatcher] Dispatching Request %d (PacketID: %d)\n", requestNumber, packetID)
|
||||
|
||||
switch requestNumber {
|
||||
// Auth
|
||||
case 400:
|
||||
return HandleAsyncAuthRequest(conn, requestData)
|
||||
case 401:
|
||||
return HandleAsyncDisconnectRequest(conn, requestData)
|
||||
case 408:
|
||||
return HandleAskServerStatisticsRequest(conn, requestData)
|
||||
|
||||
// System / Buddies
|
||||
case 515:
|
||||
return HandleAsyncBuddyListRequest(conn, requestData)
|
||||
case 560:
|
||||
return HandleAsyncIgnoreListRequest(conn, requestData)
|
||||
|
||||
// Lobby
|
||||
case 600:
|
||||
return HandleEnterLobbyRequest(conn, requestData)
|
||||
case 604:
|
||||
return HandleLobbyPlayerListRequest(conn, requestData)
|
||||
case 607:
|
||||
return HandleLobbyCreateGameRequest(conn, requestData)
|
||||
case 609:
|
||||
return HandleLobbyGameListRequest(conn, requestData)
|
||||
case 610:
|
||||
return HandleLobbyJoinGameRequest(conn, requestData)
|
||||
case 622:
|
||||
return HandleObservableGameListRequest(conn, requestData)
|
||||
|
||||
// Game
|
||||
case 511:
|
||||
return HandleWhatsNewPussycatRequest(conn, requestData)
|
||||
case 608:
|
||||
// Note: 608 is LobbyGameCreatedRequest (OUT), 607 is IN.
|
||||
// If client sends 608, it's weird.
|
||||
return nil, 0
|
||||
|
||||
// System / Ping
|
||||
case 777:
|
||||
return HandlePingRequest(conn, requestData)
|
||||
|
||||
default:
|
||||
fmt.Printf("[Dispatcher] Unknown Request %d\n", requestNumber)
|
||||
return nil, 0
|
||||
}
|
||||
}
|
||||
|
||||
// Helper to encode varint for handlers that need it locally
|
||||
func encodeVarint(v uint64) []byte {
|
||||
return protocol.EncodeVarint(v)
|
||||
}
|
||||
Reference in New Issue
Block a user