Gestión de jugadores
17

Conseguir que el jugador actual

A continuación demostramos cómo buscar al usuario actual. Esto sólo funcionará cuando TrustedPlatformClient esté autenticado con un token de acceso al reproductor. Como tal, esta consulta es más relevante en el lado del cliente. Si necesitas recuperar un reproductor en el servidor, puedes definir explícitamente el ID o el nombre del reproductor.

Java
import com.enjin.sdk.*;
import com.enjin.sdk.graphql.GraphQLResponse;
import com.enjin.sdk.http.HttpResponse;
import com.enjin.sdk.models.user.*;

public class ExampleServer {
   
   private TrustedPlatformClient client;

   public ExampleServer() {
       this.client = new TrustedPlatformClientBuilder().baseUrl(TrustedPlatformClientBuilder.KOVAN)
                                                       .build();
   }

   public void getCurrentPlayer() {
       GetUser query = new GetUser().me();
       HttpResponse> httpResponse = client.getUserService().getUserSync(query);

       if (!httpResponse.isEmpty()) {
           GraphQLResponse graphQLResponse = httpResponse.body();

           if (!graphQLResponse.hasErrors()) {
               User user = graphQLResponse.getData();
           }
       }
   }
}

Obtener las identidades de los jugadores

El siguiente ejemplo demuestra cómo incluir las identidades de los jugadores en la consulta del usuario:

Java
import com.enjin.sdk.*;
import com.enjin.sdk.graphql.GraphQLResponse;
import com.enjin.sdk.http.HttpResponse;
import com.enjin.sdk.models.identity.*;
import com.enjin.sdk.models.user.*;
import java.util.List;

public class ExampleServer {
   
   private TrustedPlatformClient client;

   public ExampleServer() {
       this.client = new TrustedPlatformClientBuilder().baseUrl(TrustedPlatformClientBuilder.KOVAN)
                                                       .build();
   }

   public void getIdentities(String name) {
       GetUser query = new GetUser().name(name)
                                    .withUserIdentities(); // Includes the user identities
       HttpResponse> httpResponse = client.getUserService().getUserSync(query);

       if (!httpResponse.isEmpty()) {
           GraphQLResponse graphQLResponse = httpResponse.body();

           if (!graphQLResponse.hasErrors()) {
               User           user       = graphQLResponse.getData();
               List identities = user.getIdentities();
           }
       }
   }
}

Vincular un jugador

Aunque es posible vincular explícitamente una dirección de Ethereum a una identidad en el SDK, recomendamos mostrar el código de vinculación o el código QR de vinculación a los jugadores para que puedan vincularse desde la aplicación de Enjin Wallet para Android o iOS. A continuación mostramos cómo obtener el código de enlace y la URL QR:

Java
import com.enjin.sdk.*;
import com.enjin.sdk.graphql.GraphQLResponse;
import com.enjin.sdk.http.HttpResponse;
import com.enjin.sdk.models.identity.*;
import com.enjin.sdk.models.user.*;
import java.util.*;

public class ExampleServer {
   
   private TrustedPlatformClient client;

   public ExampleServer() {
       this.client = new TrustedPlatformClientBuilder().baseUrl(TrustedPlatformClientBuilder.KOVAN)
                                                       .build();
   }

   public void getIdentityCode(String name) {
       GetUser query = new GetUser().name(name)
                                    .withUserIdentities()
                                    .withLinkingCode()    // Includes the linking code and
                                    .withLinkingCodeQr(); // the qr url for the identities
       HttpResponse> httpResponse = client.getUserService().getUserSync(query);

       if (!httpResponse.isEmpty()) {
           GraphQLResponse graphQLResponse = httpResponse.body();

           if (!graphQLResponse.hasErrors()) {
               User           user       = graphQLResponse.getData();
               List identities = user.getIdentities();

               if (identities.size() > 0) {
                   Identity identity    = identities.get(0);
                   String   linkingCode = identity.getLinkingCode();
                   String   qrCodeUrl   = identity.getLinkingCodeQr();
               }
           }
       }
   }
}

Obtener el equilibrio de los jugadores

Hay varias maneras de conseguir el equilibrio de los jugadores. Recomendamos encarecidamente usar el servicio de billetera para obtener saldos explícitamente para una dirección del Etéreo. Haciendo esto se puede limitar el alcance de los datos devueltos en la respuesta en comparación con otros enfoques. A modo de demostración, mostraremos cómo incluir saldos al buscar un jugador y cómo buscar la billetera para una dirección Etérea específica:

Java
import com.enjin.sdk.*;
import com.enjin.sdk.graphql.GraphQLResponse;
import com.enjin.sdk.http.HttpResponse;
import com.enjin.sdk.models.balance.*;
import com.enjin.sdk.models.identity.*;
import com.enjin.sdk.models.user.*;
import com.enjin.sdk.models.wallet.*;
import java.util.*;

public class ExampleServer {
   
   private TrustedPlatformClient client;

   public ExampleServer() {
       this.client = new TrustedPlatformClientBuilder().baseUrl(TrustedPlatformClientBuilder.KOVAN)
                                                       .build();
   }

   // Recommended approach
   public void getWallet(String ethAddr) {
       GetWallet query = new GetWallet().ethAddress(ethAddr)
                                        .withBalances(); // Includes the balances
       HttpResponse> httpResponse = client.getWalletService().getWalletSync(query);
   
       if (!httpResponse.isEmpty()) {
           GraphQLResponse graphQLResponse = httpResponse.body();
   
           if (!graphQLResponse.hasErrors()) {
               Wallet         wallet   = graphQLResponse.getData();
               List balances = wallet.getBalances();
           }
       }
   }

   public void getBalances(String name) {
       GetUser query = new GetUser().name(name)
                                    .withUserIdentities()
                                    .withWallet()    // Includes the wallet and
                                    .withBalances(); // the balances for it
       HttpResponse> httpResponse = client.getUserService().getUserSync(query);
   
       if (!httpResponse.isEmpty()) {
           GraphQLResponse graphQLResponse = httpResponse.body();
   
           if (!graphQLResponse.hasErrors()) {
               User           user       = graphQLResponse.getData();
               List identities = user.getIdentities();
   
               if (identities.size() > 0) {
                   Identity       identity = identities.get(0);
                   Wallet         wallet   = identity.getWallet();
                   List balances = wallet.getBalances();
               }
           }
       }
   }
}
Anterior
siguiente
En esta página