Godot 4 · GDScript
Amigos
Sistema de amistades: invitaciones, lista de pendientes y rankings filtrados solo entre amigos.
Enviar Invitacion
Invita a un jugador por su clave y escucha invite_sent:
Gamdato.invite_sent.connect(_on_invite)
Gamdato.send_friend_invite(player_key, "Juguemos!")# invitation: Dictionary (the one just created)
{
"id": String,
"to_player_key": String,
"to_player_name": String,
"status": "pending",
"message": String,
"created_at": String,
"expires_at": String
}Listar Invitaciones
Obtiene las invitaciones pendientes (enviadas y recibidas) combinadas:
Gamdato.invitations_listed.connect(_on_invites)
Gamdato.list_pending_invitations()# invitations: Array, each invitation:
{
"id": String, # pass this to respond/cancel
"direction": "incoming" | "outgoing",
"counterpart": {
"player_key": String,
"player_name": String
},
"status": "pending",
"message": String, # may be empty
"created_at": String, # ISO date
"responded_at": String, # null while pending
"expires_at": String # ISO date
}Responder y Cancelar
Acepta o rechaza una invitacion recibida, o cancela una que enviaste:
Gamdato.respond_invitation(invitation_id, true) # aceptar
Gamdato.cancel_invitation(invitation_id) # cancelar enviadaListar tus Amigos
Obtiene la lista de amigos aceptados (no las invitaciones). Opcionalmente puedes filtrar por nombre.
Gamdato.friends_loaded.connect(_on_friends)
Gamdato.list_friends() # o list_friends(50, "texto")
func _on_friends(friends: Array) -> void:
for f in friends:
print("%s (desde %s)" % [f.player_name, f.friends_since])# friends: Array, each friend:
{
"player_key": String,
"player_name": String,
"friends_since": String # ISO date
}Eliminar un Amigo
Borra una amistad existente por la clave del jugador.
Gamdato.friend_removed.connect(_on_removed)
Gamdato.remove_friend(player_key)
func _on_removed(ok: bool, key: String, error_code: String) -> void:
if ok: print("Amigo eliminado")