@cyberspace-dev/sdk
Version:
Cyberspace - Online Competition For Coders
47 lines (46 loc) • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Play = void 0;
const ship_1 = require("./nodes/signatures/ship/ship");
const base_1 = require("../../base/base");
const utils_1 = require("../../../utils/utils");
const openlib_1 = require("../../../../openlib");
const openlib_2 = require("../../../../openlib");
class Play extends base_1.Base {
socket;
subject;
secure;
// --- [CONSTRUCTOR] -----------------------------------------------------------------------------------------------
constructor(socket, subject, secure) {
super(socket, subject);
this.socket = socket;
this.subject = subject;
this.secure = secure;
}
// --- METHODS [PUBLIC ASYNC] --------------------------------------------------------------------------------------
async get(uuid) {
const { socket, subject, secure } = this;
const signal = {
direction: openlib_2.SignalDirection.OUT,
type: openlib_1.SignalType.EXPLORE,
payload: {},
emitter: [],
catcher: [uuid],
secure
};
const response = await utils_1.Utils.promisify(socket, subject, signal);
if (response.type === openlib_1.SignalType.EXPLORE_SUCCESS) {
const { payload: { type } } = response;
if (`${type}`.startsWith('6'))
return new ship_1.Ship(socket, subject, uuid, secure);
response.payload.reason = 'UNEXPECTED_TYPE';
}
throw new Error(response.payload.reason);
}
// --- METHODS [STATIC] --------------------------------------------------------------------------------------------
static async connect(token, system = '') {
const { socket, subject } = await base_1.Base.connect('PLAY', system.toUpperCase(), token);
return new Play(socket, subject, token);
}
}
exports.Play = Play;