Finish rewrite

This commit is contained in:
Vendicated 2022-08-29 22:05:22 +02:00
parent c39ff8f648
commit 483bc13a31
No known key found for this signature in database
GPG key ID: EC781ADFB93EFFA3
15 changed files with 165 additions and 29 deletions

10
src/plugins/STFU.ts Normal file
View file

@ -0,0 +1,10 @@
import definePlugin from "../utils/types";
export default definePlugin({
name: "STFU",
description: "Disabled the fat warning in the DevTools console",
author: "Vendicated",
start() {
window.DiscordNative.window.setDevtoolsCallbacks(null, null);
}
});

View file

@ -0,0 +1,16 @@
import definePlugin from "../utils/types";
export default definePlugin({
name: "MessageClicksApi",
description: "Api required by anything using message click actions",
author: "Vendicated",
patches: [{
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.MessageClicks._handleClick(_msg, _chan, ${event});`
}
}]
});

View file

@ -1,10 +0,0 @@
import definePlugin from '../utils/types';
export default definePlugin({
name: "bar",
description: "Just to test",
author: ["Vendicated"],
start() {
console.log("bar");
}
});

17
src/plugins/clientInfo.ts Normal file
View file

@ -0,0 +1,17 @@
import definePlugin from "../utils/types";
export default definePlugin({
name: "ClientInfo",
description: "Adds extra info to Client Info in settings",
author: "Vendicated",
patches: [{
find: "default.versionHash",
replacement: {
match: /\w\.createElement.+?["']Host ["'].+?\):null/,
replace: m => {
const idx = m.indexOf("Host") - 1;
return `${m},${m.slice(0, idx)}"Vencord ".repeat(50),"1.0.0")," ")`;
}
}
}]
});

View file

@ -0,0 +1,14 @@
import definePlugin from '../utils/types';
export default definePlugin({
name: "Experiments",
author: "Vendicated",
description: "Enable Experiments",
patches: [{
find: "Object.defineProperties(this,{isDeveloper",
replacement: {
match: /(?<={isDeveloper:\{[^}]+,get:function\(\)\{return )\w/,
replace: "true"
}
}]
});

View file

@ -1,10 +0,0 @@
import definePlugin from "../utils/types";
export default definePlugin({
name: "foo",
description: "Just to test",
author: ["Vendicated"],
start() {
console.log("foo");
}
});

View file

@ -0,0 +1,36 @@
import { MessageClicks } from "../api";
import definePlugin from "../utils/types";
import { find, findByProps } from "../utils/webpack";
export default definePlugin({
name: "MessageQuickActions",
description: "Quick Delete, Quick edit",
author: "Vendicated",
start() {
const { deleteMessage, startEditMessage } = findByProps("deleteMessage");
const { can } = findByProps("can", "initialize");
const { Permissions: { MANAGE_MESSAGES } } = find(m => m.Permissions?.MANAGE_MESSAGES);
const { getCurrentUser } = findByProps("getCurrentUser");
let isDeletePressed = false;
document.addEventListener("keydown", e => {
if (e.key === "Backspace") isDeletePressed = true;
});
document.addEventListener("keyup", e => {
if (e.key === "Backspace") isDeletePressed = false;
});
MessageClicks.addListener((msg, chan, event) => {
const isMe = msg.author.id === getCurrentUser().id;
if (!isDeletePressed) {
if (isMe && event.detail >= 2) {
startEditMessage(chan.id, msg.id, msg.content);
event.preventDefault();
}
} else if (isMe || can(MANAGE_MESSAGES, chan)) {
deleteMessage(chan.id, msg.id);
event.preventDefault();
}
});
}
});

31
src/plugins/noTrack.ts Normal file
View file

@ -0,0 +1,31 @@
import definePlugin from "../utils/types";
import { findByProps } from "../utils/webpack";
const DO_NOTHING = () => void 0;
export default definePlugin({
name: "NoTrack",
description: "Disable Discord's tracking and crash reporting",
author: "Vendicated",
start() {
findByProps("getSuperPropertiesBase64", "track").track = DO_NOTHING;
findByProps("submitLiveCrashReport").submitLiveCrashReport = DO_NOTHING;
findByProps("AnalyticsActionHandlers").AnalyticsActionHandlers.handleTrack = DO_NOTHING;
const sentry = window.__SENTRY__;
sentry.logger.disable();
sentry.hub.addBreadcrumb = DO_NOTHING;
sentry.hub.getClient().close(0);
sentry.hub.getScope().clear();
const c = console;
for (const method in c) {
if (c[method].__sentry_original__)
c[method] = c[method].__sentry_original__;
if (c[method].__REACT_DEVTOOLS_ORIGINAL_METHOD__?.__sentry_original__)
c[method].__REACT_DEVTOOLS_ORIGINAL_METHOD__ = c[method].__REACT_DEVTOOLS_ORIGINAL_METHOD__.__sentry_original__;
}
}
});