mirror of
https://github.com/PretendoNetwork/friends.git
synced 2026-04-25 23:37:46 -05:00
Replace MongoDB usage with GRPC calls to the account server. Also include documentation on the README and a Makefile.
75 lines
2.2 KiB
Go
75 lines
2.2 KiB
Go
package nex
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"time"
|
|
|
|
database_3ds "github.com/PretendoNetwork/friends/database/3ds"
|
|
database_wiiu "github.com/PretendoNetwork/friends/database/wiiu"
|
|
"github.com/PretendoNetwork/friends/globals"
|
|
notifications_3ds "github.com/PretendoNetwork/friends/notifications/3ds"
|
|
notifications_wiiu "github.com/PretendoNetwork/friends/notifications/wiiu"
|
|
"github.com/PretendoNetwork/friends/types"
|
|
nex "github.com/PretendoNetwork/nex-go"
|
|
_ "github.com/PretendoNetwork/nex-protocols-go"
|
|
)
|
|
|
|
func StartSecureServer() {
|
|
globals.SecureServer = nex.NewServer()
|
|
globals.SecureServer.SetFragmentSize(900)
|
|
globals.SecureServer.SetPRUDPVersion(0)
|
|
globals.SecureServer.SetKerberosKeySize(16)
|
|
globals.SecureServer.SetKerberosPassword(globals.KerberosPassword)
|
|
globals.SecureServer.SetPingTimeout(20) // Maybe too long?
|
|
globals.SecureServer.SetAccessKey("ridfebb9")
|
|
globals.SecureServer.SetDefaultNEXVersion(&nex.NEXVersion{
|
|
Major: 1,
|
|
Minor: 1,
|
|
Patch: 0,
|
|
})
|
|
|
|
globals.SecureServer.On("Data", func(packet *nex.PacketV0) {
|
|
request := packet.RMCRequest()
|
|
|
|
fmt.Println("==Friends - Secure==")
|
|
fmt.Printf("Protocol ID: %#v\n", request.ProtocolID())
|
|
fmt.Printf("Method ID: %#v\n", request.MethodID())
|
|
fmt.Println("====================")
|
|
})
|
|
|
|
globals.SecureServer.On("Kick", func(packet *nex.PacketV0) {
|
|
pid := packet.Sender().PID()
|
|
|
|
if globals.ConnectedUsers[pid] == nil {
|
|
return
|
|
}
|
|
|
|
platform := globals.ConnectedUsers[pid].Platform
|
|
lastOnline := nex.NewDateTime(0)
|
|
lastOnline.FromTimestamp(time.Now())
|
|
|
|
if platform == types.WUP {
|
|
database_wiiu.UpdateUserLastOnlineTime(pid, lastOnline)
|
|
notifications_wiiu.SendUserWentOfflineGlobally(packet.Sender())
|
|
} else if platform == types.CTR {
|
|
database_3ds.UpdateUserLastOnlineTime(pid, lastOnline)
|
|
notifications_3ds.SendUserWentOfflineGlobally(packet.Sender())
|
|
}
|
|
|
|
delete(globals.ConnectedUsers, pid)
|
|
fmt.Println("Leaving (Kick)")
|
|
})
|
|
|
|
globals.SecureServer.On("Disconnect", func(packet *nex.PacketV0) {
|
|
fmt.Println("Leaving (Disconnect)")
|
|
})
|
|
|
|
globals.SecureServer.On("Connect", connect)
|
|
|
|
registerCommonSecureServerProtocols()
|
|
registerSecureServerProtocols()
|
|
|
|
globals.SecureServer.Listen(fmt.Sprintf(":%s", os.Getenv("PN_FRIENDS_SECURE_SERVER_PORT")))
|
|
}
|