orchard/docs/plugins/example/examplePlugin.ts
2022-08-04 05:27:29 +01:00

62 lines
1.4 KiB
TypeScript

let i = 1,
k = 1;
class ExamplePlugin {
/**
* Private variables for interaction in plugins
*/
private _win: any;
private _app: any;
private _store: any;
/**
* Base Plugin Details (Eventually implemented into a GUI in settings)
*/
public name: string = "examplePlugin";
public description: string = "Example plugin";
public version: string = "1.0.0";
public author: string = "Example author";
/**
* Runs on plugin load (Currently run on application start)
*/
constructor(app: any, store: any) {
this._app = app;
this._store = store;
console.debug(`[Plugin][${this.name}] Loading Complete.`);
}
/**
* Runs on app ready
*/
onReady(win: any): void {
this._win = win;
console.debug(`[Plugin][${this.name}] Ready.`);
}
/**
* Runs on app stop
*/
onBeforeQuit(): void {
console.debug(`[Plugin][${this.name}] Stopped.`);
}
/**
* Runs on playback State Change
* @param attributes Music Attributes (attributes.status = current state)
*/
onPlaybackStateDidChange(attributes: object): void {
console.log("onPlaybackStateDidChange has been called " + i + " times");
i++;
}
/**
* Runs on song change
* @param attributes Music Attributes
*/
onNowPlayingItemDidChange(attributes: object): void {
console.log("onNowPlayingDidChange has been called " + k + " times");
k++;
}
}
module.exports = ExamplePlugin;