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

View file

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