let callbacks = []; let bannedCallbacks = []; export default { ready: false, authenticated: false, username: "", userId: "", role: "default", banned: null, ban: {}, getStatus: function(cb) { if (this.ready) cb(this.authenticated, this.role, this.username, this.userId); else callbacks.push(cb); }, setBanned: function(ban) { let _this = this; _this.banned = true; _this.ban = ban; bannedCallbacks.forEach(callback => { callback(true, _this.ban); }); }, isBanned: function(cb) { if (this.ready) return cb(false); if (!this.ready && this.banned === true) return cb(true, this.ban); bannedCallbacks.push(cb); }, data: function(authenticated, role, username, userId) { this.authenticated = authenticated; this.role = role; this.username = username; this.userId = userId; this.ready = true; callbacks.forEach(callback => { callback(authenticated, role, username, userId); }); bannedCallbacks.forEach(callback => { callback(false); }); callbacks = []; } };