package main import ( "github.com/rs/zerolog/log" "hc/api/connection" "hc/api/connection/request" "hc/api/packet" "hc/presentationlayer/event/incoming" secretkey2 "hc/presentationlayer/event/incoming/handshake/secretkey" "hc/presentationlayer/event/incoming/login" "hc/presentationlayer/event/incoming/registration/register/middleware" "hc/presentationlayer/event/incoming/room" "hc/presentationlayer/outgoing/registration" "hc/presentationlayer/outgoing/user/credits" ) func CollectRoutes() []packet.Packet { return []packet.Packet{ { Name: "@q", Handler: func(sessionId string, request *request.Bag, response chan<- connection.Response) error { log.Warn().Msg("@q not implemented yet") return nil }, Middleware: []packet.MiddlewareFunc{}, }, { Name: incoming.SecretKey, Handler: secretkey2.HandleSecretKey, // tbh I have no idea, todo: check lingo code. Middleware: []packet.MiddlewareFunc{ secretkey2.SendClothesPackMiddleware{}.Handle, secretkey2.SessionDataMiddleware{}.Handle, }, }, { Name: incoming.NameCheck, Handler: InitializeNameCheckHandler().Handle, Middleware: []packet.MiddlewareFunc{}, }, { Name: incoming.PasswordCheck, Handler: InitializePasswordVerifyHandler().Handle, Middleware: []packet.MiddlewareFunc{}, }, { Name: incoming.MailCheck, Handler: func(sessionId string, request *request.Bag, response chan<- connection.Response) error { // We won't be implementing the e-mail check. response <- registration.EmailApprovedResponse{} return nil }, Middleware: []packet.MiddlewareFunc{}, }, { Name: incoming.Register, Handler: InitializeRegisterHandler().Handle, Middleware: []packet.MiddlewareFunc{ InitializeLoginAfterRegistrationMiddleware().Handle, InitializeValidateUsernameMiddleware().Handle, middleware.ParseRegisterRequest, }, }, { Name: incoming.TryLogin, Handler: InitializeTryLoginHandler().Handle, Middleware: []packet.MiddlewareFunc{ login.ParseTryLoginMiddleware, }, }, { Name: incoming.UserInfo, Handler: InitializeInfoRetrieveHandler().Handle, }, { Name: incoming.CreditsBalance, Handler: func(sessionId string, request *request.Bag, response chan<- connection.Response) error { response <- credits.BalanceResponse{Credits: 666} return nil }, }, { Name: incoming.Update, Handler: InitializeUpdateUserHandler().Handle, Middleware: []packet.MiddlewareFunc{ // we can re-use this for update lol middleware.ParseRegisterRequest, }, }, { Name: incoming.BadgeData, Handler: func(sessionId string, request *request.Bag, response chan<- connection.Response) error { return nil }, Middleware: []packet.MiddlewareFunc{ InitializeAuthenticationMiddleware().Handle, }, }, { Name: "BV", // navigator packet, WIP - tCmds.setaProp("NAVIGATE", 150) Handler: func(sessionId string, request *request.Bag, response chan<- connection.Response) error { return nil }, Middleware: []packet.MiddlewareFunc{ InitializeAuthenticationMiddleware().Handle, }, }, { Name: "BW", // navigator packet, WIP - tCmds.setaProp("GETUSERFLATCATS", 151) Handler: func(sessionId string, request *request.Bag, response chan<- connection.Response) error { return nil }, Middleware: []packet.MiddlewareFunc{ InitializeAuthenticationMiddleware().Handle, }, }, { Name: "@P", Handler: func(sessionId string, request *request.Bag, response chan<- connection.Response) error { return nil }, Middleware: []packet.MiddlewareFunc{ InitializeAuthenticationMiddleware().Handle, }, }, { Name: incoming.CreateFlat, Handler: InitializeCreateRoomHandler().Handle, Middleware: []packet.MiddlewareFunc{ room.ParseRoomObjectMiddleware, InitializeAuthenticationMiddleware().Handle, }, }, } }