Created
October 4, 2024 15:16
-
-
Save kyeshmz/a1439b10f1d659831941ee0d2d6e8953 to your computer and use it in GitHub Desktop.
Revisions
-
kyeshmz renamed this gist
Oct 4, 2024 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
kyeshmz created this gist
Oct 4, 2024 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,80 @@ /** * @name RemovePeriodPlugin * @version 2.0.0 * @description Removes periods at the end of sentences from incoming and historical Discord messages. * @author Kye Shimizu */ module.exports = class RemovePeriodPlugin { // Called when the plugin is enabled start() { this.modifyIncomingMessages(); this.modifyMessageHistory(); } // Called when the plugin is disabled stop() { this.removeIncomingMessageModification(); this.removeMessageHistoryModification(); } // Hook into incoming messages modifyIncomingMessages() { const messageModule = BdApi.findModuleByProps("getMessages"); const originalAddMessage = messageModule.__proto__.addMessage; const modifyMessageContent = (message) => { if (message.content.endsWith(".")) { message.content = message.content.slice(0, -1); } return message; }; messageModule.__proto__.addMessage = function (channelId, message) { message = modifyMessageContent(message); return originalAddMessage.apply(this, arguments); }; this._originalAddMessage = originalAddMessage; } // Restore original functionality for incoming messages when the plugin is stopped removeIncomingMessageModification() { const messageModule = BdApi.findModuleByProps("getMessages"); if (this._originalAddMessage) { messageModule.__proto__.addMessage = this._originalAddMessage; } } // Hook into message history (already loaded messages) modifyMessageHistory() { const messageModule = BdApi.findModuleByProps("getMessages"); const originalGetMessages = messageModule.__proto__.getMessages; const modifyMessageHistoryContent = (messages) => { messages._array.forEach((message) => { if (message.content.endsWith(".")) { message.content = message.content.slice(0, -1); } }); return messages; }; messageModule.__proto__.getMessages = function (channelId) { const messages = originalGetMessages.apply(this, arguments); return modifyMessageHistoryContent(messages); }; this._originalGetMessages = originalGetMessages; } // Restore original functionality for message history when the plugin is stopped removeMessageHistoryModification() { const messageModule = BdApi.findModuleByProps("getMessages"); if (this._originalGetMessages) { messageModule.__proto__.getMessages = this._originalGetMessages; } } };