mirror of
https://github.com/Equicord/Equicord.git
synced 2025-06-12 16:13:02 -04:00
i fixed some stuff (#218)
* i fixed some stuff * Update index.tsx * removed useless stuff * Update pnpm-lock.yaml * Update index.tsx * Update http.ts --------- Co-authored-by: thororen1234 <78185467+thororen1234@users.noreply.github.com>
This commit is contained in:
parent
1e311b8d9c
commit
1e5a600213
3 changed files with 63 additions and 30 deletions
|
@ -8,11 +8,10 @@ import { showNotification } from "@api/Notifications";
|
||||||
import { definePluginSettings } from "@api/Settings";
|
import { definePluginSettings } from "@api/Settings";
|
||||||
import { EquicordDevs } from "@utils/constants";
|
import { EquicordDevs } from "@utils/constants";
|
||||||
import definePlugin, { OptionType } from "@utils/types";
|
import definePlugin, { OptionType } from "@utils/types";
|
||||||
|
import { findStoreLazy } from "@webpack";
|
||||||
import {
|
import {
|
||||||
ChannelStore,
|
ChannelStore,
|
||||||
FluxDispatcher,
|
|
||||||
GuildStore,
|
GuildStore,
|
||||||
MessageStore,
|
|
||||||
NavigationRouter,
|
NavigationRouter,
|
||||||
PresenceStore,
|
PresenceStore,
|
||||||
RelationshipStore,
|
RelationshipStore,
|
||||||
|
@ -20,22 +19,19 @@ import {
|
||||||
UserStore
|
UserStore
|
||||||
} from "@webpack/common";
|
} from "@webpack/common";
|
||||||
|
|
||||||
|
const UserGuildSettingsStore = findStoreLazy("UserGuildSettingsStore");
|
||||||
|
|
||||||
const settings = definePluginSettings({
|
const settings = definePluginSettings({
|
||||||
friends: {
|
friends: {
|
||||||
type: OptionType.BOOLEAN,
|
type: OptionType.BOOLEAN,
|
||||||
default: true,
|
default: false,
|
||||||
description: "Notify when friends message you (non-@ mentions)"
|
description: "Notify when friends send messages in servers"
|
||||||
},
|
},
|
||||||
mentions: {
|
mentions: {
|
||||||
type: OptionType.BOOLEAN,
|
type: OptionType.BOOLEAN,
|
||||||
default: true,
|
default: true,
|
||||||
description: "Notify when someone @mentions you directly"
|
description: "Notify when someone @mentions you directly"
|
||||||
},
|
},
|
||||||
replies: {
|
|
||||||
type: OptionType.BOOLEAN,
|
|
||||||
default: true,
|
|
||||||
description: "Notify when someone replies to your messages"
|
|
||||||
},
|
|
||||||
dms: {
|
dms: {
|
||||||
type: OptionType.BOOLEAN,
|
type: OptionType.BOOLEAN,
|
||||||
default: true,
|
default: true,
|
||||||
|
@ -44,11 +40,16 @@ const settings = definePluginSettings({
|
||||||
showInActive: {
|
showInActive: {
|
||||||
type: OptionType.BOOLEAN,
|
type: OptionType.BOOLEAN,
|
||||||
default: false,
|
default: false,
|
||||||
description: "Show notifications even for current active channel"
|
description: "Show notifications even for currently active channel"
|
||||||
|
},
|
||||||
|
ignoreMuted: {
|
||||||
|
type: OptionType.BOOLEAN,
|
||||||
|
default: true,
|
||||||
|
description: "Skip notifications from muted servers, channels, or users"
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function formatContent(message: any) {
|
function formatContent(message) {
|
||||||
let content = message.content || "";
|
let content = message.content || "";
|
||||||
message.mentions?.forEach(user => {
|
message.mentions?.forEach(user => {
|
||||||
content = content.replace(new RegExp(`<@!?${user.id}>`, "g"), `@${user.username}`);
|
content = content.replace(new RegExp(`<@!?${user.id}>`, "g"), `@${user.username}`);
|
||||||
|
@ -56,40 +57,75 @@ function formatContent(message: any) {
|
||||||
return content.slice(0, 200) + (content.length > 200 ? "..." : "");
|
return content.slice(0, 200) + (content.length > 200 ? "..." : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function checkIfMuted(channel) {
|
||||||
|
if (!settings.store.ignoreMuted) return false;
|
||||||
|
if (!channel) return false;
|
||||||
|
|
||||||
|
if (channel.isMuted?.()) return true;
|
||||||
|
|
||||||
|
const isDM = [1, 3].includes(channel.type);
|
||||||
|
if (isDM) {
|
||||||
|
const recipientIds = channel.recipients || [];
|
||||||
|
for (const userId of recipientIds) {
|
||||||
|
if (RelationshipStore.isBlocked(userId)) return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (UserGuildSettingsStore?.getMutedChannels?.()?.includes?.(channel.id)) return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (channel.guild_id) {
|
||||||
|
const guild = GuildStore.getGuild(channel.guild_id);
|
||||||
|
if (UserGuildSettingsStore.isMuted(channel.guild_id)) return true;
|
||||||
|
|
||||||
|
if (UserGuildSettingsStore?.isMuted?.(channel.guild_id)) return true;
|
||||||
|
if (UserGuildSettingsStore?.isChannelMuted?.(channel.guild_id, channel.id)) return true;
|
||||||
|
if (UserGuildSettingsStore?.isCategoryMuted?.(channel.guild_id, channel.id)) return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isUserBlocked(userId) {
|
||||||
|
return settings.store.ignoreMuted && RelationshipStore.isBlocked?.(userId);
|
||||||
|
}
|
||||||
|
|
||||||
export default definePlugin({
|
export default definePlugin({
|
||||||
name: "PingNotifications",
|
name: "PingNotifications",
|
||||||
description: "Customizable notifications with improved mention formatting",
|
description: "Customizable notifications with improved mention formatting",
|
||||||
authors: [EquicordDevs.smuki],
|
authors: [EquicordDevs.smuki],
|
||||||
settings,
|
settings,
|
||||||
|
|
||||||
flux: {
|
flux: {
|
||||||
async MESSAGE_CREATE({ message }) {
|
MESSAGE_CREATE({ message }) {
|
||||||
try {
|
try {
|
||||||
if (!message?.channel_id || message.state === "SENDING") return;
|
if (!message?.channel_id || message.state === "SENDING") return;
|
||||||
|
|
||||||
const channel = ChannelStore.getChannel(message.channel_id);
|
const channel = ChannelStore.getChannel(message.channel_id);
|
||||||
const currentUser = UserStore.getCurrentUser();
|
const currentUser = UserStore.getCurrentUser();
|
||||||
|
|
||||||
if (!channel || !currentUser || message.author?.id === currentUser.id) return;
|
if (!channel || !currentUser) return;
|
||||||
if ((channel as any).isMuted?.() || (channel.guild_id && (GuildStore.getGuild(channel.guild_id) as any)?.isMuted?.())) return;
|
if (message.author?.id === currentUser.id) return;
|
||||||
|
|
||||||
|
const isDM = [1, 3].includes(channel.type);
|
||||||
|
|
||||||
|
if (checkIfMuted(channel)) return;
|
||||||
|
if (isUserBlocked(message.author.id)) return;
|
||||||
if (!settings.store.showInActive && channel.id === SelectedChannelStore.getChannelId()) return;
|
if (!settings.store.showInActive && channel.id === SelectedChannelStore.getChannelId()) return;
|
||||||
if (PresenceStore.getStatus(currentUser.id) === "dnd") return;
|
if (PresenceStore.getStatus(currentUser.id) === "dnd") return;
|
||||||
|
|
||||||
const author = UserStore.getUser(message.author.id) || { username: "Unknown" };
|
const author = UserStore.getUser(message.author.id) || { username: "Unknown" };
|
||||||
const isDM = [1, 3].includes(channel.type);
|
|
||||||
const channelName = channel.name || (isDM ? "DM" : "Group");
|
const channelName = channel.name || (isDM ? "DM" : "Group");
|
||||||
const body = formatContent(message);
|
const body = formatContent(message);
|
||||||
|
|
||||||
const shouldNotify = (
|
let shouldNotify = false;
|
||||||
(settings.store.mentions && message.mentions?.some(u => u.id === currentUser.id)) ||
|
|
||||||
(settings.store.friends && RelationshipStore.isFriend(message.author.id)) ||
|
if (settings.store.mentions && message.mentions?.some(u => u.id === currentUser.id)) {
|
||||||
(settings.store.replies && message.message_reference?.message_id &&
|
shouldNotify = true;
|
||||||
MessageStore.getMessage(
|
} else if (settings.store.friends && RelationshipStore.isFriend(message.author.id) && !isDM) {
|
||||||
message.message_reference.channel_id || channel.id,
|
shouldNotify = true;
|
||||||
message.message_reference.message_id
|
} else if (isDM && settings.store.dms) {
|
||||||
)?.author.id === currentUser.id
|
shouldNotify = true;
|
||||||
) ||
|
}
|
||||||
(isDM && settings.store.dms)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (shouldNotify) {
|
if (shouldNotify) {
|
||||||
showNotification({
|
showNotification({
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { isLegacyNonAsarVencord } from "@main/patcher";
|
|
||||||
import { get } from "@main/utils/simpleGet";
|
import { get } from "@main/utils/simpleGet";
|
||||||
import { IpcEvents } from "@shared/IpcEvents";
|
import { IpcEvents } from "@shared/IpcEvents";
|
||||||
import { VENCORD_USER_AGENT } from "@shared/vencordUserAgent";
|
import { VENCORD_USER_AGENT } from "@shared/vencordUserAgent";
|
||||||
|
@ -120,8 +119,6 @@ async function migrateAsarToLegacy() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isLegacyNonAsarVencord) migrateAsarToLegacy();
|
|
||||||
|
|
||||||
ipcMain.handle(IpcEvents.GET_REPO, serializeErrors(() => `https://github.com/${gitRemote}`));
|
ipcMain.handle(IpcEvents.GET_REPO, serializeErrors(() => `https://github.com/${gitRemote}`));
|
||||||
ipcMain.handle(IpcEvents.GET_UPDATES, serializeErrors(calculateGitChanges));
|
ipcMain.handle(IpcEvents.GET_UPDATES, serializeErrors(calculateGitChanges));
|
||||||
ipcMain.handle(IpcEvents.UPDATE, serializeErrors(fetchUpdates));
|
ipcMain.handle(IpcEvents.UPDATE, serializeErrors(fetchUpdates));
|
||||||
|
|
|
@ -1039,7 +1039,7 @@ export const EquicordDevs = Object.freeze({
|
||||||
id: 724416180097384498n
|
id: 724416180097384498n
|
||||||
},
|
},
|
||||||
smuki: {
|
smuki: {
|
||||||
name: "sumki",
|
name: "smuki",
|
||||||
id: 691517398523576331n
|
id: 691517398523576331n
|
||||||
},
|
},
|
||||||
} satisfies Record<string, Dev>);
|
} satisfies Record<string, Dev>);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue