Source:${e.source}`),t},fe={name:"catfact",displayName:"catfact",description:"Sends a random cat fact.",displayDescription:"Sends a random cat fact.",applicationId:"-1",inputType:1,type:1,execute:async function(e,t){try{const a=await ue(),r=Date.now().toString();return P.sendMessage(t.channel.id,{content:_(a)},void 0,{nonce:r}),{type:4}}catch(a){return console.error("[CatFact] Error:",a),{type:4}}}},ge={name:"dogfact",displayName:"dogfact",description:"Sends a dog fact.",displayDescription:"Sends a dog fact.",applicationId:"-1",inputType:1,type:1,execute:async function(e,t){try{const a=await de(),r=Date.now().toString();return P.sendMessage(t.channel.id,{content:_(a)},void 0,{nonce:r}),{type:4}}catch(a){return console.error("[DogFact] Error:",a),{type:4}}}},me={name:"useless",displayName:"useless",description:"Sends a useless fact.",displayDescription:"Sends a useless fact.",applicationId:"-1",inputType:1,type:1,execute:async function(e,t){try{const a=await le(),r=Date.now().toString();return P.sendMessage(t.channel.id,{content:_(a)},void 0,{nonce:r}),{type:4}}catch(a){return console.error("[UselessFact] Error:",a),{type:4}}}},S={CONTENT:"This list is over 2000 characters. Send anyway?",CONFIRM:"Send",CANCEL:"Cancel"},he={DETAILED:"detailed"},O="",T={SLM_NOT_INSTALLED:"This list is over 2000 characters. Install the Split Large Messages plugin to send it.",SLM_NOT_ENABLED:"This list is over 2000 characters. Enable the Split Large Messages plugin to send it."},U={SEMICOL:"; ",NEW_LINE:`
`},be="Nothing to see here, huh...",V="github.com/fres621/vendetta-plugins",w={ENABLED:"\u2705",DISABLED:"\u274C",SELECTED:"\u2705",NOT_SELECTED:"\u274C"},Ce=p.findByProps("sendMessage","receiveMessage"),E=p.findByProps("sendBotMessage"),j=function(){try{return p.findByStoreName("UserStore").getCurrentUser()?.premiumType===2?4e3:2e3}catch{return 2e3}}(),F=function(e){return Object.keys(e).includes(V)},G=function(e){return Object.values(e).find(function(t){return t.id==V})?.enabled},W=function(e){return e.find(function(t){return t.name===he.DETAILED})?.value??!1},L=function(e){return!e||!Array.isArray(e)||e.length===0?"Unknown":e.filter(function(t){return t&&(typeof t=="string"||typeof t=="object"&&t.name)}).map(function(t){return typeof t=="string"?t:t.name||"Unknown"}).join(U.SEMICOL)||"Unknown"},K=function(e){return e.join(U.NEW_LINE).trimEnd()},D=function(e){return K(e).length},A=async function(e,t){const a=Date.now().toString();await Ce.sendMessage(e,{content:K(t)},void 0,{nonce:a})},q=function(e,t){return[`**My${e}List|${t}${e}s**`,O]};async function we(e,t){try{const a=W(e),r=o.storage.themeListAlwaysDetailed??!1;if(!N.themes||typeof N.themes!="object"){const y=t.channel.id;return E.sendBotMessage(y,"No themes found or themes not loaded yet."),{type:4}}const n=Object.values(N.themes),c=t.channel.id,i=q("Theme",Object.keys(N.themes).length);if(n.length)for(const y of n){if(!y||typeof y!="object")continue;const{selected:l,data:d,id:m}=y,v=d?.name||"Unknown Theme",R=d?.description||"No description",M=d?.authors;a||r?i.push(`>**Name**:${v}`,`>**Selected**:${l?w.SELECTED:w.NOT_SELECTED}`,`>**Description**:${R}`,`>**Authors**:${L(M)}`,`>**[Install!](${m||"unknown"})**`,O):i.push(`>${l?w.SELECTED:w.NOT_SELECTED}**${v}**by${L(M)}`)}else i.push(be);const u=D(i)>j;if(u&&!F(C.plugins))E.sendBotMessage(c,T.SLM_NOT_INSTALLED);else if(u&&!G(C.plugins))E.sendBotMessage(c,T.SLM_NOT_ENABLED);else{if(D(i)>2e3)return g.alerts.showConfirmationAlert({content:S.CONTENT,confirmText:S.CONFIRM,cancelText:S.CANCEL,onConfirm:async function(){return await A(c,i)}});await A(c,i)}}catch(a){return console.error("[ThemeList] Error:",a),{type:4}}}async function Se(e,t){try{const a=W(e),r=o.storage.pluginListAlwaysDetailed??!1,n=t.channel.id;if(!C.plugins||typeof C.plugins!="object")return E.sendBotMessage(n,"No plugins found or plugins not loaded yet."),{type:4};const c=q("Plugin",Object.keys(C.plugins).length);for(const u of Object.values(C.plugins)){if(!u||typeof u!="object")continue;const{enabled:y,manifest:l,id:d}=u,m=l?.name||"Unknown Plugin",v=l?.description||"No description",R=l?.authors;a||r?c.push(`>**Name**:${m}`,`>**Status**:${y?w.ENABLED:w.DISABLED}`,`>**Description**:${v}`,`>**Authors**:${L(R)}`,`>**[Install!](${d||"unknown"})**`,O):c.push(`>${y?w.ENABLED:w.DISABLED}**${m}**by${L(R)}`)}const i=D(c)>j;if(i&&!F(C.plugins))E.sendBotMessage(n,T.SLM_NOT_INSTALLED);else if(i&&!G(C.plugins))E.sendBotMessage(n,T.SLM_NOT_ENABLED);else{if(D(c)>2e3)return g.alerts.showConfirmationAlert({content:S.CONTENT,confirmText:S.CONFIRM,cancelText:S.CANCEL,onConfirm:async function(){return await A(n,c)}});await A(n,c)}}catch(a){return console.error("[PluginList] Error:",a),{type:4}}}const Ee={name:"plugin-list",displayName:"plugin list",description:"Send your plugin list to the current channel",displayDescription:"Send your plugin list to the current channel",options:[{name:"detailed",description:"Whether to send a list with detailed information.",type:5,required:!1,displayName:"detailed",displayDescription:"Whether to send a list with detailed information."}],execute:Se,applicationId:"-1",inputType:1,type:1},ve={name:"theme-list",displayName:"theme list",description:"Send your theme list to the current channel",displayDescription:"Send your theme list to the current channel",options:[{name:"detailed",description:"Whether to send a list with detailed information.",type:5,required:!1,displayName:"detailed",displayDescription:"Whether to send a list with detailed information."}],execute:we,applicationId:"-1",inputType:1,type:1
`)},void 0,{nonce:i}),{type:4}}}catch(a){return console.error("[Sysinfo] Error:",a),{type:4}}}const Ve={name:"sysinfo",displayName:"sysinfo",description:"Display system information",displayDescription:"Display system information",options:[{name:"ephemeral",displayName:"ephemeral",description:"Keep sysinfo ephemeral (default: true)",displayDescription:"Keep sysinfo ephemeral (default: true)",type:5,required:!1},...J.slice(0,-1).map(function(e){return{name:e,displayName:e,description:`Displaythe${e}section.Setdefaultinsettings.`,displayDescription:`Displaythe${e}section.Setdefaultinsettings.`,type:5,required:!1}})],execute:Ue,applicationId:"-1",inputType:1,type:1},Q=p.findByProps("sendMessage","receiveMessage"),je=p.findByStoreName("SpotifyStore");async function Fe(e,t){return o.storage.enabledCommands?.spotifyTrack?$(t,function(a){return`https://open.spotify.com/track/${a.id}`}):{type:4}}async function Ge(e,t){return o.storage.enabledCommands?.spotifyAlbum?$(t,function(a){return`https://open.spotify.com/album/${a.album.id}`}):{type:4}}async function We(e,t){return o.storage.enabledCommands?.spotifyArtists?$(t,function(a){return a.artists.map(function(r){return`[${r.name}](${r.external_urls.spotify})`}).join(`
`)}):{type:4}}async function Ke(e,t){return o.storage.enabledCommands?.spotifyCover?$(t,function(a){return a.album.image.url}):{type:4}}async function $(e,t){try{const a=e.channel.id,r=je?.getTrack?.();if(!r){const i=Date.now().toString();return Q.sendMessage(a,{content:"You are not listening to any track."},void 0,{nonce:i}),{type:4}}const n=t(r),c=Date.now().toString();return Q.sendMessage(a,{content:n},void 0,{nonce:c}),{type:4}}catch(a){return console.error("[Spotify Command] Error:",a),{type:4}}}const qe={name:"spotify track",displayName:"spotify track",description:"Sends your current Spotify track",displayDescription:"Sends your current Spotify track",applicationId:"-1",inputType:1,type:1,execute:Fe},Xe={name:"spotify album",displayName:"spotify album",description:"Sends your current track's album",displayDescription:"Sends your current track's album",applicationId:"-1",inputType:1,type:1,execute:Ge},ze={name:"spotify artists",displayName:"spotify artists",description:"Sends your current track's artists",displayDescription:"Sends your current track's artists",applicationId:"-1",inputType:1,type:1,execute:We},He={name:"spotify cover",displayName:"spotify cover",description:"Sends your current track's cover",displayDescription:"Sends your current track's cover",applicationId:"-1",inputType:1,type:1,execute:Ke},Ye=p.findByProps("sendMessage"),Ze={name:"gary",displayName:"gary",description:"Send a random Gary image to the channel.",displayDescription:"Send a random Gary image to the channel.",options:[],execute:async function(e,t){try{let a="gary";o.storage.garySettings?.useCatAPI?a="catapi":o.storage.garySettings?.useMinkerAPI?a="minker":o.storage.garySettings?.useGooberAPI&&(a="goober");const r=await pe(a);if(!r)return{type:4};const n=Date.now().toString();return Ye.sendMessage(t.channel.id,{content:r},void 0,{nonce:n}),{type:4}}catch(a){return console.error("[Gary] Error:",a),{type:4}}},applicationId:"-1",inputType:1,type:1},{ScrollView:Je}=p.findByProps("ScrollView"),{TableRowGroup:h,TableSwitchRow:f,Stack:ee,TableRow:b}=p.findByProps("TableSwitchRow","TableRowGroup","Stack","TableRow");function Qe(){const e=s.stylesheet.createThemedStyleSheet({container:{flexDirection:"column",alignItems:"center",paddingVertical:24,paddingHorizontal:16},title:{fontSize:28,fontWeight:"700",color:g.semanticColors.TEXT_NORMAL,marginBottom:4},subtitle:{fontSize:16,fontWeight:"500",color:g.semanticColors.TEXT_MUTED},iconContainer:{backgroundColor:g.semanticColors.BACKGROUND_SECONDARY,borderRadius:16,padding:12,marginBottom:16},icon:{width:32,height:32,tintColor:g.semanticColors.TEXT_NORMAL}});return s.React.createElement(s.ReactNative.View,{style:e.container},s.React.createElement(s.ReactNative.View,{style:e.iconContainer},s.React.createElement(s.ReactNative.Image,{source:ce.getAssetIDByName("SettingsIcon"),style:e.icon})),s.React.createElement(s.ReactNative.Text,{style:e.title},"Commands"),s.React.createElement(s.ReactNative.Text,{style:e.subtitle},"A collection of useful commands"))}function et({forceRerender:e}){const t=s.stylesheet.createThemedStyleSheet({container:{backgroundColor:g.semanticColors.BACKGROUND_SECONDARY,borderRadius:12,marginHorizontal:16,marginVertical:8,padding:16},title:{fontSize:18,fontWeight:"600",color:g.semanticColors.TEXT_NORMAL,marginBottom:12},optionContainer:{flexDirection:"row",alignItems:"center",paddingVertical:12,paddingHorizontal:8,borderRadius:8,marginVertical:2},selectedOption:{backgroundColor:g.semanticColors.BACKGROUND_MODIFIER_SELECTED},optionText:{fontSize:16,fontWeight:"500",marginLeft:12,flex:1},selectedText:{color:g.semanticColors.TEXT_BRAND},normalText:{color:g.semanticColors.TEXT_NORMAL},radioButton:{width:20,height:20,borderRadius:10,borderWidth:2,borderColor:g.semanticColors.TEXT_MUTED,alignItems:"center",justifyContent:"center"},selectedRadio:{borderColor:g.semanticColors.TEXT_BRAND},radioInner:{width:10,height:10,borderRadius:5,backgroundColor:g.semanticColors.TEXT_BRAND}}),a=[{value:"gary",label:"Gary API",desc:"Original Gary cat images"},{value:"catapi",label:"Cat API",desc:"Random