MLE: Hide From Other Loggers
This commit is contained in:
parent
b0332be1f5
commit
06c4f25a86
3 changed files with 37 additions and 9 deletions
|
|
@ -41,12 +41,7 @@ let oldGetMessage: typeof MessageStore.getMessage;
|
|||
|
||||
const handledMessageIds = new Set();
|
||||
async function messageDeleteHandler(payload: MessageDeletePayload & { isBulk: boolean; }) {
|
||||
if (payload.mlDeleted) {
|
||||
if (settings.store.permanentlyRemoveLogByDefault)
|
||||
await idb.deleteMessageIDB(payload.id);
|
||||
|
||||
return;
|
||||
}
|
||||
if (payload.mlDeleted) return;
|
||||
|
||||
if (handledMessageIds.has(payload.id)) {
|
||||
// Flogger.warn("skipping duplicate message", payload.id);
|
||||
|
|
|
|||
|
|
@ -98,10 +98,10 @@ export const settings = definePluginSettings({
|
|||
description: "Always log current selected channel. Blacklisted channels/users will still be ignored.",
|
||||
},
|
||||
|
||||
permanentlyRemoveLogByDefault: {
|
||||
hideMessageFromMessageLoggers: {
|
||||
default: false,
|
||||
type: OptionType.BOOLEAN,
|
||||
description: "Vencord's base MessageLogger remove log button will delete logs permanently",
|
||||
description: "When enabled, a context menu button will be added to messages to allow you to delete messages without them being logged by other loggers. Might not be safe, use at your own risk."
|
||||
},
|
||||
|
||||
ShowLogsButton: {
|
||||
|
|
@ -117,6 +117,12 @@ export const settings = definePluginSettings({
|
|||
description: "Number of messages to display at once in logs & number of messages to load when loading more messages in logs.",
|
||||
},
|
||||
|
||||
hideMessageFromMessageLoggersDeletedMessage: {
|
||||
default: "redacted eh",
|
||||
type: OptionType.STRING,
|
||||
description: "The message content to replace the message with when using the hide message from message loggers feature.",
|
||||
},
|
||||
|
||||
messageLimit: {
|
||||
default: 200,
|
||||
type: OptionType.NUMBER,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
import { addContextMenuPatch, NavContextMenuPatchCallback, removeContextMenuPatch } from "@api/ContextMenu";
|
||||
import { FluxDispatcher, Menu, React, Toasts } from "@webpack/common";
|
||||
import { FluxDispatcher, Menu, MessageActions, React, Toasts, UserStore } from "@webpack/common";
|
||||
|
||||
import { openLogModal } from "../components/LogsModal";
|
||||
import { deleteMessageIDB } from "../db";
|
||||
|
|
@ -114,6 +114,33 @@ export const contextMenuPath: NavContextMenuPatchCallback = (children, props) =>
|
|||
{renderListOption("whitelistedIds", IdType as idKeys, props)}
|
||||
</React.Fragment>
|
||||
))}
|
||||
{
|
||||
settings.store.hideMessageFromMessageLoggers
|
||||
&& props.navId === "message"
|
||||
&& props.message?.author?.id === UserStore.getCurrentUser().id
|
||||
&& props.message?.deleted === false
|
||||
&& (
|
||||
<>
|
||||
<Menu.MenuSeparator />
|
||||
<Menu.MenuItem
|
||||
id="hide-from-message-loggers"
|
||||
label="Delete Message (Hide From Message Loggers)"
|
||||
color="danger"
|
||||
|
||||
action={async () => {
|
||||
await MessageActions.deleteMessage(props.message.channel_id, props.message.id);
|
||||
MessageActions._sendMessage(props.message.channel_id, {
|
||||
"content": settings.store.hideMessageFromMessageLoggersDeletedMessage,
|
||||
"tts": false,
|
||||
"invalidEmojis": [],
|
||||
"validNonShortcutEmojis": []
|
||||
}, { nonce: props.message.id });
|
||||
}}
|
||||
|
||||
/>
|
||||
</>
|
||||
)
|
||||
}
|
||||
</Menu.MenuItem>
|
||||
);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue