Files

67 lines
1.7 KiB
Go
Raw Permalink Normal View History

2026-01-14 21:33:21 +01:00
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)
}