mirror of
https://github.com/PretendoNetwork/friends.git
synced 2026-04-24 23:07:13 -05:00
Added MarkFriendRequestsAsReceived
This commit is contained in:
parent
36f1a28a44
commit
bc51bbdab7
|
|
@ -50,7 +50,7 @@ func addFriendRequest(err error, client *nex.Client, callID uint32, pid uint32,
|
|||
|
||||
friendRequest.Message = nexproto.NewFriendRequestMessage()
|
||||
friendRequest.Message.FriendRequestID = friendRequestID
|
||||
friendRequest.Message.Unknown1 = 0 // replaying from real server
|
||||
friendRequest.Message.Received = false
|
||||
friendRequest.Message.Unknown2 = 1 // replaying from real
|
||||
friendRequest.Message.Message = message
|
||||
friendRequest.Message.Unknown3 = 0 // replaying from real server
|
||||
|
|
@ -129,7 +129,7 @@ func addFriendRequest(err error, client *nex.Client, callID uint32, pid uint32,
|
|||
|
||||
friendRequestNotificationData.Message = nexproto.NewFriendRequestMessage()
|
||||
friendRequestNotificationData.Message.FriendRequestID = friendRequestID
|
||||
friendRequestNotificationData.Message.Unknown1 = 0 // replaying from real server
|
||||
friendRequestNotificationData.Message.Received = false
|
||||
friendRequestNotificationData.Message.Unknown2 = 1 // replaying from real
|
||||
friendRequestNotificationData.Message.Message = message
|
||||
friendRequestNotificationData.Message.Unknown3 = 0 // replaying from real server
|
||||
|
|
|
|||
21
database.go
21
database.go
|
|
@ -78,7 +78,10 @@ func connectCassandra() {
|
|||
recipient_pid int,
|
||||
sent_on bigint,
|
||||
expires_on bigint,
|
||||
message text
|
||||
message text,
|
||||
received boolean,
|
||||
accepted boolean,
|
||||
denied boolean
|
||||
)`).Exec(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
|
@ -231,7 +234,7 @@ func getUserFriendRequestsOut(pid uint32) []*nexproto.FriendRequest {
|
|||
var sliceMap []map[string]interface{}
|
||||
var err error
|
||||
|
||||
if sliceMap, err = cassandraClusterSession.Query(`SELECT id, recipient_pid, sent_on, expires_on, message FROM pretendo_friends.friend_requests WHERE sender_pid=? ALLOW FILTERING`, pid).Iter().SliceMap(); err != nil {
|
||||
if sliceMap, err = cassandraClusterSession.Query(`SELECT id, recipient_pid, sent_on, expires_on, message, received FROM pretendo_friends.friend_requests WHERE sender_pid=? AND accepted=false AND denied=false ALLOW FILTERING`, pid).Iter().SliceMap(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
|
|
@ -260,7 +263,7 @@ func getUserFriendRequestsOut(pid uint32) []*nexproto.FriendRequest {
|
|||
|
||||
friendRequest.Message = nexproto.NewFriendRequestMessage()
|
||||
friendRequest.Message.FriendRequestID = uint64(sliceMap[i]["id"].(int64))
|
||||
friendRequest.Message.Unknown1 = 0
|
||||
friendRequest.Message.Received = sliceMap[i]["received"].(bool)
|
||||
friendRequest.Message.Unknown2 = 1
|
||||
friendRequest.Message.Message = sliceMap[i]["message"].(string)
|
||||
friendRequest.Message.Unknown3 = 0
|
||||
|
|
@ -283,7 +286,7 @@ func getUserFriendRequestsIn(pid uint32) []*nexproto.FriendRequest {
|
|||
var sliceMap []map[string]interface{}
|
||||
var err error
|
||||
|
||||
if sliceMap, err = cassandraClusterSession.Query(`SELECT id, sender_pid, sent_on, expires_on, message FROM pretendo_friends.friend_requests WHERE recipient_pid=? ALLOW FILTERING`, pid).Iter().SliceMap(); err != nil {
|
||||
if sliceMap, err = cassandraClusterSession.Query(`SELECT id, sender_pid, sent_on, expires_on, message, received FROM pretendo_friends.friend_requests WHERE recipient_pid=? AND accepted=false AND denied=false ALLOW FILTERING`, pid).Iter().SliceMap(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
|
|
@ -312,7 +315,7 @@ func getUserFriendRequestsIn(pid uint32) []*nexproto.FriendRequest {
|
|||
|
||||
friendRequest.Message = nexproto.NewFriendRequestMessage()
|
||||
friendRequest.Message.FriendRequestID = uint64(sliceMap[i]["id"].(int64))
|
||||
friendRequest.Message.Unknown1 = 0
|
||||
friendRequest.Message.Received = sliceMap[i]["received"].(bool)
|
||||
friendRequest.Message.Unknown2 = 1
|
||||
friendRequest.Message.Message = sliceMap[i]["message"].(string)
|
||||
friendRequest.Message.Unknown3 = 0
|
||||
|
|
@ -369,7 +372,13 @@ func isFriendRequestBlocked(requesterPID uint32, requestedPID uint32) bool {
|
|||
}
|
||||
|
||||
func saveFriendRequest(friendRequestID uint64, senderPID uint32, recipientPID uint32, sentTime uint64, expireTime uint64, message string) {
|
||||
if err := cassandraClusterSession.Query(`INSERT INTO pretendo_friends.friend_requests (id, sender_pid, recipient_pid, sent_on, expires_on, message) VALUES (?, ?, ?, ?, ?, ?) IF NOT EXISTS`, friendRequestID, senderPID, recipientPID, sentTime, expireTime, message).Exec(); err != nil {
|
||||
if err := cassandraClusterSession.Query(`INSERT INTO pretendo_friends.friend_requests (id, sender_pid, recipient_pid, sent_on, expires_on, message, received, accepted, denied) VALUES (?, ?, ?, ?, ?, ?, false, false, false) IF NOT EXISTS`, friendRequestID, senderPID, recipientPID, sentTime, expireTime, message).Exec(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func setFriendRequestReceived(friendRequestID uint64) {
|
||||
if err := cassandraClusterSession.Query(`UPDATE pretendo_friends.friend_requests SET received=true WHERE id=?`, friendRequestID).Exec(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
1
main.go
1
main.go
|
|
@ -45,6 +45,7 @@ func main() {
|
|||
// Friends (WiiU) protocol handles
|
||||
friendsServer.UpdateAndGetAllInformation(updateAndGetAllInformation)
|
||||
friendsServer.AddFriendRequest(addFriendRequest)
|
||||
friendsServer.MarkFriendRequestsAsReceived(markFriendRequestsAsReceived)
|
||||
friendsServer.UpdatePreference(updatePreferenceWiiU)
|
||||
friendsServer.GetBasicInfo(getBasicInfo)
|
||||
friendsServer.CheckSettingStatus(checkSettingStatus)
|
||||
|
|
|
|||
31
mark_friend_requests_as_received.go
Normal file
31
mark_friend_requests_as_received.go
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
nex "github.com/PretendoNetwork/nex-go"
|
||||
nexproto "github.com/PretendoNetwork/nex-protocols-go"
|
||||
)
|
||||
|
||||
func markFriendRequestsAsReceived(err error, client *nex.Client, callID uint32, ids []uint64) {
|
||||
for i := 0; i < len(ids); i++ {
|
||||
id := ids[i]
|
||||
setFriendRequestReceived(id)
|
||||
}
|
||||
|
||||
rmcResponse := nex.NewRMCResponse(nexproto.FriendsProtocolID, callID)
|
||||
rmcResponse.SetSuccess(nexproto.FriendsMethodMarkFriendRequestsAsReceived, nil)
|
||||
|
||||
rmcResponseBytes := rmcResponse.Bytes()
|
||||
|
||||
responsePacket, _ := nex.NewPacketV0(client, nil)
|
||||
|
||||
responsePacket.SetVersion(0)
|
||||
responsePacket.SetSource(0xA1)
|
||||
responsePacket.SetDestination(0xAF)
|
||||
responsePacket.SetType(nex.DataPacket)
|
||||
responsePacket.SetPayload(rmcResponseBytes)
|
||||
|
||||
responsePacket.AddFlag(nex.FlagNeedsAck)
|
||||
responsePacket.AddFlag(nex.FlagReliable)
|
||||
|
||||
nexServer.Send(responsePacket)
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user