// MLQRequire: { "Plugin": "Minecraft-Payment", "Type": "Service", "Name": "MinecraftPayService" } class MinecraftUsers { private user: MinecraftUser = {} as MinecraftUser; private subscriptionsStates: Map< number, boolean > = new Map(); public onview( vnode ) { if ( typeof( MinecraftUser ) !== 'function' ) LoadQueue.Start( () => {} ) else this.loadUser(); } private loadUser() { var id: string | number = m.route.param( 'id' ); if ( id.match( /^[0-9]+$/ ) ) id = +id; else return; if ( this.user.ID !== id ) { this.user = $.extend( true, new MinecraftUser(), MinecraftPayService.Users.find( o => o.ID === id ) ) || this.user; if ( this.user.ID ) { MinecraftPayAPI.GetAllSubscriptionStates( { params: { id } } ).then( map => { this.subscriptionsStates = map || this.subscriptionsStates; } ); } m.redraw(); } } private UnlockServer( serverId: number ) { if ( !this.subscriptionsStates.get( serverId ) ) { Modal.YesNo( 'Delete minecraft user', __( 'Do you really want to unlock this server for this minecraft user?' ), ( c, e ) => this.unlockServer( this.user.ID, serverId, c ) ).Show(); } } private unlockServer( userId: number, serverId: number, confirmed: boolean ): boolean { if ( confirmed ) { MinecraftPayAPI.SubscribeServer( { params: { id: userId, serverId } } ).then( r => { this.subscriptionsStates.set( serverId, r.Obj ); Toasts.Messaged( r.Message, Toast.Load( { Type: r.Success ? 'success' : 'danger' } ) ); } ); } return undefined; } public constructor() { } }