aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/apiMessageEvents.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/apiMessageEvents.ts')
-rw-r--r--src/plugins/apiMessageEvents.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/plugins/apiMessageEvents.ts b/src/plugins/apiMessageEvents.ts
new file mode 100644
index 0000000..79acd32
--- /dev/null
+++ b/src/plugins/apiMessageEvents.ts
@@ -0,0 +1,28 @@
+import definePlugin from "../utils/types";
+
+export default definePlugin({
+ name: "MessageEventsAPI",
+ description: "Api required by anything using message events.",
+ author: "ArjixWasTaken",
+ patches: [
+ {
+ find: "sendMessage:function",
+ replacement: [{
+ match: /(?<=sendMessage:function\(.{1,2},.{1,2},.{1,2},.{1,2}\)){/,
+ replace: "{Vencord.Api.MessageEvents._handlePreSend(...arguments);"
+ }, {
+ match: /(?<=editMessage:function\(.{1,2},.{1,2},.{1,2}\)){/,
+ replace: "{Vencord.Api.MessageEvents._handlePreEdit(...arguments);"
+ }]
+ },
+ {
+ find: "if(e.altKey){",
+ replacement: {
+ match: /\.useClickMessage=function\((.{1,2}),(.{1,2})\).+?function\((.{1,2})\){/,
+ replace: (m, message, channel, event) =>
+ // the message param is shadowed by the event param, so need to alias them
+ `${m.replace("{", `{var _msg=${message};var _chan=${channel};`)}Vencord.Api.MessageEvents._handleClick(_msg, _chan, ${event});`
+ }
+ }
+ ]
+});