Módulo de Jogador
O Módulo de Jogador fornece acesso às informações do jogador e às preferências de gamificação no Gamanza Engage Web Client SDK.
Acessando o Módulo
O PlayerModule é inicializado internamente pelo SDK e não deve ser instanciado diretamente. Ele é acessível através da instância principal do SDK.
// Exemplo de acesso ao PlayerModule através do SDK
const { Player } = GamanzaEngageWebClientSDK.getInstance();
Métodos
obterJogador
Retorna as informações do jogador autenticado atual da plataforma Gamanza Engage.
Assinatura:
obterJogador(): Promise<PlayerData | null>
Retorna:
| Tipo | Descrição |
|---|---|
Promise<PlayerData | null> | Uma promessa que é resolvida com os dados do jogador ou nulo se o jogador estiver faltando ou houver um erro. |
Exemplo:
// Obter informações do jogador
const player = await sdk.Player.obterJogador();
if (player) {
console.log(`ID do Jogador: ${player.playerId}`);
console.log(`Nome do Jogador: ${player.firstName} ${player.lastName}`);
// Acessar o status da gamificação
console.log(`Gamificação Habilitada: ${player.gamificationOpt.enable}`);
// Acessar os dados de classificação, se disponíveis
if (player.ranksData) {
console.log(`Classificação Atual: ${player.ranksData.rank.name}`);
console.log(`Nível Atual: ${player.ranksData.level.levelNumber}`);
console.log(`Saldo de XP: ${player.ranksData.xpBalance}`);
}
// Acessar os dados da carteira, se disponíveis
if (player.walletData) {
console.log(`Saldo da Carteira: ${player.walletData.balance}`);
}
}
opçõesGamificaçãoJogador
Permite habilitar ou desabilitar os recursos de Gamificação Gamanza Engage para o jogador autenticado atual.
Assinatura:
opçõesGamificaçãoJogador(enable: boolean, reasons: Reason[]): Promise<SimpleResponse<void>>
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
enable | Tipo boolean | Define se o jogador está optando por participar (verdadeiro) ou optando por não participar (falso) |
reasons | Reason[] | Lista de possíveis razões pelas quais o jogador está optando por não participar (obrigatório ao optar por não participar) |
Retorna:
| Tipo | Descrição |
|---|---|
Promise<SimpleResponse<void>> | Uma promessa que é resolvida com uma resposta simples indicando sucesso ou falha |
Exemplo:
// Optar por não participar da gamificação com razões
const reasons = await sdk.Player.obterListaDeRazõesParaOptarPorNãoParticipar();
const selectedReasons = [reasons[0]]; // Selecionar a primeira razão da lista
const response = await sdk.Player.opçõesGamificaçãoJogador(false, selectedReasons);
if (response.ok) {
console.log('Optou com sucesso por não participar da gamificação');
} else {
console.error('Falha ao optar por não participar da gamificação:', response.error);
}
// Optar por participar da gamificação (sem razões necessárias)
const optInResponse = await sdk.Player.opçõesGamificaçãoJogador(true, []);
if (optInResponse.ok) {
console.log('Optou com sucesso por participar da gamificação');
}
obterListaDeRazõesParaOptarPorNãoParticipar
Retorna a lista de razões predefinidas configuradas na instância Gamanza Engage Admin para serem exibidas ao jogador quando eles decidirem optar por não participar da gamificação.
Assinatura:
getListOfOptOutReasons(): Promise<Reason[]>
Retorna:
| Tipo | Descrição |
|---|---|
Promise<Razão[]> | Uma promessa que é resolvida em um array de motivos pré-definidos para opt-out |
Exemplo:
// Obter a lista de motivos de opt-out
const razoes = await sdk.Player.getListOfOptOutReasons();
console.log('Motivos de opt-out disponíveis:');
razoes.forEach(razao => {
// Exibir o motivo no idioma do usuário, se disponível
const traducao = razao.translations?.find(t => t.language === userLanguage);
console.log(traducao?.text || razao.option);
});
Interfaces Relacionadas
PlayerData
A interface principal para informações do jogador.
interface PlayerData {
playerId: string;
firstName?: string;
lastName?: string;
gender?: string;
phone?: string;
username?: string;
email?: string;
language?: string;
currency?: string;
birthDate?: string;
nationality?: string;
address?: Endereço;
session?: SessãoJogador;
gamificationOpt: OpçãoGamificação;
ranksData?: DadosRanks;
walletData?: DadosCarteira;
}
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
playerId | Tipo string | Sim | Identificador único do jogador |
firstName | Tipo string | Não | Primeiro nome do jogador |
lastName | Tipo string | Não | Sobrenome do jogador |
gender | Tipo string | Não | Gênero do jogador |
phone | Tipo string | Não | Número de telefone do jogador |
username | Tipo string | Não | Nome de usuário do jogador |
email | Tipo string | Não | Endereço de email do jogador |
language | Tipo string | Não | Idioma preferido do jogador |
currency | Tipo string | Não | Moeda preferida do jogador |
birthDate | Tipo string | Não | Data de nascimento do jogador |
nationality | Tipo string | Não | Nacionalidade do jogador |
address | Address | Não | Informações de endereço do jogador |
session | PlayerSession | Não | Informações da sessão do jogador |
gamificationOpt | GamificationOpt | Sim | Preferências de gamificação do jogador |
ranksData | RanksData | Não | Informações de classificação do jogador |
walletData | WalletData | Não | Informações da carteira do jogador |