agones.dev/agones@v1.54.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;