|
|
|
@ -39,6 +39,7 @@ const StickerStore = findStoreLazy("StickersStore") as {
|
|
|
|
|
|
|
|
|
|
const UserSettingsProtoStore = findStoreLazy("UserSettingsProtoStore");
|
|
|
|
|
const ProtoUtils = findByPropsLazy("BINARY_READ_OPTIONS");
|
|
|
|
|
const RoleSubscriptionEmojiUtils = findByPropsLazy("isUnusableRoleSubscriptionEmoji");
|
|
|
|
|
|
|
|
|
|
function searchProtoClassField(localName: string, protoClass: any) {
|
|
|
|
|
const field = protoClass?.fields?.find((field: any) => field.localName === localName);
|
|
|
|
@ -408,6 +409,15 @@ export default definePlugin({
|
|
|
|
|
match: /canUseCustomNotificationSounds:function\(\i\){/,
|
|
|
|
|
replace: "$&return true;"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// Allows the usage of subscription-locked emojis
|
|
|
|
|
{
|
|
|
|
|
find: "isUnusableRoleSubscriptionEmoji:function",
|
|
|
|
|
replacement: {
|
|
|
|
|
match: /isUnusableRoleSubscriptionEmoji:function/,
|
|
|
|
|
// replace the original export with a func that always returns false and alias the original
|
|
|
|
|
replace: "isUnusableRoleSubscriptionEmoji:()=>()=>false,isUnusableRoleSubscriptionEmojiOriginal:function"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
@ -804,6 +814,9 @@ export default definePlugin({
|
|
|
|
|
if (e.require_colons === false) return true;
|
|
|
|
|
if (e.available === false) return false;
|
|
|
|
|
|
|
|
|
|
const isUnusableRoleSubEmoji = RoleSubscriptionEmojiUtils.isUnusableRoleSubscriptionEmojiOriginal ?? RoleSubscriptionEmojiUtils.isUnusableRoleSubscriptionEmoji;
|
|
|
|
|
if (isUnusableRoleSubEmoji(e, this.guildId)) return false;
|
|
|
|
|
|
|
|
|
|
if (this.canUseEmotes)
|
|
|
|
|
return e.guildId === this.guildId || hasExternalEmojiPerms(channelId);
|
|
|
|
|
else
|
|
|
|
|