Encryptcord Fix (#235)
Some checks are pending
Test / Test (push) Waiting to run

* Encryptcord Fix

* FixName

* Update index.tsx

* Update constants.ts

* Update constants.ts

* Update index.tsx

* Final fix
This commit is contained in:
ItsAlex 2025-04-19 02:37:05 +02:00 committed by GitHub
parent 179b56e57f
commit 851fc84e66
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 8 deletions

View file

@ -12,7 +12,7 @@ import {
} from "@api/Commands"; } from "@api/Commands";
import * as DataStore from "@api/DataStore"; import * as DataStore from "@api/DataStore";
import { addMessagePreSendListener, MessageSendListener, removeMessagePreSendListener } from "@api/MessageEvents"; import { addMessagePreSendListener, MessageSendListener, removeMessagePreSendListener } from "@api/MessageEvents";
import { Devs } from "@utils/constants"; import { Devs, EquicordDevs } from "@utils/constants";
import { sleep } from "@utils/misc"; import { sleep } from "@utils/misc";
import definePlugin from "@utils/types"; import definePlugin from "@utils/types";
import { import {
@ -140,7 +140,7 @@ const ChatBarIcon: ChatBarButtonFactory = ({ isMainChat }) => {
export default definePlugin({ export default definePlugin({
name: "Encryptcord", name: "Encryptcord",
description: "End-to-end encryption in Discord!", description: "End-to-end encryption in Discord!",
authors: [Devs.Inbestigator], authors: [Devs.Inbestigator, EquicordDevs.ItsAlex],
patches: [ patches: [
{ {
find: "INTERACTION_APPLICATION_COMMAND_INVALID_VERSION", find: "INTERACTION_APPLICATION_COMMAND_INVALID_VERSION",
@ -360,18 +360,28 @@ async function handleGroupData(groupData) {
// Handle joining group // Handle joining group
async function handleJoin(senderId: string, senderKey: string, encryptcordGroupMembers: object) { async function handleJoin(senderId: string, senderKey: string, encryptcordGroupMembers: object) {
encryptcordGroupMembers[senderId] = { key: senderKey, parent: UserStore.getCurrentUser().id, child: null }; const currentUserId = UserStore.getCurrentUser().id;
encryptcordGroupMembers[UserStore.getCurrentUser().id].child = senderId;
if (!encryptcordGroupMembers[senderId]) {
encryptcordGroupMembers[senderId] = { key: senderKey, parent: currentUserId, child: null };
}
if (!encryptcordGroupMembers[currentUserId]) {
encryptcordGroupMembers[currentUserId] = { key: "", parent: null, child: null };
}
encryptcordGroupMembers[currentUserId].child = senderId;
await DataStore.set("encryptcordGroupMembers", encryptcordGroupMembers); await DataStore.set("encryptcordGroupMembers", encryptcordGroupMembers);
const groupChannel = await DataStore.get("encryptcordChannelId"); const groupChannel = await DataStore.get("encryptcordChannelId");
const newMember = await UserUtils.getUser(senderId).catch(() => null); const newMember = await UserUtils.getUser(senderId).catch(() => null);
if (!newMember) return; if (!newMember) return;
const membersData = {}; const membersData = {};
Object.entries(encryptcordGroupMembers) Object.entries(encryptcordGroupMembers).forEach(([memberId, value]) => {
.forEach(([memberId, value]) => { membersData[memberId] = value;
membersData[memberId] = value; });
});
const membersDataString = JSON.stringify({ members: membersData, channel: groupChannel }); const membersDataString = JSON.stringify({ members: membersData, channel: groupChannel });
@ -382,6 +392,7 @@ async function handleJoin(senderId: string, senderKey: string, encryptcordGroupM
}); });
await Promise.all(dmPromises); await Promise.all(dmPromises);
await MessageActions.receiveMessage(groupChannel, { await MessageActions.receiveMessage(groupChannel, {
...await createMessage("", senderId, groupChannel, 7), components: [{ ...await createMessage("", senderId, groupChannel, 7), components: [{
type: 1, type: 1,

View file

@ -1042,6 +1042,10 @@ export const EquicordDevs = Object.freeze({
name: "smuki", name: "smuki",
id: 691517398523576331n id: 691517398523576331n
}, },
ItsAlex: {
name: "ItsAlex",
id: 551023598203043840n
},
} satisfies Record<string, Dev>); } satisfies Record<string, Dev>);
// iife so #__PURE__ works correctly // iife so #__PURE__ works correctly