Fix multiple plugins for latest Discord update (#3072)

This commit is contained in:
sadan4 2024-12-12 01:47:55 -05:00 committed by Nuckyz
parent 464c4a9b61
commit 2dc8c2bf76
No known key found for this signature in database
GPG key ID: 440BF8296E1C4AD9
9 changed files with 41 additions and 43 deletions

View file

@ -74,9 +74,9 @@ export default definePlugin({
}
},
{
find: 'react-spring: The "interpolate" function',
find: 'The "interpolate" function is deprecated in v10 (use "to" instead)',
replacement: {
match: /,console.warn\('react-spring: The "interpolate" function is deprecated in v10 \(use "to" instead\)'\)/,
match: /,console.warn\(\i\+'The "interpolate" function is deprecated in v10 \(use "to" instead\)'\)/,
replace: ""
}
},
@ -133,7 +133,7 @@ export default definePlugin({
{
find: "Slow dispatch on",
replacement: {
match: /\i\.totalTime>100&&\i\.verbose\("Slow dispatch on ".+?\)\);/,
match: /\i\.totalTime>\i&&\i\.verbose\("Slow dispatch on ".+?\)\);/,
replace: ""
}
},

View file

@ -207,8 +207,8 @@ function makeBypassPatches(): Omit<Patch, "plugin"> {
return {
find: "canUseCustomStickersEverywhere:",
replacement: mapping.map(({ func, predicate }) => ({
match: new RegExp(String.raw`(?<=${func}:function\(\i(?:,\i)?\){)`),
replace: "return true;",
match: new RegExp(String.raw`(?<=${func}:)\i`),
replace: "() => true",
predicate
}))
};
@ -297,8 +297,8 @@ export default definePlugin({
replacement: [
{
// Overwrite incoming connection settings proto with our local settings
match: /CONNECTION_OPEN:function\((\i)\){/,
replace: (m, props) => `${m}$self.handleProtoChange(${props}.userSettingsProto,${props}.user);`
match: /function (\i)\((\i)\){(?=.*CONNECTION_OPEN:\1)/,
replace: (m, funcName, props) => `${m}$self.handleProtoChange(${props}.userSettingsProto,${props}.user);`
},
{
// Overwrite non local proto changes with our local settings

View file

@ -57,7 +57,7 @@ export default definePlugin({
{
// https://regex101.com/r/x2mobQ/1
// searchEmojis(...,maxCount: stuff) ... endEmojis = emojis.slice(0, maxCount - gifResults.length)
match: /,maxCount:(\i)(.{1,500}\i)=(\i)\.slice\(0,(\i-\i\.length)\)/,
match: /,maxCount:(\i)(.{1,500}\i)=(\i)\.slice\(0,(Math\.max\(\i,\i(?:-\i\.length){2})\)/,
// ,maxCount:Infinity ... endEmojis = (emojis.sliceTo = n, emojis)
replace: ",maxCount:Infinity$2=($3.sliceTo = $4, $3)"
}

View file

@ -346,35 +346,35 @@ export default definePlugin({
replacement: [
{
// Add deleted=true to all target messages in the MESSAGE_DELETE event
match: /MESSAGE_DELETE:function\((\i)\){let.+?((?:\i\.){2})getOrCreate.+?},/,
match: /function (?=.+?MESSAGE_DELETE:(\i))\1\((\i)\){let.+?((?:\i\.){2})getOrCreate.+?}(?=function)/,
replace:
"MESSAGE_DELETE:function($1){" +
" var cache = $2getOrCreate($1.channelId);" +
" cache = $self.handleDelete(cache, $1, false);" +
" $2commit(cache);" +
"},"
"function $1($2){" +
" var cache = $3getOrCreate($2.channelId);" +
" cache = $self.handleDelete(cache, $2, false);" +
" $3commit(cache);" +
"}"
},
{
// Add deleted=true to all target messages in the MESSAGE_DELETE_BULK event
match: /MESSAGE_DELETE_BULK:function\((\i)\){let.+?((?:\i\.){2})getOrCreate.+?},/,
match: /function (?=.+?MESSAGE_DELETE_BULK:(\i))\1\((\i)\){let.+?((?:\i\.){2})getOrCreate.+?}(?=function)/,
replace:
"MESSAGE_DELETE_BULK:function($1){" +
" var cache = $2getOrCreate($1.channelId);" +
" cache = $self.handleDelete(cache, $1, true);" +
" $2commit(cache);" +
"},"
"function $1($2){" +
" var cache = $3getOrCreate($2.channelId);" +
" cache = $self.handleDelete(cache, $2, true);" +
" $3commit(cache);" +
"}"
},
{
// Add current cached content + new edit time to cached message's editHistory
match: /(MESSAGE_UPDATE:function\((\i)\).+?)\.update\((\i)/,
match: /(function (\i)\((\i)\).+?)\.update\((\i)(?=.*MESSAGE_UPDATE:\2)/,
replace: "$1" +
".update($3,m =>" +
" (($2.message.flags & 64) === 64 || $self.shouldIgnore($2.message, true)) ? m :" +
" $2.message.edited_timestamp && $2.message.content !== m.content ?" +
" m.set('editHistory',[...(m.editHistory || []), $self.makeEdit($2.message, m)]) :" +
".update($4,m =>" +
" (($3.message.flags & 64) === 64 || $self.shouldIgnore($3.message, true)) ? m :" +
" $3.message.edited_timestamp && $3.message.content !== m.content ?" +
" m.set('editHistory',[...(m.editHistory || []), $self.makeEdit($3.message, m)]) :" +
" m" +
")" +
".update($3"
".update($4"
},
{
// fix up key (edit last message) attempting to edit a deleted message
@ -488,12 +488,12 @@ export default definePlugin({
find: '"ReferencedMessageStore"',
replacement: [
{
match: /MESSAGE_DELETE:function\((\i)\).+?},/,
replace: "MESSAGE_DELETE:function($1){},"
match: /MESSAGE_DELETE:\i,/,
replace: "MESSAGE_DELETE:()=>{},"
},
{
match: /MESSAGE_DELETE_BULK:function\((\i)\).+?},/,
replace: "MESSAGE_DELETE_BULK:function($1){},"
match: /MESSAGE_DELETE_BULK:\i,/,
replace: "MESSAGE_DELETE_BULK:()=>{},"
}
]
},

View file

@ -183,8 +183,8 @@ export default definePlugin({
{
find: ".ORIGINAL_POSTER=",
replacement: {
match: /\((\i)=\{\}\)\)\[(\i)\.BOT/,
replace: "($1=$self.getTagTypes()))[$2.BOT"
match: /(?=(\i)\[\i\.BOT)/,
replace: "$self.genTagTypes($1);"
}
},
{
@ -280,8 +280,7 @@ export default definePlugin({
.filter(Boolean);
},
getTagTypes() {
const obj = {};
genTagTypes(obj) {
let i = 100;
tags.forEach(({ name }) => {
obj[name] = ++i;
@ -291,7 +290,6 @@ export default definePlugin({
obj[`${name}-OP`] = ++i;
obj[i] = `${name}-OP`;
});
return obj;
},
isOPTag: (tag: number) => tag === Tag.Types.ORIGINAL_POSTER || tags.some(t => tag === Tag.Types[`${t.name}-OP`]),

View file

@ -54,8 +54,8 @@ export default definePlugin({
predicate: () => Settings.plugins.NoBlockedMessages.ignoreBlockedMessages === true,
replacement: [
{
match: /(?<=MESSAGE_CREATE:function\((\i)\){)/,
replace: (_, props) => `if($self.isBlocked(${props}.message))return;`
match: /(?<=function (\i)\((\i)\){)(?=.*MESSAGE_CREATE:\1)/,
replace: (_, _funcName, props) => `if($self.isBlocked(${props}.message))return;`
}
]
}))

View file

@ -74,10 +74,10 @@ export default definePlugin({
// This prevents the Message Requests tab from always hiding due to the previous patch (and is compatible with spam requests)
// In short, only the red badge is hidden. Button visibility behavior isn't changed.
{
find: ".getSpamChannelsCount()",
find: ".getSpamChannelsCount();return",
predicate: () => settings.store.hideMessageRequestsCount,
replacement: {
match: /(?<=getSpamChannelsCount\(\),\i=)\i\.getMessageRequestsCount\(\)/,
match: /(?<=getSpamChannelsCount\(\);return )\i\.getMessageRequestsCount\(\)/,
replace: "$self.getRealMessageRequestCount()"
}
},

View file

@ -94,7 +94,7 @@ export default definePlugin({
find: "AudioContextSettingsMigrated",
replacement: [
{
match: /(?<=isLocalMute\(\i,\i\),volume:.+?volume:)\i(?=})/,
match: /(?<=isLocalMute\(\i,\i\),volume:(\i).+?\i\(\i,\i,)\1(?=\))/,
replace: "$&>200?200:$&"
},
{
@ -109,7 +109,7 @@ export default definePlugin({
},
// Prevent the MediaEngineStore from overwriting our LocalVolumes above 200 with the ones the Discord Audio Context Settings sync sends
{
find: '"MediaEngineStore"',
find: '="MediaEngineStore",',
replacement: [
{
match: /(\.settings\.audioContextSettings.+?)(\i\[\i\])=(\i\.volume)(.+?setLocalVolume\(\i,).+?\)/,

View file

@ -113,8 +113,8 @@ export default definePlugin({
{
find: '"MessageReactionsStore"',
replacement: {
match: /(?<=CONNECTION_OPEN:function\(\){)(\i)={}/,
replace: "$&;$self.reactions=$1"
match: /function (\i)\(\){(\i)={}(?=.*CONNECTION_OPEN:\1)/,
replace: "$&;$self.reactions=$2;"
}
},
{