| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | let callbacks = [];const bannedCallbacks = [];export default {	ready: false,	authenticated: false,	username: "",	userId: "",	role: "default",	banned: null,	ban: {},	getStatus(cb) {		if (this.ready)			cb(this.authenticated, this.role, this.username, this.userId);		else callbacks.push(cb);	},	setBanned(ban) {		this.banned = true;		this.ban = ban;		bannedCallbacks.forEach(callback => {			callback(true, this.ban);		});	},	isBanned(cb) {		if (this.ready) return cb(false);		if (!this.ready && this.banned === true) return cb(true, this.ban);		return bannedCallbacks.push(cb);	},	data(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 = [];	}};
 |