diff --git a/src/interactions/core/Settings.js b/src/interactions/core/Settings.js index f2b78f5f4..1b9e64c4b 100644 --- a/src/interactions/core/Settings.js +++ b/src/interactions/core/Settings.js @@ -356,6 +356,7 @@ export default class Settings extends Interaction { .map((id) => guild.roles.cache.get(id.trim())); static enabled = true; + static elevated = true; static command = { ...cmds.settings, defaultMemberPermissions: Permissions.FLAGS.MANAGE_GUILD, diff --git a/src/interactions/tracking/Tracking.js b/src/interactions/tracking/Tracking.js index 2b238e1ed..2780b581a 100644 --- a/src/interactions/tracking/Tracking.js +++ b/src/interactions/tracking/Tracking.js @@ -32,6 +32,7 @@ const chunkerate = (track) => { const subgrouped = ['arbitration', 'fissures', 'twitter']; export default class Settings extends Interaction { + static elevated = true; static command = { ...cmds.tracking, defaultMemberPermissions: Permissions.FLAGS.MANAGE_GUILD, diff --git a/src/interactions/warframe/Worldstate.js b/src/interactions/warframe/Worldstate.js index 3d19093ac..02249d304 100644 --- a/src/interactions/warframe/Worldstate.js +++ b/src/interactions/warframe/Worldstate.js @@ -21,7 +21,7 @@ import Solaris from '../../embeds/SolarisEmbed.js'; import Nightwave from '../../embeds/NightwaveEmbed.js'; import Outposts from '../../embeds/SentientOutpostEmbed.js'; import SteelPath from '../../embeds/SteelPathEmbed.js'; -import { cmds, platformMap as platformChoices } from '../../resources/index.js'; +import { cmds, platformMap as platformChoices, syndicates as syndicateOptions } from '../../resources/index.js'; const { ApplicationCommandOptionTypes: Types } = Constants; @@ -39,6 +39,7 @@ const aliases = { sales: 'flashSales', steelpath: 'steelPath', archons: 'archonHunt', + syndicate: 'syndicateMissions', }; const embeds = { arbitration: Arbitration, @@ -89,6 +90,10 @@ const places = [ value: 'cambion', }, ]; +const syndicates = syndicateOptions.map((s) => ({ + name: s.display, + value: s.display, +})); const compactable = [ ...platformable, { @@ -227,6 +232,19 @@ export default class WorldState extends Interaction { ...cmds.sortie, options: platformable, }, + { + ...cmds.syndicate, + options: [ + { + type: Types.STRING, + name: 'syndicate', + description: 'Which syndicate?', + required: true, + choices: syndicates, + }, + ...platformable, + ], + }, ]; static async commandHandler(interaction, ctx) { @@ -240,6 +258,7 @@ export default class WorldState extends Interaction { let category = options?.get?.('category')?.value || 'all'; const place = options?.get?.('place')?.value; + const syndicate = options?.get?.('syndicate')?.value; const key = `${subcommand}${place ? `::${place}` : ''}`; const field = aliases[key] || subcommand || undefined; @@ -347,6 +366,17 @@ export default class WorldState extends Interaction { } embed = new embeds[field](data, { isCommand: true, i18n: ctx.i18n }); return interaction.editReply({ embeds: [embed] }); + case 'syndicateMissions': + const missions = data?.filter((m) => { + return syndicate !== 'all' || m.syndicateKey === syndicate; + }); + if (!missions) break; + pages = missions + .map((mission) => { + return new Syndicate([mission], { syndicate, i18n: ctx.i18n, platform, locale: ctx.language }); + }) + .filter((p) => p.title); + return interaction.editReply({ embeds: pages }); default: break; } diff --git a/src/resources/cachedEvents.json b/src/resources/cachedEvents.json index b99d1ca5f..64d4efc29 100644 --- a/src/resources/cachedEvents.json +++ b/src/resources/cachedEvents.json @@ -1,19 +1,6 @@ [ "cetus.day", "cetus.night", - "cetus.day.5", - "cetus.day.10", - "cetus.day.15", - "cetus.day.20", - "cetus.night.5", - "cetus.night.10", - "cetus.night.15", - "cetus.night.20", - "cetus.day.1", - "deimos.fass.1", - "deimos.vome.1", - "solaris.warm.1", - "solaris.cold.1", "deimos.fass", "deimos.vome", "solaris.warm", @@ -85,5 +72,10 @@ "fissures.t5.assassination", "steelpath", "steelpath.umbra", - "archonhunt" + "archonhunt", + "syndicate.ostrons", + "syndicate.quills", + "vox", + "necralisk", + "solaris" ] diff --git a/src/resources/locales/commands/en.js b/src/resources/locales/commands/en.js index 70759b254..945391ebe 100644 --- a/src/resources/locales/commands/en.js +++ b/src/resources/locales/commands/en.js @@ -383,6 +383,10 @@ export default { name: 'value', description: 'Should be a category', }, + 'syndicate': { + name: 'syndicate', + description: 'Get current syndicate information for a given syndicate' + }, tracking: { name: 'tracking', description: 'Configure tracking options',