diff --git a/example.js b/example.js index 2da702e..803bcb9 100644 --- a/example.js +++ b/example.js @@ -192,7 +192,7 @@ client.on('message', async msg => { const chat = await msg.getChat(); // stops typing or recording in the chat chat.clearState(); - } else if (msg.body === 'jumpto') { + } else if (msg.body === '!jumpto') { if (msg.hasQuotedMsg) { const quotedMsg = await msg.getQuotedMessage(); client.interface.openChatWindowAt(quotedMsg.id._serialized); diff --git a/src/util/Injected.js b/src/util/Injected.js index 61e5554..255232b 100644 --- a/src/util/Injected.js +++ b/src/util/Injected.js @@ -32,9 +32,9 @@ exports.ExposeStore = (moduleRaidStr) => { window.Store.Sticker = window.mR.findModule('Sticker')[0].default.Sticker; window.Store.UploadUtils = window.mR.findModule((module) => (module.default && module.default.encryptAndUpload) ? module.default : null)[0].default; window.Store.Label = window.mR.findModule('LabelCollection')[0].default; + window.Store.Features = window.mR.findModule('FEATURE_CHANGE_EVENT')[0].default; window.Store.QueryOrder = window.mR.findModule('queryOrder')[0]; window.Store.QueryProduct = window.mR.findModule('queryProduct')[0]; - }; exports.LoadUtils = () => { diff --git a/src/util/InterfaceController.js b/src/util/InterfaceController.js index 3c0200c..3309daa 100644 --- a/src/util/InterfaceController.js +++ b/src/util/InterfaceController.js @@ -73,7 +73,49 @@ class InterfaceController { await window.Store.Cmd.closeDrawerRight(); }); } - + + /** + * Get all Features + */ + async getFeatures() { + return await this.pupPage.evaluate(() => { + return window.Store.Features.F; + }); + } + + /** + * Check if Feature is enabled + * @param {string} feature status to check + */ + async checkFeatureStatus(feature) { + return await this.pupPage.evaluate((feature) => { + return window.Store.Features.supportsFeature(feature); + }, feature); + } + + /** + * Enable Features + * @param {string[]} features to be enabled + */ + async enableFeatures(features) { + await this.pupPage.evaluate((features) => { + for (const feature in features) { + window.Store.Features.setFeature(features[feature], true); + } + }, features); + } + + /** + * Disable Features + * @param {string[]} features to be disabled + */ + async disableFeatures(features) { + await this.pupPage.evaluate((features) => { + for (const feature in features) { + window.Store.Features.setFeature(features[feature], false); + } + }, features); + } } module.exports = InterfaceController;