agones.dev/agones@v1.53.0/sdks/nodejs/src/alpha.js (about)

     1  // Copyright 2020 Google LLC All Rights Reserved.
     2  
     3  //
     4  // Licensed under the Apache License, Version 2.0 (the "License");
     5  // you may not use this file except in compliance with the License.
     6  // You may obtain a copy of the License at
     7  //
     8  //     http://www.apache.org/licenses/LICENSE-2.0
     9  //
    10  // Unless required by applicable law or agreed to in writing, software
    11  // distributed under the License is distributed on an "AS IS" BASIS,
    12  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  // See the License for the specific language governing permissions and
    14  // limitations under the License.
    15  
    16  const grpc = require('@grpc/grpc-js');
    17  
    18  const messages = require('../lib/alpha/alpha_pb');
    19  const servicesPackageDefinition = require('../lib/alpha/alpha_grpc_pb');
    20  
    21  class Alpha {
    22  	constructor(address, credentials) {
    23  		const services = grpc.loadPackageDefinition(servicesPackageDefinition);
    24  		this.client = new services.agones.dev.sdk.alpha.SDK(address, credentials);
    25  	}
    26  
    27  	async playerConnect(playerID) {
    28  		const request = new messages.PlayerID();
    29  		request.setPlayerid(playerID);
    30  
    31  		return new Promise((resolve, reject) => {
    32  			this.client.playerConnect(request, (error, response) => {
    33  				if (error) {
    34  					reject(error);
    35  				} else {
    36  					resolve(response.getBool());
    37  				}
    38  			});
    39  		});
    40  	}
    41  
    42  	async playerDisconnect(playerID) {
    43  		const request = new messages.PlayerID();
    44  		request.setPlayerid(playerID);
    45  
    46  		return new Promise((resolve, reject) => {
    47  			this.client.playerDisconnect(request, (error, response) => {
    48  				if (error) {
    49  					reject(error);
    50  				} else {
    51  					resolve(response.getBool());
    52  				}
    53  			});
    54  		});
    55  	}
    56  
    57  	async setPlayerCapacity(capacity) {
    58  		const request = new messages.Count();
    59  		request.setCount(capacity);
    60  
    61  		return new Promise((resolve, reject) => {
    62  			this.client.setPlayerCapacity(request, (error, response) => {
    63  				if (error) {
    64  					reject(error);
    65  				} else {
    66  					resolve(response.toObject());
    67  				}
    68  			});
    69  		});
    70  	}
    71  
    72  	async getPlayerCapacity() {
    73  		const request = new messages.Empty();
    74  
    75  		return new Promise((resolve, reject) => {
    76  			this.client.getPlayerCapacity(request, (error, response) => {
    77  				if (error) {
    78  					reject(error);
    79  				} else {
    80  					resolve(response.getCount());
    81  				}
    82  			});
    83  		});
    84  	}
    85  
    86  	async getPlayerCount() {
    87  		const request = new messages.Empty();
    88  
    89  		return new Promise((resolve, reject) => {
    90  			this.client.getPlayerCount(request, (error, response) => {
    91  				if (error) {
    92  					reject(error);
    93  				} else {
    94  					resolve(response.getCount());
    95  				}
    96  			});
    97  		});
    98  	}
    99  
   100  	async isPlayerConnected(playerID) {
   101  		const request = new messages.PlayerID();
   102  		request.setPlayerid(playerID);
   103  
   104  		return new Promise((resolve, reject) => {
   105  			this.client.isPlayerConnected(request, (error, response) => {
   106  				if (error) {
   107  					reject(error);
   108  				} else {
   109  					resolve(response.getBool());
   110  				}
   111  			});
   112  		});
   113  	}
   114  
   115  	async getConnectedPlayers() {
   116  		const request = new messages.Empty();
   117  
   118  		return new Promise((resolve, reject) => {
   119  			this.client.getConnectedPlayers(request, (error, response) => {
   120  				if (error) {
   121  					reject(error);
   122  				} else {
   123  					resolve(response.getListList());
   124  				}
   125  			});
   126  		});
   127  	}
   128  }
   129  
   130  module.exports = Alpha;