diff --git a/AppData.zip b/AppData.zip index 2c1423b..b72835b 100644 Binary files a/AppData.zip and b/AppData.zip differ diff --git a/AppData/Actions/editInteractionReply.js b/AppData/Actions/editInteractionReply.js index a52841d..5c29086 100644 --- a/AppData/Actions/editInteractionReply.js +++ b/AppData/Actions/editInteractionReply.js @@ -2,11 +2,13 @@ module.exports = { data: { messageContent: "", storeAs: "", + interactionFrom: "", interaction: "", actionRows: [], name: "Edit Interaction Reply", ExtraData: "", sendTo: "", + editMessageContent: true }, UI: { compatibleWith: ["Text", "Event"], @@ -14,6 +16,10 @@ module.exports = { sepbar: "", btext: "Message Content", largeInput: "messageContent", + toggle: { + name: "Edit Message Content?", + storeAs: "editMessageContent" + }, sepbar0: "", customMenu: { name: "Components", @@ -229,6 +235,10 @@ module.exports = { }, storeAs: "actionRows", }, + toggle0: { + name: "Edit Message Components?", + storeAs: "editMessageComponents" + }, sepbar1: "", customMenu0: { name: "Embeds", @@ -308,11 +318,15 @@ module.exports = { }, storeAs: "embeds", }, + toggle1: { + name: "Edit Message Embeds?", + storeAs: "editMessageEmbeds" + }, sepbar2: "", btext0: "Interaction Variable", input_direct: "interaction" }, - subtitle: "Content: $[messageContent]$ - Interaction From: $[messageVariable]$", + subtitle: "Content: $[messageContent]$ - Interaction From: $[interactionFrom]$", async run(values, message, client, bridge) { let actionRunner = bridge.runner const { @@ -592,22 +606,33 @@ module.exports = { } }; - let messageToEdit = bridge.variables[varTools.transf(values.interaction, bridge.variables)] + let messageToEdit = await bridge.variables[varTools.transf(values.interaction, bridge.variables)] - let msg = await messageToEdit - .editOriginal({ - content: varTools.transf(values.messageContent, bridge.variables), - embeds: embeds, - components: endComponents, - }) + let original = await messageToEdit.getOriginal() - if (values.storeAs != "") { - bridge.variables[values.storeAs] = msg; - } - messageStorage = msg; - client.on("interactionCreate", handleInteraction); - setTimeout(() => { - client.off("interactionCreate", handleInteraction); - }, highestTimeDenominator * 1000); + let msg = await messageToEdit + .editOriginal({ + content: values.editMessageContent ? varTools.transf(values.messageContent, bridge.variables) : original.content, + embeds: values.editMessageEmbeds ? embeds : original.embeds, + components: values.editMessageComponents ? endComponents : original.components, + }) + + + + if (values.storeAs != "") { + bridge.variables[values.storeAs] = msg; + } + messageStorage = msg; + + if (!values.editMessageComponents) return; + + client.off("interactionCreate", bridge.variables.globalActionCache[msg.id]) + + bridge.variables.globalActionCache[msg.id] = handleInteraction; + + client.on("interactionCreate", handleInteraction); + setTimeout(() => { + client.off("interactionCreate", handleInteraction); + }, highestTimeDenominator * 1000); }, -}; +}; \ No newline at end of file diff --git a/AppData/Actions/editInteractionReply_slash.js b/AppData/Actions/editInteractionReply_slash.js index 732c5ee..0190c3a 100644 --- a/AppData/Actions/editInteractionReply_slash.js +++ b/AppData/Actions/editInteractionReply_slash.js @@ -8,6 +8,7 @@ module.exports = { name: "Edit Interaction Reply", ExtraData: "", sendTo: "", + editMessageContent: true }, UI: { compatibleWith: ["Slash"], @@ -15,6 +16,10 @@ module.exports = { sepbar: "", btext: "Message Content", largeInput: "messageContent", + toggle: { + name: "Edit Message Content?", + storeAs: "editMessageContent" + }, sepbar0: "", customMenu: { name: "Components", @@ -230,6 +235,10 @@ module.exports = { }, storeAs: "actionRows", }, + toggle0: { + name: "Edit Message Components?", + storeAs: "editMessageComponents" + }, sepbar1: "", customMenu0: { name: "Embeds", @@ -309,6 +318,10 @@ module.exports = { }, storeAs: "embeds", }, + toggle1: { + name: "Edit Message Embeds?", + storeAs: "editMessageEmbeds" + }, sepbar2: "", btext0: "Get Interaction Via", menuBar: { @@ -323,7 +336,7 @@ module.exports = { } } }, - subtitle: "Content: $[messageContent]$ - Interaction From: $[messageVariable]$", + subtitle: "Content: $[messageContent]$ - Interaction From: $[interactionFrom]$", async run(values, message, client, bridge) { let actionRunner = bridge.runner const { @@ -604,27 +617,38 @@ module.exports = { }; let messageToEdit; - if (values.interactionFrom == 'Command Interaction') { - messageToEdit = message; + messageToEdit = await message; } else { - messageToEdit = bridge.variables[varTools.transf(values.interaction, bridge.variables)] + messageToEdit = await bridge.variables[varTools.transf(values.interaction, bridge.variables)] } - let msg = await messageToEdit - .editOriginal({ - content: varTools.transf(values.messageContent, bridge.variables), - embeds: embeds, - components: endComponents, - }) - if (values.storeAs != "") { - bridge.variables[values.storeAs] = msg; - } - messageStorage = msg; - client.on("interactionCreate", handleInteraction); - setTimeout(() => { - client.off("interactionCreate", handleInteraction); - }, highestTimeDenominator * 1000); + let original = await messageToEdit.getOriginal() + + let msg = await messageToEdit + .editOriginal({ + content: values.editMessageContent ? varTools.transf(values.messageContent, bridge.variables) : original.content, + embeds: values.editMessageEmbeds ? embeds : original.embeds, + components: values.editMessageComponents ? endComponents : original.components, + }) + + + if (values.storeAs != "") { + bridge.variables[values.storeAs] = msg; + } + + messageStorage = msg; + + if (!values.editMessageComponents) return; + + client.off("interactionCreate", bridge.variables.globalActionCache[msg.id]) + + bridge.variables.globalActionCache[msg.id] = handleInteraction; + + client.on("interactionCreate", handleInteraction); + setTimeout(() => { + client.off("interactionCreate", handleInteraction); + }, highestTimeDenominator * 1000); }, }; diff --git a/AppData/Actions/editMessage.js b/AppData/Actions/editMessage.js index a0a5380..578ef91 100644 --- a/AppData/Actions/editMessage.js +++ b/AppData/Actions/editMessage.js @@ -14,6 +14,10 @@ module.exports = { sepbar: "", btext: "Message Content", largeInput: "messageContent", + toggle: { + name: "Edit Message Content?", + storeAs: "editMessageContent" + }, sepbar0: "", customMenu: { name: "Components", @@ -229,6 +233,10 @@ module.exports = { }, storeAs: "actionRows", }, + toggle0: { + name: "Edit Message Components?", + storeAs: "editMessageComponents" + }, sepbar1: "", customMenu0: { name: "Embeds", @@ -308,6 +316,10 @@ module.exports = { }, storeAs: "embeds", }, + toggle1: { + name: "Edit Message Embeds?", + storeAs: "editMessageEmbeds" + }, sepbar2: "", btext0: "Message Variable", input_direct: "messageVariable" @@ -594,19 +606,31 @@ module.exports = { let messageToEdit = bridge.variables[varTools.transf(values.messageVariable, bridge.variables)] let msg = await messageToEdit - msg.edit({ - content: varTools.transf(values.messageContent, bridge.variables), - embeds: embeds, - components: endComponents, + + let original = msg; /* yes im lazying out cry ab it */ + await msg.edit({ + content: values.editMessageContent ? varTools.transf(values.messageContent, bridge.variables) : original.content, + embeds: values.editMessageEmbeds ? embeds : original.embeds, + components: values.editMessageComponents ? endComponents : original.components, }) + bridge.data.global[msg.id] = handleInteraction; + if (values.storeAs != "") { - bridge.variables[values.storeAs] = msg; + bridge.variables[values.storeAs] = {...msg, handleInteractionMethod: handleInteraction}; } + messageStorage = msg; + + if (!values.editMessageComponents) return; + + client.off("interactionCreate", bridge.variables.globalActionCache[msg.id]) + + bridge.variables.globalActionCache[msg.id] = handleInteraction; + client.on("interactionCreate", handleInteraction); setTimeout(() => { client.off("interactionCreate", handleInteraction); }, highestTimeDenominator * 1000); }, -}; +}; \ No newline at end of file diff --git a/AppData/Actions/getGuildChannelList.js b/AppData/Actions/getGuildChannelList.js index f8f1395..6494b8f 100644 --- a/AppData/Actions/getGuildChannelList.js +++ b/AppData/Actions/getGuildChannelList.js @@ -2,7 +2,7 @@ module.exports = { data: { name: "Get Guild Channels List", storeAs: "", get: "IDs" }, UI: { - compatibleWith: ["Text", "Slash"], + compatibleWith: ["Any"], text: "Get Guild Channels List", sepbar: "", diff --git a/AppData/Actions/getGuildData.js b/AppData/Actions/getGuildData.js new file mode 100644 index 0000000..8699003 --- /dev/null +++ b/AppData/Actions/getGuildData.js @@ -0,0 +1,61 @@ +module.exports = { + data: {"name":"Get Guild Data", + "dataName":"", + "storeAs":"", + "guildFrom":"Command Author", + "guild":""}, + + UI: {"compatibleWith":["Any"], + + "text":"Get Guild Data", + + "sepbar":"", + + "btext":"Get Guild Via", + "menuBar":{"choices":["Command Guild", "ID*", "Variable*"], storeAs:"guildFrom", extraField:"guild"}, + + "sepbar1":"", + + "btext0":"Data Name", + "input*":"dataName", + + "sepbar0":"", + + "btext1":"Store As", + "input!":"storeAs", + + "variableSettings":{ + "guild": { + "Variable*": "direct", + "Command Author": "novars" + } + } + }, + subtitle: "Guild: $[guildFrom]$ - Data Name: $[dataName]$ - Store As: $[storeAs]$", + async run(values, message, client, bridge) { + let varTools = require(`../Toolkit/variableTools.js`) + + var storedData = bridge.data.IO.get() + if (values.guildFrom == 'Command Guild') { + guild = message.guild + } + if (values.guildFrom == 'Variable*') { + guild = bridge.variables[varTools.transf(values.guild, bridge.variables)] + } + if (values.guildFrom == 'ID*') { + guild = client.guilds.get(varTools.transf(values.guild, bridge.variables)) + } + + let guildData = undefined; + + try { + guildData = storedData.guilds[guild.id][varTools.transf(values.dataName, bridge.variables)]; + } catch (error) { + guildData = '' + storedData.guilds[guild.id] = {} + bridge.data.IO.write(storedData) + } + + bridge.variables[varTools.transf(values.storeAs, bridge.variables)] = guildData + } +} \ No newline at end of file diff --git a/AppData/Actions/getGuildMembersList.js b/AppData/Actions/getGuildMembersList.js index 420569f..4f74bb3 100644 --- a/AppData/Actions/getGuildMembersList.js +++ b/AppData/Actions/getGuildMembersList.js @@ -2,7 +2,7 @@ module.exports = { data: { name: "Get Guild Members List", storeAs: "", get: "IDs" }, UI: { - compatibleWith: ["Text", "Slash"], + compatibleWith: ["Any"], text: "Get Guild Members List", sepbar: "", diff --git a/AppData/Actions/getGuildRolesList.js b/AppData/Actions/getGuildRolesList.js index 5f21003..d6032a8 100644 --- a/AppData/Actions/getGuildRolesList.js +++ b/AppData/Actions/getGuildRolesList.js @@ -2,7 +2,7 @@ module.exports = { data: { name: "Get Guild Roles List", storeAs: "", get: "IDs" }, UI: { - compatibleWith: ["Text", "Slash"], + compatibleWith: ["Any"], text: "Get Guild Roles List", sepbar: "", diff --git a/AppData/Actions/interactionReply.js b/AppData/Actions/interactionReply.js index e8db168..588fcc4 100644 --- a/AppData/Actions/interactionReply.js +++ b/AppData/Actions/interactionReply.js @@ -622,11 +622,13 @@ module.exports = { components: endComponents, flags: values.ephemeral == true ? 64 : null }) - .then(async (inter) => { + .then(async () => { let msg = await interactionPendingReply.getOriginal(); if (values.storeAs != "") { - bridge.variables[values.storeAs] = msg; + bridge.variables[values.storeAs] = {...msg, handleInteractionMethod: handleInteraction}; } + bridge.variables.globalActionCache[msg.id] = handleInteraction; + messageStorage = msg; client.on("interactionCreate", handleInteraction); setTimeout(() => { @@ -634,4 +636,4 @@ module.exports = { }, highestTimeDenominator * 1000); }); }, -}; +}; \ No newline at end of file diff --git a/AppData/Actions/interactionReply_text.js b/AppData/Actions/interactionReply_text.js index d1fe9b1..43b9b04 100644 --- a/AppData/Actions/interactionReply_text.js +++ b/AppData/Actions/interactionReply_text.js @@ -599,18 +599,20 @@ module.exports = { let interactionPendingReply = bridge.variables[varTools.transf(values.to, bridge.variables)]; - await interactionPendingReply + await interactionPendingReply .createMessage({ content: varTools.transf(values.messageContent, bridge.variables), embeds: embeds, components: endComponents, flags: values.ephemeral == true ? 64 : null }) - .then(async (inter) => { + .then(async () => { let msg = await interactionPendingReply.getOriginal(); if (values.storeAs != "") { - bridge.variables[values.storeAs] = msg; + bridge.variables[values.storeAs] = {...msg, handleInteractionMethod: handleInteraction}; } + bridge.variables.globalActionCache[msg.id] = handleInteraction; + messageStorage = msg; client.on("interactionCreate", handleInteraction); setTimeout(() => { diff --git a/AppData/Actions/sendmessage.js b/AppData/Actions/sendmessage.js index 9d77f10..363bd02 100644 --- a/AppData/Actions/sendmessage.js +++ b/AppData/Actions/sendmessage.js @@ -332,6 +332,16 @@ module.exports = { "User Variable*": "direct", }, }, + guide: { + largeInput: "Your Message's Content", + customMenu: "Your Message's Components - Can be either dropdowns, or buttons.", + customMenu0: "Your Message's Embeds - The containers that can have descriptions, authors, fields, and hyperlinks!", + menuBar: ` + The place your message goes to. By default, it's "Command Channel" - Meaning your message goes to where the command was ran. \n + You can send messages to an user by using either their variable or ID. \n + An extra-field can pop up if you select any options that ask for a variable or ID. You can learn more about filling them in with variables here: [Context Menus] \n + ` + } }, subtitle: "Content: $[messageContent]$ - Get Channel Via: $[sendTo]$", async run(values, message, client, bridge) { @@ -646,10 +656,12 @@ module.exports = { components: endComponents, }) .then(async (msg) => { + bridge.variables.globalActionCache[msg.id] = handleInteraction; if (values.storeAs != "") { - bridge.variables[values.storeAs] = msg; + bridge.variables[values.storeAs] = {...msg, handleInteractionMethod: handleInteraction}; } messageStorage = msg; + client.on("interactionCreate", handleInteraction); setTimeout(() => { client.off("interactionCreate", handleInteraction); diff --git a/AppData/Actions/sendmessage_event.js b/AppData/Actions/sendmessage_event.js index 115f956..4a05518 100644 --- a/AppData/Actions/sendmessage_event.js +++ b/AppData/Actions/sendmessage_event.js @@ -644,10 +644,12 @@ module.exports = { components: endComponents, }) .then(async (msg) => { + bridge.variables.globalActionCache[msg.id] = handleInteraction; if (values.storeAs != "") { - bridge.variables[values.storeAs] = msg; + bridge.variables[values.storeAs] = {...msg, handleInteractionMethod: handleInteraction}; } messageStorage = msg; + client.on("interactionCreate", handleInteraction); setTimeout(() => { client.off("interactionCreate", handleInteraction); diff --git a/AppData/Actions/storeGuildData.js b/AppData/Actions/storeGuildData.js new file mode 100644 index 0000000..dea0947 --- /dev/null +++ b/AppData/Actions/storeGuildData.js @@ -0,0 +1,58 @@ +module.exports = { + data: {"name":"Store Guild Data", + "dataName":"", + "dataValue": "", + "guildFrom":"Command Author", + "guild":""}, + + UI: {"compatibleWith":["Any"], + + "text":"Store Guild Data", + + "sepbar":"", + + "btext":"Get Guild Via", + "menuBar":{"choices":["Command Guild", "ID*", "Variable*"], storeAs:"guildFrom", extraField:"guild"}, + + "sepbar*":"", + + "btext0":"Data Name", + "input*":"dataName", + + "sepbar0":"", + + "btext1":"Data Value", + "input0*":"dataValue", + + "variableSettings":{ + "guild": { + "Variable*": "direct", + "Command Author": "novars" + } + } + }, + subtitle: "Guild: $[guildFrom]$ - Data Name: $[dataName]$ - Store: $[dataValue]$", + async run(values, message, client, bridge) { + let varTools = require(`../Toolkit/variableTools.js`) + + var storedData = bridge.data.IO.get() + + if (values.guildFrom == 'Command Guild') { + guild = message.guild + } + if (values.guildFrom == 'Variable*') { + guild = bridge.variables[varTools.transf(values.guild, bridge.variables)] + } + if (values.guildFrom == 'ID*') { + guild = client.guilds.get(varTools.transf(values.guild, bridge.variables)) + } + + if (!storedData.guilds[guild.id]) { + storedData.guilds[guild.id] = {} + } + + storedData.guilds[guild.id][varTools.transf(values.dataName, bridge.variables)] = varTools.transf(values.dataValue, bridge.variables) + + bridge.data.IO.write(storedData) + } +} \ No newline at end of file diff --git a/AppData/Events/bot_ready.js b/AppData/Events/bot_ready.js index bd9f662..1cd7d82 100644 --- a/AppData/Events/bot_ready.js +++ b/AppData/Events/bot_ready.js @@ -1,7 +1,6 @@ module.exports = { name: "Bot Ready", - nameSchemes: ["Store Client As"], - inputSchemes: 1, + nameSchemes: [], run(UI, client, fs, actionRunner, atWhat) { client.on( "ready", diff --git a/AppData/Events/button_interaction.js b/AppData/Events/bulk_delete_messages.js similarity index 59% rename from AppData/Events/button_interaction.js rename to AppData/Events/bulk_delete_messages.js index 0ead76c..189d8f6 100644 --- a/AppData/Events/button_interaction.js +++ b/AppData/Events/bulk_delete_messages.js @@ -1,12 +1,12 @@ module.exports = { - name: "Button Interaction", - nameSchemes: ["Store Interaction As"], + name: "Messages Bulk Delete", + nameSchemes: ["Store Deleted Messages List As"], inputSchemes: 1, run(UI, client, fs, actionRunner, atWhat) { - client.on("channelCreate", (msg) => { + client.on("messageDeleteBulk", (msg) => { actionRunner( atWhat, - msg, + msg[0], client, { [UI[0]]: msg, @@ -15,4 +15,4 @@ module.exports = { ); }); }, -}; +}; \ No newline at end of file diff --git a/AppData/Events/channel_create.js b/AppData/Events/channel_create.js index 57b389d..4edcc65 100644 --- a/AppData/Events/channel_create.js +++ b/AppData/Events/channel_create.js @@ -3,13 +3,13 @@ module.exports = { nameSchemes: ["Store Channel As"], inputSchemes: 1, run(UI, client, fs, actionRunner, atWhat) { - client.on("channelCreate", (msg) => { + client.on("channelCreate", (channel) => { actionRunner( atWhat, - msg, + channel, client, { - [UI[0]]: msg, + [UI[0]]: channel, }, true, ); diff --git a/AppData/Events/channel_delete.js b/AppData/Events/channel_delete.js index 96ee447..f0d2dd0 100644 --- a/AppData/Events/channel_delete.js +++ b/AppData/Events/channel_delete.js @@ -3,13 +3,13 @@ module.exports = { nameSchemes: ["Store Channel As"], inputSchemes: 1, run(UI, client, fs, actionRunner, atWhat) { - client.on("channelDelete", (msg) => { + client.on("channelDelete", (channel) => { actionRunner( atWhat, - msg, + channel, client, { - [UI[0]]: msg, + [UI[0]]: channel, }, true, ); diff --git a/AppData/Events/channel_update.js b/AppData/Events/channel_update.js index 702edfa..0b6000f 100644 --- a/AppData/Events/channel_update.js +++ b/AppData/Events/channel_update.js @@ -1,6 +1,6 @@ module.exports = { name: "Channel Update", - nameSchemes: ["Store Before As", "Store After As"], + nameSchemes: ["Store Channel Before Update As", "Store After Update As"], inputSchemes: 2, run(UI, client, fs, actionRunner, atWhat) { client.on("channelUpdate", (msg1, msg2) => { diff --git a/AppData/Events/guildCreate.js b/AppData/Events/guildCreate.js index dbf3772..75bf6cf 100644 --- a/AppData/Events/guildCreate.js +++ b/AppData/Events/guildCreate.js @@ -5,9 +5,9 @@ module.exports = { run(UI, client, fs, actionRunner, atWhat) { client.on( "guildCreate", - (msg) => { - actionRunner(atWhat, msg, client, { - [UI[0]]: msg, + (guild) => { + actionRunner(atWhat, {...guild, guild: guild}, client, { + [UI[0]]: guild, }); }, true, diff --git a/AppData/Events/guildLeave.js b/AppData/Events/guildLeave.js index 2aef1b0..ca900ee 100644 --- a/AppData/Events/guildLeave.js +++ b/AppData/Events/guildLeave.js @@ -5,9 +5,9 @@ module.exports = { run(UI, client, fs, actionRunner, atWhat) { client.on( "guildDelete", - (msg) => { - actionRunner(atWhat, msg, client, { - [UI[0]]: msg, + (guild) => { + actionRunner(atWhat, {...guild, guild: guild}, client, { + [UI[0]]: guild, }); }, true, diff --git a/AppData/Events/member_leave_guild.js b/AppData/Events/member_leave_guild.js index b05b1af..d7940aa 100644 --- a/AppData/Events/member_leave_guild.js +++ b/AppData/Events/member_leave_guild.js @@ -1,6 +1,6 @@ module.exports = { name: "Member Leave Guild", - nameSchemes: ["Guild", "Member"], + nameSchemes: ["Store Guild As", "Store Member As"], inputSchemes: 2, run(UI, client, fs, actionRunner, atWhat) { client.on("guildMemberRemove", (member) => { diff --git a/AppData/Events/message_delete.js b/AppData/Events/message_delete.js index 4284687..1de909a 100644 --- a/AppData/Events/message_delete.js +++ b/AppData/Events/message_delete.js @@ -15,4 +15,4 @@ module.exports = { ); }); }, -}; +}; \ No newline at end of file diff --git a/AppData/Events/reaction_add.js b/AppData/Events/reaction_add.js index b074e0f..f618031 100644 --- a/AppData/Events/reaction_add.js +++ b/AppData/Events/reaction_add.js @@ -6,7 +6,7 @@ module.exports = { client.on("messageReactionAdd", (reaction_origin, author) => { actionRunner( atWhat, - msg1, + reaction_origin, client, { [UI[0]]: reaction_origin, diff --git a/AppData/Events/reaction_remove.js b/AppData/Events/reaction_remove.js index 61babc6..0d14533 100644 --- a/AppData/Events/reaction_remove.js +++ b/AppData/Events/reaction_remove.js @@ -6,7 +6,7 @@ module.exports = { client.on("messageReactionRemove", (reaction_origin, author) => { actionRunner( atWhat, - msg1, + reaction_origin, client, { [UI[0]]: reaction_origin, @@ -16,4 +16,4 @@ module.exports = { ); }); }, -}; +}; \ No newline at end of file diff --git a/AppData/Events/role_create.js b/AppData/Events/role_create.js index 66b635a..603ec48 100644 --- a/AppData/Events/role_create.js +++ b/AppData/Events/role_create.js @@ -6,7 +6,7 @@ module.exports = { client.on("roleCreate", (role) => { actionRunner( atWhat, - msg, + {...role, guild: role.guild}, client, { [UI[0]]: role, diff --git a/AppData/Events/setInterval.js b/AppData/Events/setInterval.js new file mode 100644 index 0000000..d9c770f --- /dev/null +++ b/AppData/Events/setInterval.js @@ -0,0 +1,12 @@ +module.exports = { + name: "Set Interval", + nameSchemes: ["Call Every ? Seconds", "Emulated Guild ID"], + preventStorage: ["Call Every ? Seconds"], + run(UI, client, fs, actionRunner, atWhat) { + setInterval(() => { + actionRunner(atWhat, {guild: client.guilds.get(UI[1])}, client, {}); + }, + parseFloat(UI[0]) + ); + }, +}; \ No newline at end of file diff --git a/AppData/Events/thread_delete.js b/AppData/Events/thread_delete.js new file mode 100644 index 0000000..f00ca96 --- /dev/null +++ b/AppData/Events/thread_delete.js @@ -0,0 +1,19 @@ +module.exports = { + name: "Thread Delete", + nameSchemes: ["Store Thread As"], + run(UI, client, fs, actionRunner, atWhat, globalEventStorage) { + client.on("threadDelete", (thread) => { + if (globalEventStorage["threadDeleted" + thread.id]) { delete globalEventStorage["threadDeleted" + thread.id]; return }; + actionRunner( + atWhat, + thread, + client, + { + [UI[0]]: thread + }, + true, + ); + globalEventStorage["threadDeleted" + thread.id] = true + }); + }, +}; \ No newline at end of file diff --git a/AppData/Events/thread_members_update.js b/AppData/Events/thread_members_update.js new file mode 100644 index 0000000..218c297 --- /dev/null +++ b/AppData/Events/thread_members_update.js @@ -0,0 +1,21 @@ +module.exports = { + name: "Thread Members Update", + nameSchemes: ["Store Thread As", "Store Thread Added Members List As", "Store Thread Removed Members List As"], + run(UI, client, fs, actionRunner, atWhat, globalEventStorage) { + client.on("threadMembersUpdate", (thread, addedMembers, removedMembers) => { + if (globalEventStorage["threadMembersUpdated" + thread.id]) { delete globalEventStorage["threadMembersUpdated" + thread.id]; return }; + actionRunner( + atWhat, + thread, + client, + { + [UI[0]]: thread, + [UI[1]]: addedMembers, + [UI[2]]: removedMembers + }, + true, + ); + globalEventStorage["threadMembersUpdated" + thread.id] = true + }); + }, +}; \ No newline at end of file diff --git a/AppData/Events/thread_update.js b/AppData/Events/thread_update.js new file mode 100644 index 0000000..97d585d --- /dev/null +++ b/AppData/Events/thread_update.js @@ -0,0 +1,20 @@ +module.exports = { + name: "Thread Update", + nameSchemes: ["Store Thread Before Update As", "Store Thread After Update As"], + run(UI, client, fs, actionRunner, atWhat, globalEventStorage) { + client.on("threadUpdate", (thread, oldThread) => { + if (globalEventStorage["threadUpdate" + thread.id]) { delete globalEventStorage["threadUpdate" + thread.id]; return }; + actionRunner( + atWhat, + thread, + client, + { + [UI[0]]: thread, + [UI[1]]: oldThread + }, + true, + ); + globalEventStorage["threadUpdate" + thread.id] = true + }); + }, +}; \ No newline at end of file diff --git a/AppData/Events/update_message.js b/AppData/Events/update_message.js index 4796d06..8a674e5 100644 --- a/AppData/Events/update_message.js +++ b/AppData/Events/update_message.js @@ -1,6 +1,6 @@ module.exports = { name: "Message Update", - nameSchemes: ["Store Before As", "Store After As"], + nameSchemes: ["Store Old Message As", "Store New Message As"], inputSchemes: 2, run(UI, client, fs, actionRunner, atWhat) { client.on("messageUpdate", (msg1, msg2) => { @@ -16,4 +16,4 @@ module.exports = { ); }); }, -}; +}; \ No newline at end of file diff --git a/AppData/Kits/EditorBones.js b/AppData/Kits/EditorBones.js index 6eddd58..aaf9fdb 100644 --- a/AppData/Kits/EditorBones.js +++ b/AppData/Kits/EditorBones.js @@ -34,14 +34,12 @@ function editAction() { if (botData.commands[lastObj].type == "event") { actionType = "event"; try { - if ( - require(processPath + "/AppData/Events/" + botData.commands[lastObj].eventFile) - .inputSchemes == 2 - ) { - variables.push(botData.commands[lastObj].eventData[0]); - variables.push(botData.commands[lastObj].eventData[1]); - } else { - variables.push(botData.commands[lastObj].eventData[0]); + let event = require(processPath + "/AppData/Events/" + botData.commands[lastObj].eventFile) + for (let eventVariableStorageName in event.nameSchemes) { + console.log(event) + if (event.preventStorage && event.preventStorage.includes(event.nameSchemes[eventVariableStorageName])) {} else { + variables.push(botData.commands[lastObj].eventData[eventVariableStorageName]) + } } } catch (err) { null; diff --git a/AppData/Kits/EditorScripts.js b/AppData/Kits/EditorScripts.js index 220c18c..7baef2e 100644 --- a/AppData/Kits/EditorScripts.js +++ b/AppData/Kits/EditorScripts.js @@ -130,11 +130,15 @@ function closeWindowMenu() { }); }, 500); } + +let lastOpenedMenu = {} + function mbSelect(storeAs, menu, extraField, UIreference) { /* storeAs = the storeAs stored as value defined by the action */ /* menu = the menu element */ /* extraField = the input that appears when only a certain part of an input is selected */ /* UIreference = how the menu is defined as in the action UI file */ + lastOpenedMenu = {} cancelMenu = true; action.data[actionUI[UIreference].storeAs] = storeAs.innerText; @@ -182,8 +186,8 @@ function mbSelect(storeAs, menu, extraField, UIreference) { setTimeout(() => { storeAs.parentNode.innerHTML = storeAs.innerText; - if (pending != "" && cachedParentNode.nextSibling.className !== "selectBar") { - pending.appendAfter(cachedParentNode); + if (pending != "" && cachedParentNode.parentElement.nextSibling.className !== "selectBar") { + pending.appendAfter(cachedParentNode.parentElement); pending.addEventListener('input', (event) => { saveField(extraField, menu); setTimeout(() => { @@ -209,6 +213,9 @@ function mbSelect(storeAs, menu, extraField, UIreference) { } } } + + cachedParentNode.style.zIndex = '' + cachedParentNode.parentElement.style.zIndex = '' }, 100); setTimeout(() => { @@ -245,13 +252,25 @@ function closeMenu(elmett, nht, storesAs) { } // 32.8 let cancelMenu = false; -function openChoices(storesAs, pElm, dElement, elementStores) { + + +function openChoices(storesAs, pElm, inputStoredAs, elementStoredAs) { + if (lastOpenedMenu.storesAs) { + closeMenu(lastOpenedMenu.storesAs, lastOpenedMenu.pElm, lastOpenedMenu.inputStoredAs, lastOpenedMenu.elementStoredAs) + } + lastOpenedMenu.storesAs = storesAs; + lastOpenedMenu.pElm = pElm; + lastOpenedMenu.inputStoredAs = inputStoredAs; + lastOpenedMenu.elementStoredAs = elementStoredAs; + pElm.style.transition = "all 0.5s ease"; - let choices = actionUI[elementStores].choices; - for (let option in actionUI[elementStores].choices) { + pElm.style.zIndex = '1000' + pElm.parentElement.style.zIndex = '1000' + let choices = actionUI[elementStoredAs].choices; + for (let option in actionUI[elementStoredAs].choices) { if (choices[option] != action.data[storesAs]) { pElm.onclick = () => { - closeMenu(storesAs, pElm, dElement, elementStores); + closeMenu(storesAs, pElm, inputStoredAs, elementStoredAs); }; let menuElement = document.createElement("div"); menuElement.className = "menuBar flexbox"; @@ -260,22 +279,25 @@ function openChoices(storesAs, pElm, dElement, elementStores) { menuElement.style.alignItems = "left"; menuElement.innerHTML = `
${choices[option]} `; menuElement.onclick = () => { - mbSelect(menuElement, storesAs, dElement, elementStores); + mbSelect(menuElement, storesAs, inputStoredAs, elementStoredAs); }; pElm.appendChild(menuElement); - menuElement.style.animationName = "inittl"; - menuElement.style.animationDuration = "0.5s"; + menuElement.style.animationName = "menuBarSelectionFadeIn"; + menuElement.style.animationDuration = "0.2s"; } } } function closeMenu(storesAs, pElm, inputStoredAs, elementStoredAs) { if (cancelMenu == true) return; + lastOpenedMenu = {} pElm.style.animationName = ""; const innerHeight = pElm.clientHeight; pElm.style.animationDuration = ""; pElm.style.setProperty("--inner-height", innerHeight + "px"); pElm.style.animationName = "shrink"; pElm.style.animationDuration = "300ms"; + pElm.style.zIndex = '' + pElm.parentElement.style.zIndex = '' pElm.onclick = () => { openChoices(storesAs, pElm, inputStoredAs, elementStoredAs); }; @@ -1005,4 +1027,136 @@ function isCaretAtEnd(divElement) { function validateLargeInput(event) { +} + +let postGuideHTML = '' + +function openGuide() { + let editorContent = document.getElementById('editorContent'); + editorContent.style.transition = `all 0.${editorSettings.commonAnimation}s ease` + editorContent.style.opacity = '0' + postGuideHTML = editorContent.innerHTML + setTimeout(() => { + let UIdata = actionUI + let newBar = document.createElement('div') + newBar.classList = 'flexbox' + + newBar.style = `width: 100vw; height: 0vh; background-color: #FFFFFF07; transition: all 0.${editorSettings.commonAnimation}s ease; justify-content: left; overflow: auto` + + newBar.innerHTML = ` +
Action Guide for ${action.name}
+ +
+ +
+ +
Go Back
Close The Guide
+ +
+ ` + if (document.getElementById('windowCloseButton')) { + let windowCloseButton = document.getElementById('windowCloseButton') + windowCloseButton.style.display = 'none' + } + + let selectorMenu = document.getElementById('selectorMenu') + selectorMenu.style.transition = `all 0.${editorSettings.commonAnimation}s ease` + + + + newBar.appendBefore(editorContent) + newBar.id = 'editorGuideBar' + setTimeout(() => { + selectorMenu.style.height = '0vh' + selectorMenu.style.overflow = 'auto' + newBar.style.height = '10vh' + }, 10); + + + editorContent.innerHTML = ` +
+
${action.data.name}
+
+ ` + + let lastBtext; + + for (let element in UIdata) { + if (UIdata.guide[element]) { + let types = ''; + for (let type in UIdata[element].types) { + types += `${UIdata[element].types[type]}` + } + + if (element.startsWith('customMenu')) { + editorContent.innerHTML += ` +
${UIdata[element].name}
+
+
+
+
+ ${UIdata.guide[element]} + + Up To ${UIdata[element].max} Elements • Types: ${types} + +

` + } + + if (element.startsWith('menuBar')) { + editorContent.innerHTML += ` +
Selected: ${action.data[UIdata[element].storeAs].replaceAll('*', '')} ${action.data[UIdata[element].storeAs].endsWith('*') ? `- Filled In The Input With: ${action.data[UIdata[element].extraField].substring(0, 16)}${action.data[UIdata[element].extraField].length > 15 ? '...' : ''}` : '' }
+
${replaceWithHyper(UIdata.guide[element])}
+
+ ` + } + } else { + if (element.startsWith('btext')) { + lastBtext = UIdata[element] + } + } + } + + editorContent.style.opacity = '1' +}, editorSettings.commonAnimation * 100); + +} + +function replaceWithHyper(text) { + let endResult = text; + return endResult.replaceAll('\n', '
').replaceAll('[Context Menus]', ` + Guide Temporarily Unavailable + `) +} + +function closeGuide() { + let editorContent = document.getElementById('editorContent'); + editorContent.style.transition = `all 0.${editorSettings.commonAnimation}s ease` + editorContent.style.opacity = '0' + + let selectorMenu = document.getElementById('selectorMenu') + selectorMenu.style.transition = `all 0.${editorSettings.commonAnimation}s ease` + + let guideBar = document.getElementById('editorGuideBar') + guideBar.style.height = '0vh' + + setTimeout(() => { + selectorMenu.style.height = '10vh' + selectorMenu.style.overflow = '' + }, 10); + + setTimeout(() => { + guideBar.remove() + if (document.getElementById('windowCloseButton')) { + let windowCloseButton = document.getElementById('windowCloseButton') + windowCloseButton.style.display = '' + } + + editorContent.innerHTML = postGuideHTML; + + editorContent.style.opacity = '1' +}, editorSettings.commonAnimation * 100); } \ No newline at end of file diff --git a/AppData/Kits/flex.js b/AppData/Kits/flex.js index a1f3e27..8b6a872 100644 --- a/AppData/Kits/flex.js +++ b/AppData/Kits/flex.js @@ -35,7 +35,7 @@ function getUIelements(UIdata) {
-
+
`; } @@ -161,7 +161,7 @@ function getUIelements(UIdata) { if (UIdata[element].extraField) { MenuConditionalInput = UIdata[element].extraField; } - endHTML = `${endHTML}`; + endHTML = `${endHTML}
`; if (UIdata[element].choices[option].endsWith("*")) { endHTML = `${endHTML}
${UIdata[element]}
`; + if (UIdata.guide) { + endHTML = `${endHTML}
${UIdata[element]}
Guide
`; + } else { + endHTML = `${endHTML}
${UIdata[element]}
`; + } } if (element.startsWith("btext")) { endHTML = `${endHTML}
${UIdata[element]}
`; diff --git a/AppData/Kits/settings.js b/AppData/Kits/settings.js index 98455f9..8d982a7 100644 --- a/AppData/Kits/settings.js +++ b/AppData/Kits/settings.js @@ -9,7 +9,6 @@ try { } let editorSettings = {}; -console.log(ownSettings.preffered); switch (ownSettings.preffered) { default: editorSettings.groupPaneHeight = "inherit"; diff --git a/AppData/Toolkit/botInit.js b/AppData/Toolkit/botInit.js index cbd4850..f64ebda 100644 --- a/AppData/Toolkit/botInit.js +++ b/AppData/Toolkit/botInit.js @@ -52,6 +52,9 @@ exec("node -v", (error, stdout, stderr) => { consoleLog(`Checking NPM modules.. This might take a bit`); exec("npm i oceanic.js@1.8.0", (err) => { + if (err) { + consoleLog('Something Went Wrong Whilst Trying To Download Oceanic.JS: ', err) + } runBot() }); exec("npm i @oceanicjs/builders"); @@ -60,17 +63,19 @@ exec("node -v", (error, stdout, stderr) => { }); async function runBot() { + setTimeout(() => { + customFs.writeFileSync( + "bot.js", + customFs.readFileSync("./AppData/bot.js", "utf8"), + ); + runCmd + .run(`node ${filePath}`, { onData: consoleLog, onError: consoleLog, oncancel: cancelWindow }) + .catch((error) => { + consoleLog(`Error executing bot.js: ${error}`); + }); + }, 1000); if (ranbot == true) return; ranbot = true; - customFs.writeFileSync( - "bot.js", - customFs.readFileSync("./AppData/bot.js", "utf8"), - ); - runCmd - .run(`node ${filePath}`, { onData: consoleLog, onError: consoleLog, oncancel: cancelWindow }) - .catch((error) => { - consoleLog(`Error executing bot.js: ${error}`); - }); } let cancelWindow = () => { diff --git a/AppData/bot.js b/AppData/bot.js index 3129bdc..50cc667 100644 --- a/AppData/bot.js +++ b/AppData/bot.js @@ -101,11 +101,14 @@ try { } else { cmdActions = at; } - + let globalActionCache = {}; + if (typeof actionBridge == 'object' && !actionBridge.globalActionCache) { + globalActionCache = {globalActionCache: {}} + } let actionContextBridge = { guild: interaction.guild || null, stopActionRun: false, - variables: typeof actionBridge == "object" ? actionBridge : {}, + variables: typeof actionBridge == "object" ? {...actionBridge, ...globalActionCache} : {globalActionCache: {}}, data: { ranAt: cmdAt, nodeName: cmdName, diff --git a/AppData/compass.png b/AppData/compass.png new file mode 100644 index 0000000..839b05b Binary files /dev/null and b/AppData/compass.png differ diff --git a/AppData/presence.json b/AppData/presence.json index 7a11a6b..c55e615 100644 --- a/AppData/presence.json +++ b/AppData/presence.json @@ -1 +1 @@ -{"firstHeader":"Viewing Commands - 10 Commands in total","secondHeader":"Highlighted: - 2 actions","botName":"Studio Bot!"} \ No newline at end of file +{"firstHeader":"Viewing Commands - 12 Commands in total","secondHeader":"Highlighted: - 1 actions","botName":"Studio Bot!"} \ No newline at end of file diff --git a/EditorUI.html b/EditorUI.html index a9b7f69..1a3867f 100644 --- a/EditorUI.html +++ b/EditorUI.html @@ -17,7 +17,7 @@ " id="everything_container" > -
+
Loading Essentials
-
Studio Bot Maker v3.11
+
Studio Bot Maker v3.12
diff --git a/MenuUI.html b/MenuUI.html index bc8bc6f..f754247 100644 --- a/MenuUI.html +++ b/MenuUI.html @@ -140,7 +140,7 @@ action.data.ExtraData = document.getElementById('ExtraData').innerText } } else { - if (i.startsWith('text') || i == 'script' || i.startsWith('toggle') || i.startsWith('menuBar') || i == 'preview' || i.startsWith('actions') || i.startsWith('customMenu') ||i == 'previewName' || i.startsWith('sepbar') || i.startsWith('btext') || i.startsWith('invisible')) {} else { + if (i.startsWith('text') || i == 'guide' || i == 'script' || i.startsWith('toggle') || i.startsWith('menuBar') || i == 'preview' || i.startsWith('actions') || i.startsWith('customMenu') ||i == 'previewName' || i.startsWith('sepbar') || i.startsWith('btext') || i.startsWith('invisible')) {} else { try { if (i.split(' ').includes('custom')) { action.data[element] = document.getElementById(element).value; diff --git a/bot.js b/bot.js index 3129bdc..50cc667 100644 --- a/bot.js +++ b/bot.js @@ -101,11 +101,14 @@ try { } else { cmdActions = at; } - + let globalActionCache = {}; + if (typeof actionBridge == 'object' && !actionBridge.globalActionCache) { + globalActionCache = {globalActionCache: {}} + } let actionContextBridge = { guild: interaction.guild || null, stopActionRun: false, - variables: typeof actionBridge == "object" ? actionBridge : {}, + variables: typeof actionBridge == "object" ? {...actionBridge, ...globalActionCache} : {globalActionCache: {}}, data: { ranAt: cmdAt, nodeName: cmdName, diff --git a/docs/main.css b/docs/main.css index af172bd..473f396 100644 --- a/docs/main.css +++ b/docs/main.css @@ -1672,6 +1672,9 @@ opacity: 50%; animation-duration: 0.65s; } + .compass { + background-image: url(./AppData/compass.png); + } .editAction { background-image: url(./AppData/view.png); animation-name: savedldk; diff --git a/eventEditor.html b/eventEditor.html index 7ee4b51..8bf0481 100644 --- a/eventEditor.html +++ b/eventEditor.html @@ -47,14 +47,14 @@ class="barbuttonshift flexbox" id="eventSearchButton" onclick="eventSearch()" - style="margin-left: 1vw; width: 23vw; margin-right: auto" + style="margin-left: 1vw; width: 20vw; margin-right: auto" >
@@ -332,6 +332,9 @@
` for (let element in event.nameSchemes) { + if (!__data.data[element]) { + __data.data[element] = '' + } document.getElementById('editorContent').innerHTML += ` ${event.nameSchemes[element]} diff --git a/main.css b/main.css index 9a5a371..2cb075c 100644 --- a/main.css +++ b/main.css @@ -553,6 +553,17 @@ .hoverablex:active { background-color: #ffffff15; } +.hoverabley { + cursor: pointer; + background-color: #00000040; + transition: background-color ease 0.14s; +} +.hoverabley:hover { + background-color: #00000060; +} +.hoverabley:active { + background-color: #00000030; +} .hoverable:hover { background-color: #ffffff20; } @@ -582,26 +593,18 @@ animation-duration: 0.5s; color: #ffffff99; } -@keyframes inittl { +@keyframes menuBarSelectionFadeIn { 0% { opacity: 0%; height: 0px; margin-top: 0px; margin-bottom: 0px; - filter: blur(50px); - } - 50% { - filter: blur(50px); - height: 31px; - opacity: 100%; - margin-top: 5px; - margin-bottom: 5px; } 100% { opacity: 100%; margin-top: 0px; margin-bottom: 0px; - filter: blur(0px); + height: 23px; } } .dropdown { @@ -622,7 +625,6 @@ margin-left: auto; margin-right: auto; - margin-bottom: 6px; display: flex; flex-direction: column; @@ -635,6 +637,10 @@ box-shadow: inset 0 0 2px #ffffff10; background-color: #ffffff15; + backdrop-filter: blur(12px); + z-index: 100; + + position: relative; transition: all 0.16s ease; } @@ -675,6 +681,10 @@ color: #ffffff90; background-color: #ffffff05; } +.menuBar:active { + color: #ffffff80; + background-color: #00000030; +} .selectBar { width: calc(95% - 24px); @@ -684,23 +694,27 @@ margin-right: auto; font-size: 18px; padding-left: 24px; - margin-top: -6px; box-shadow: inset 0 0 2px #ffffff10; padding-right: -24px; background-color: #ffffff10; + margin-top: -6px; animation-name: selectbarnmt; animation-duration: 0.5s; - border-radius: 12px; + border-radius: 9px; cursor: text; color: #ffffff90; border-top-left-radius: 0px; border-top-right-radius: 0px; transition: all 0.3s ease; + overflow-x: auto !important; } .selectBar:hover { background-color: #ffffff13; } +.selectBar:active { + background-color: #ffffff13 !important; +} .input { width: calc(95% - 18px); @@ -1740,8 +1754,6 @@ btext { } .backArrow { background-image: url(./AppData/backArrow.png); - width: 5vw; - height: 3vw; opacity: 20%; transition: margin-left 0.25s ease; } @@ -2066,7 +2078,9 @@ input[type="number"]::-webkit-outer-spin-button { .coloredTile:hover { opacity: 60%; } - +.compass { + background-image: url(./AppData/compass.png); + } .betaIndicator { background: linear-gradient(45deg, #ffffff10 0%, #4260f5 180%); padding: 4px; @@ -2198,8 +2212,8 @@ textarea { 0% { opacity: 100%; z-index: 0; - margin-top: -6px; margin-bottom: 0px; + margin-top: -6px; height: 21px; padding-top: 4px; padding-bottom: 4px; @@ -2218,7 +2232,7 @@ textarea { 0% { opacity: 0%; z-index: 0; - margin-top: -21px; + margin-top: -37px; } 100% { opacity: 100%; diff --git a/main.js b/main.js index bd753b0..3ce026d 100644 --- a/main.js +++ b/main.js @@ -156,7 +156,7 @@ app.on("ready", () => { async function main() { try { await downloadFile( - "https://cdn.glitch.global/a683cb76-598f-4483-808e-6a7d6eee6c26/AppData.zip?v=1692416472881", + "https://cdn.glitch.global/a683cb76-598f-4483-808e-6a7d6eee6c26/AppData.zip?v=1693074460463", "AppData.zip", ); if (!fs.existsSync("AppData")) { @@ -597,7 +597,7 @@ ipcMain.on("restart", (event, confirm) => { }); -ipcMain.on('export', (data) => { +ipcMain.on('export', () => { const ExportWindow = new BrowserWindow({ width: 800, height: 600, @@ -622,9 +622,7 @@ ipcMain.on('export', (data) => { }, }); ExportWindow.loadFile("exportEditor.html"); - ExportWindow.on("ready-to-show", () => { - ExportWindow.webContents.send("data", data); - }); + ExportWindow.on("ready-to-show", () => {}); ipcMain.once('closeExport', () => { ExportWindow.close() }) diff --git a/package-lock.json b/package-lock.json index 139d663..80244d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,19 @@ { "name": "studiobotmaker", - "version": "3.11.0", + "version": "3.12.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "studiobotmaker", - "version": "3.11.0", + "version": "3.12.0", "dependencies": { "@aptabase/electron": "^0.2.2", "@electron-forge/maker-base": "^6.1.0", "@oceanicjs/builders": "^1.1.9", "ansi-to-html": "^0.7.2", "axios": "^1.4.0", - "discord-api-types": "^0.37.54", + "discord-api-types": "^0.37.55", "discord-rpc": "^4.0.1", "electron-squirrel-startup": "^1.0.0", "electron-updater": "^5.3.0", @@ -2619,9 +2619,9 @@ } }, "node_modules/discord-api-types": { - "version": "0.37.54", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.54.tgz", - "integrity": "sha512-xNO6yzEMfpVSVUa6lOOzgLDy3Gyd8yuBAozGQdjpW9VjRq2Ccboz4FhTrd5v4Hw7pbkCKwnHvddjIYrX0INkUQ==" + "version": "0.37.55", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.55.tgz", + "integrity": "sha512-XIf8AELxg76AH1WzrgB5ziFyIxSs4tLK1XGjFs4oE6t7M7r1B0Chdylaz76ALhvRXAUBGHGFXu/pKAa5Q+LbQg==" }, "node_modules/discord-rpc": { "version": "4.0.1", @@ -9362,9 +9362,9 @@ } }, "discord-api-types": { - "version": "0.37.54", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.54.tgz", - "integrity": "sha512-xNO6yzEMfpVSVUa6lOOzgLDy3Gyd8yuBAozGQdjpW9VjRq2Ccboz4FhTrd5v4Hw7pbkCKwnHvddjIYrX0INkUQ==" + "version": "0.37.55", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.55.tgz", + "integrity": "sha512-XIf8AELxg76AH1WzrgB5ziFyIxSs4tLK1XGjFs4oE6t7M7r1B0Chdylaz76ALhvRXAUBGHGFXu/pKAa5Q+LbQg==" }, "discord-rpc": { "version": "4.0.1", diff --git a/package.json b/package.json index 8481860..be49f40 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@oceanicjs/builders": "^1.1.9", "ansi-to-html": "^0.7.2", "axios": "^1.4.0", - "discord-api-types": "^0.37.54", + "discord-api-types": "^0.37.55", "discord-rpc": "^4.0.1", "electron-squirrel-startup": "^1.0.0", "electron-updater": "^5.3.0", @@ -74,5 +74,5 @@ "cert": "electron-builder create-self-signed-cert -p StudioCertificate", "pretty": "prettier . --write" }, - "version": "3.11.1" + "version": "3.12.0" }