플레이어 관리
17

현재 플레이어 받기

아래에서 현재 사용자를 가져오는 방법을 보여 줍니다. 이 작업은 TrustedPlatformClient가 플레이어 액세스 토큰으로 인증된 경우에만 작동합니다. 따라서 이 쿼리는 클라이언트 측면에서 더 관련성이 높습니다. 서버에서 플레이어를 가져와야 하는 경우 플레이어의 ID 또는 이름을 명시적으로 정의할 수 있습니다.

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();
           }
       }
   }
}

플레이어 ID 얻기

아래 예제에서는 사용자 쿼리에 플레이어 ID를 포함하는 방법을 보여 줍니다.

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();
           }
       }
   }
}

플레이어 연결

이더리움 주소를 SDK의 ID에 명시적으로 연결할 수 있지만 Enjin Wallet Android 또는 iOS 앱 내에서 연결할 수 있도록 코드 QR을 플레이어에 연결하거나 링크하는 것이 좋습니다. 아래에서 연결 코드및 QR URL을 얻는 방법을 보여 줍니다.

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();
               }
           }
       }
   }
}

플레이어 밸런스 얻기

플레이어의 균형을 맞추는 방법에는 여러 가지가 있습니다. 이더리움 주소의 잔액을 명시적으로 가져오는 것이 좋습니다. 이렇게 하면 응답에서 반환되는 데이터의 범위를 다른 접근 방식에 비해 제한할 수 있습니다. 데모 를 위해 플레이어를 가져올 때 잔액을 포함하는 방법과 특정 이더리움 주소에 대한 지갑을 가져오는 방법을 보여 드립니다.

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();
               }
           }
       }
   }
}
이전
다음
이 페이지에서