From e191c98d8ae110e3da9734d416336aa63cfd4b56 Mon Sep 17 00:00:00 2001 From: kmmiio99o Date: Wed, 1 Oct 2025 15:21:07 +0000 Subject: [PATCH] deploy: c4dff9979031d875bb14b74e79449a05be152f63 --- Commands/index.js | 16 ++++++++-------- Commands/manifest.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Commands/index.js b/Commands/index.js index 1e8b97a..9f118e0 100644 --- a/Commands/index.js +++ b/Commands/index.js @@ -1,10 +1,10 @@ -(function(x,ie,r,h,v,b,u,e,ce,G,i,le){"use strict";const de=async function(){const t=await(await fetch("https://uselessfacts.jsph.pl/api/v2/facts/random")).json();return{text:t.text,source:t.source,language:t.language}},ue=async function(){return{text:(await(await fetch("https://dogapi.dog/api/v2/facts?limit=1")).json()).data[0].attributes.body}},ge=async function(){const t=await(await fetch("https://catfact.ninja/fact")).json();return{text:t.fact,length:t.length}},ye=async function(t){return await(await fetch(`https://api.obamabot.me/v2/image/petpet?image=${t.replace("webp","png")}`)).json()},fe=async function(t="gary"){try{switch(t){case"gary":return(await(await fetch("https://api.garythe.cat/gary")).json()).url;case"goober":return(await(await fetch("https://api.garythe.cat/goober")).json()).url;case"catapi":return(await(await fetch("https://api.thecatapi.com/v1/images/search")).json())[0].url;case"minker":return"https://minky.materii.dev/";default:throw new Error("Invalid Gary image source value")}}catch(n){return console.error(`[Gary API] Error fetching image from ${t}:`,n),null}},_=h.findByProps("sendMessage"),V=function(t){let n=t.text;return r.storage.factSettings?.includeCitation&&t.source&&(n+=` +(function(x,ie,r,h,v,b,u,e,ce,G,i,le){"use strict";const de=async function(){const t=await(await fetch("https://uselessfacts.jsph.pl/api/v2/facts/random")).json();return{text:t.text,source:t.source,language:t.language}},ue=async function(){return{text:(await(await fetch("https://dogapi.dog/api/v2/facts?limit=1")).json()).data[0].attributes.body}},ge=async function(){const t=await(await fetch("https://catfact.ninja/fact")).json();return{text:t.fact,length:t.length}},ye=async function(t){return await(await fetch(`https://api.obamabot.me/v2/image/petpet?image=${t.replace("webp","png")}`)).json()},fe=async function(t="gary"){try{switch(t){case"gary":return(await(await fetch("https://api.garythe.cat/gary")).json()).url;case"goober":return(await(await fetch("https://api.garythe.cat/goober")).json()).url;case"catapi":return(await(await fetch("https://api.thecatapi.com/v1/images/search")).json())[0].url;case"minker":return"https://minky.materii.dev/";default:throw new Error("Invalid Gary image source value")}}catch(n){return console.error(`[Gary API] Error fetching image from ${t}:`,n),null}},V=h.findByProps("sendMessage"),_=function(t){let n=t.text;return r.storage.factSettings?.includeCitation&&t.source&&(n+=` -Source: ${t.source}`),n},me={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(t,n){try{const a=await ge(),o=Date.now().toString();return _.sendMessage(n.channel.id,{content:V(a)},void 0,{nonce:o}),{type:4}}catch(a){return console.error("[CatFact] Error:",a),{type:4}}}},pe={name:"dogfact",displayName:"dogfact",description:"Sends a dog fact.",displayDescription:"Sends a dog fact.",applicationId:"-1",inputType:1,type:1,execute:async function(t,n){try{const a=await ue(),o=Date.now().toString();return _.sendMessage(n.channel.id,{content:V(a)},void 0,{nonce:o}),{type:4}}catch(a){return console.error("[DogFact] Error:",a),{type:4}}}},he={name:"useless",displayName:"useless",description:"Sends a useless fact.",displayDescription:"Sends a useless fact.",applicationId:"-1",inputType:1,type:1,execute:async function(t,n){try{const a=await de(),o=Date.now().toString();return _.sendMessage(n.channel.id,{content:V(a)},void 0,{nonce:o}),{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"},Ce={DETAILED:"detailed"},O="",D={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."},F={SEMICOL:"; ",NEW_LINE:` -`},Re="Nothing to see here, huh...",j="github.com/fres621/vendetta-plugins",E={ENABLED:"\u2705",DISABLED:"\u274C",SELECTED:"\u2705",NOT_SELECTED:"\u274C"},be=h.findByProps("sendMessage","receiveMessage"),N=h.findByProps("sendBotMessage"),K=function(){try{return h.findByStoreName("UserStore").getCurrentUser()?.premiumType===2?4e3:2e3}catch{return 2e3}}(),z=function(t){return Object.keys(t).includes(j)},W=function(t){return Object.values(t).find(function(n){return n.id==j})?.enabled},H=function(t){return t.find(function(n){return n.name===Ce.DETAILED})?.value??!1},T=function(t){return!t||!Array.isArray(t)||t.length===0?"Unknown":t.filter(function(n){return n&&(typeof n=="string"||typeof n=="object"&&n.name)}).map(function(n){return typeof n=="string"?n:n.name||"Unknown"}).join(F.SEMICOL)||"Unknown"},X=function(t){return t.join(F.NEW_LINE).trimEnd()},B=function(t){return X(t).length},L=async function(t,n){const a=Date.now().toString();await be.sendMessage(t,{content:X(n)},void 0,{nonce:a})},Y=function(t,n){return[`**My ${t} List | ${n} ${t}s**`,O]};async function Ee(t,n){try{const a=H(t),o=r.storage.themeListAlwaysDetailed??!1;if(!v.themes||typeof v.themes!="object"){const p=n.channel.id;return N.sendBotMessage(p,"No themes found or themes not loaded yet."),{type:4}}const s=Object.values(v.themes),d=n.channel.id,l=Y("Theme",Object.keys(v.themes).length);if(s.length)for(const p of s){if(!p||typeof p!="object")continue;const{selected:g,data:y,id:R}=p,A=y?.name||"Unknown Theme",w=y?.description||"No description",$=y?.authors;a||o?l.push(`> **Name**: ${A}`,`> **Selected**: ${g?E.SELECTED:E.NOT_SELECTED}`,`> **Description**: ${w}`,`> **Authors**: ${T($)}`,`> **[Install!](${R||"unknown"})**`,O):l.push(`> ${g?E.SELECTED:E.NOT_SELECTED} **${A}** by ${T($)}`)}else l.push(Re);const m=B(l)>K;if(m&&!z(b.plugins))N.sendBotMessage(d,D.SLM_NOT_INSTALLED);else if(m&&!W(b.plugins))N.sendBotMessage(d,D.SLM_NOT_ENABLED);else{if(B(l)>2e3)return u.alerts.showConfirmationAlert({content:S.CONTENT,confirmText:S.CONFIRM,cancelText:S.CANCEL,onConfirm:async function(){return await L(d,l)}});await L(d,l)}}catch(a){return console.error("[ThemeList] Error:",a),{type:4}}}async function Ie(t,n){try{const a=H(t),o=r.storage.pluginListAlwaysDetailed??!1,s=n.channel.id;if(!b.plugins||typeof b.plugins!="object")return N.sendBotMessage(s,"No plugins found or plugins not loaded yet."),{type:4};const d=Y("Plugin",Object.keys(b.plugins).length);for(const m of Object.values(b.plugins)){if(!m||typeof m!="object")continue;const{enabled:p,manifest:g,id:y}=m,R=g?.name||"Unknown Plugin",A=g?.description||"No description",w=g?.authors;a||o?d.push(`> **Name**: ${R}`,`> **Status**: ${p?E.ENABLED:E.DISABLED}`,`> **Description**: ${A}`,`> **Authors**: ${T(w)}`,`> **[Install!](${y||"unknown"})**`,O):d.push(`> ${p?E.ENABLED:E.DISABLED} **${R}** by ${T(w)}`)}const l=B(d)>K;if(l&&!z(b.plugins))N.sendBotMessage(s,D.SLM_NOT_INSTALLED);else if(l&&!W(b.plugins))N.sendBotMessage(s,D.SLM_NOT_ENABLED);else{if(B(d)>2e3)return u.alerts.showConfirmationAlert({content:S.CONTENT,confirmText:S.CONFIRM,cancelText:S.CANCEL,onConfirm:async function(){return await L(s,d)}});await L(s,d)}}catch(a){return console.error("[PluginList] Error:",a),{type:4}}}const Se={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:Ie,applicationId:"-1",inputType:1,type:1},Ne={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:Ee,applicationId:"-1",inputType:1,type:1},Ae=h.findByStoreName("UserStore"),we=h.findByProps("sendMessage"),ve={name:"petpet",displayName:"petpet",description:"PetPet someone",displayDescription:"PetPet someone",options:[{name:"user",description:"The user(or their id) to be patted",type:6,required:!0,displayName:"user",displayDescription:"The user(or their id) to be patted"}],execute:async function(t,n){try{const a=(await Ae.getUser(t[0].value)).getAvatarURL(512),o=await ye(a),s=Date.now().toString();return we.sendMessage(n.channel.id,{content:o.url},void 0,{nonce:s}),{type:4}}catch(a){return console.error("[PetPet] Error:",a),{type:4}}},applicationId:"-1",inputType:1,type:1},De=h.findByProps("sendMessage"),Te=h.findByProps("sendBotMessage","sendMessage","receiveMessage"),q=async function(t){const n="https://konachan.com/post.json",a=t?"rating:explicit":"rating:safe",o=Math.floor(Math.random()*100);try{const s=await(await fetch(`${n}?tags=${a}&limit=1&page=${o}`)).json();return!Array.isArray(s)||s.length===0?null:s[0].file_url}catch(s){return console.error("[KonoChan Randomizer] Error fetching image:",s),null}},Q=function(){return u.alerts.showConfirmationAlert({title:"NSFW Content Warning",content:"NSFW content can only be sent in NSFW channels!",confirmText:"Okay",cancelText:null,confirmColor:"brand",isDismissable:!0})},Z={name:"nsfw",description:"Include NSFW content?",type:5,required:!1,displayName:"nsfw",displayDescription:"Include NSFW content?"},Be={name:"konoself",displayName:"konoself",description:"Fetch a random image from KonoChan for yourself.",displayDescription:"Fetch a random image from KonoChan for yourself.",options:[Z],execute:async function(t,n){try{const a=new Map(t.map(function(s){return[s.name,s]})).get("nsfw")?.value||!1;if(a&&!n.channel.nsfw)return Q(),{type:4};const o=await q(a);return o?(Te.sendBotMessage(n.channel.id,`Here's your random image: ${o}`),{type:4}):{type:4}}catch(a){return console.error("[KonoSelf] Error:",a),{type:4}}},applicationId:"-1",inputType:1,type:1},Le={name:"konosend",displayName:"konosend",description:"Fetch a random image from KonoChan and send it to the channel.",displayDescription:"Fetch a random image from KonoChan and send it to the channel.",options:[Z],execute:async function(t,n){try{const a=new Map(t.map(function(d){return[d.name,d]})).get("nsfw")?.value||!1;if(a&&!n.channel.nsfw)return Q(),{type:4};const o=await q(a);if(!o)return{type:4};const s=Date.now().toString();return De.sendMessage(n.channel.id,{content:o},void 0,{nonce:s}),{type:4}}catch(a){return console.error("[KonoSend] Error:",a),{type:4}}},applicationId:"-1",inputType:1,type:1},J=h.findByProps("getAPIBaseURL","get"),ke=h.findByProps("sendMessage"),k=async function(t,n,a){const o=n?`&author_id=${n}`:"",s=a?`&channel_id=${a}`:"",d=n?"":"&min_id=0";return(await J.get({url:`/guilds/${t}/messages/search`,query:`include_nsfw=true${o}${s}${d}&sort_by=timestamp&sort_order=asc&offset=0`})).body.messages[0][0]},ee=async function(t,n){const a=n?`&author_id=${n}`:"",o=n?"":"&min_id=0";return(await J.get({url:`/channels/${t}/messages/search`,query:`&sort_by=timestamp&sort_order=asc&offset=0${a}${o}`})).body.messages[0][0]},Me={name:"firstmessage",displayName:"firstmessage",description:"Tired of scrolling to first message?",displayDescription:"Tired of scrolling to first message?",options:[{name:"user",displayName:"user",description:"Target user to get their first message in this server/dm",displayDescription:"Target user to get their first message in this server/dm",type:6,required:!1},{name:"channel",displayName:"channel",description:"Target channel to get first message of",displayDescription:"Target channel to get first message of",type:7,required:!1},{name:"send",displayName:"send",description:"Whether to send the resulting url",displayDescription:"Whether to send the resulting url",type:5,required:!1}],execute:async function(t,n){try{const a=new Map(t.map(function(R){return[R.name,R]})),o=a.get("user")?.value,s=a.get("channel")?.value,d=a.get("send")?.value,l=n.guild?.id,m=n.channel.id,p=n.channel.type===1;let g="https://discord.com/channels/",y;if(!o&&!s)p?(y=await ee(m),g+=`@me/${m}/${y.id}`):(y=await k(l),g+=`${l}/${y.channel_id}/${y.id}`);else if(o)p?(y=await ee(m,o),g+=`@me/${m}/${y.id}`):(y=await k(l,o),g+=`${l}/${y.channel_id}/${y.id}`);else if(s){if(p)return{type:4};y=await k(l,null,s),g+=`${l}/${s}/${y.id}`}else{if(p)return{type:4};y=await k(l,o,s),g+=`${l}/${s}/${y.id}`}if(d){const R=Date.now().toString();return ke.sendMessage(n.channel.id,{content:g},void 0,{nonce:R}),{type:4}}else return e.url.openDeeplink(g),{type:4}}catch(a){return console.error("[FirstMessage] Error:",a),{type:4}}},applicationId:"-1",inputType:1,type:1},$e=h.findByProps("sendMessage"),Pe=h.findByProps("sendBotMessage","sendMessage","receiveMessage");function xe(){let{height:t,width:n,scale:a}=e.ReactNative.Dimensions.get("screen");return t*=a,n*=a,{width:n,height:t}}function _e(){try{const t=h.findByProps("memory");if(!t)return{cpuCoreCount:"N/A",cpuPerc:"N/A",memUsage:"N/A",netInfo:"N/A"};const{cpuCoreCount:n,cpuPercentage:a,memory:o}=t,s=a?a.toFixed(2)+"%":"N/A",d=o?parseFloat((o/1e3).toPrecision(3))+" MB":"N/A";let l="N/A";try{const m=h.findByProps("useNetInfo");if(m){const p=Object.values(m.fetch()).filter(function(g){return g?.type})[0];if(p){const{type:g,details:y}=p;l={wifi:"WiFi",ethernet:"Ethernet",other:"Unknown",bluetooth:"Bluetooth",wimax:"WiMAX",vpn:"VPN",cellular:y?.cellularGeneration?.toUpperCase()||"Cellular"}[g]??g}}}catch(m){console.warn("Network info unavailable:",m)}return{cpuCoreCount:n,cpuPerc:s,memUsage:d,netInfo:l}}catch(t){return console.warn("Hardware info unavailable:",t),{cpuCoreCount:"N/A",cpuPerc:"N/A",memUsage:"N/A",netInfo:"N/A"}}}function Ve(){try{const{NativeModules:t}=e.ReactNative;return(t.InfoDictionaryManager??t.RTNClientInfoManager)||{}}catch(t){return console.warn("Discord info unavailable:",t),{}}}function Oe(){try{const{cpuCoreCount:t,cpuPerc:n,memUsage:a,netInfo:o}=_e(),s=Ve(),{vendetta:d,discord:l,react:m,hermes:p,os:g,device:y}=ce.getDebugInfo(),{version:R,bytecodeVersion:A}=p||{},{version:w,nativeVersion:$}=m||{},{name:ne,version:dt,sdk:re}=g||{},{manufacturer:ut,brand:se,model:oe,codename:gt}=y||{},{version:yt}=d||{},{version:ft,build:mt}=l||{},{ReleaseChannel:pt}=s,ht=ne=="iOS"?gt:`${se} ${oe}`,{width:Ct,height:Rt}=xe();let P={Device:{Device:ht||"Unknown",Model:oe||"Unknown",Manufacturer:ut||"Unknown",Brand:se||"Unknown",Display:`${Ct}x${Rt}`},Hardware:{"CPU Cores":t||"N/A",Network:o},Software:{OS:ne||"Unknown",Version:dt||"Unknown"},Discord:{Branch:pt||"Unknown",Version:ft||"Unknown",Build:mt||"Unknown",Vendetta:yt||"Unknown","CPU Usage":n,"Memory Usage":a},React:{Version:w||"Unknown","Hermes Bytecode":A||"Unknown",Hermes:R||"Unknown",Native:$||"Unknown"}};return window.enmity&&(P.Discord.Enmity=window.enmity.version),window.aliucord&&(P.Discord.Aliucord=window.aliucord.version),re&&(P.Software["SDK Version"]=re),P}catch(t){throw console.error("Error generating system info:",t),t}}const te=["device","hardware","software","discord","react","ephemeral"];for(const t of te)r.storage[t]===void 0&&(r.storage[t]=!0);function Ue(t,n){try{let a=[`__System Information__ -`];const o=Oe();Object.keys(o).forEach(function(l){const m=r.storage[l.toLowerCase()],p=t.find(function(g){return g.name==l.toLowerCase()})?.value??m;(p||m)&&!(m&&!p)&&(a.push(`[**${l}**]`),Object.keys(o[l]).forEach(function(g){a.push(`> ${g}: ${o[l][g]}`)}))});const s=r.storage.ephemeral,d=t.find(function(l){return l.name=="ephemeral"})?.value??s;if((d||s)&&!(s&&!d))return Pe.sendBotMessage(n.channel.id,a.join(` -`)),{type:4};{const l=Date.now().toString();return $e.sendMessage(n.channel.id,{content:a.join(` -`)},void 0,{nonce:l}),{type:4}}}catch(a){return console.error("[Sysinfo] Error:",a),{type:4}}}const Ge={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},...te.slice(0,-1).map(function(t){return{name:t,displayName:t,description:`Display the ${t} section. Set default in settings.`,displayDescription:`Display the ${t} section. Set default in settings.`,type:5,required:!1}})],execute:Ue,applicationId:"-1",inputType:1,type:1},ae=h.findByProps("sendMessage","receiveMessage"),Fe=h.findByStoreName("SpotifyStore");async function je(t,n){return r.storage.enabledCommands?.spotifyTrack?M(n,function(a){return`https://open.spotify.com/track/${a.id}`}):{type:4}}async function Ke(t,n){return r.storage.enabledCommands?.spotifyAlbum?M(n,function(a){return`https://open.spotify.com/album/${a.album.id}`}):{type:4}}async function ze(t,n){return r.storage.enabledCommands?.spotifyArtists?M(n,function(a){return a.artists.map(function(o){return`[${o.name}](${o.external_urls.spotify})`}).join(` -`)}):{type:4}}async function We(t,n){return r.storage.enabledCommands?.spotifyCover?M(n,function(a){return a.album.image.url}):{type:4}}async function M(t,n){try{const a=t.channel.id,o=Fe?.getTrack?.();if(!o){const l=Date.now().toString();return ae.sendMessage(a,{content:"You are not listening to any track."},void 0,{nonce:l}),{type:4}}const s=n(o),d=Date.now().toString();return ae.sendMessage(a,{content:s},void 0,{nonce:d}),{type:4}}catch(a){return console.error("[Spotify Command] Error:",a),{type:4}}}const He={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:je},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:Ke},Ye={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:ze},qe={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:We},Qe=h.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(t,n){try{r.storage.garySettings||(r.storage.garySettings={imageSource:"gary"});const a=r.storage.garySettings.imageSource||"gary";console.log(`[Gary Command] Using image source: ${a}`);const o=await fe(a);if(!o)return console.log("[Gary Command] No image URL received"),{type:4};console.log(`[Gary Command] Sending image: ${o}`);const s=Date.now().toString();return Qe.sendMessage(n.channel.id,{content:o},void 0,{nonce:s}),{type:4}}catch(a){return console.error("[Gary] Error:",a),{type:4}}},applicationId:"-1",inputType:1,type:1},{ScrollView:I}=h.findByProps("ScrollView"),{FormRow:c,FormSwitchRow:f}=le.Forms;function C({title:t,icon:n,children:a,padding:o=!1}){const s=e.stylesheet.createThemedStyleSheet({main:{backgroundColor:u.semanticColors.CARD_PRIMARY_BG,borderColor:u.semanticColors.BORDER_FAINT,borderWidth:1,borderRadius:16,overflow:"hidden",flex:1},titleContainer:{marginBottom:8,marginHorizontal:0,marginTop:8,gap:4,flexDirection:"row",alignItems:"center"},icon:{width:16,height:16,marginTop:1.5,tintColor:u.semanticColors.TEXT_MUTED},titleText:{fontSize:14,fontWeight:"600",color:u.semanticColors.TEXT_MUTED}});return e.React.createElement(e.ReactNative.View,{style:{marginHorizontal:16,marginTop:16}},t&&e.React.createElement(e.ReactNative.View,{style:s.titleContainer},n&&e.React.createElement(e.ReactNative.Image,{style:s.icon,source:n,resizeMode:"cover"}),e.React.createElement(e.ReactNative.Text,{style:s.titleText},t.toUpperCase())),e.React.createElement(e.ReactNative.View,{style:s.main},o?e.React.createElement(e.ReactNative.View,{style:{paddingHorizontal:16,paddingVertical:16}},a):a))}function Je(){const t=e.stylesheet.createThemedStyleSheet({container:{flexDirection:"column",alignItems:"center",paddingVertical:24,paddingHorizontal:16},title:{fontSize:28,fontWeight:"700",color:u.semanticColors.TEXT_NORMAL,marginBottom:4},subtitle:{fontSize:16,fontWeight:"500",color:u.semanticColors.TEXT_MUTED},iconContainer:{backgroundColor:u.semanticColors.BACKGROUND_SECONDARY,borderRadius:16,padding:12,marginBottom:16},icon:{width:32,height:32,tintColor:u.semanticColors.TEXT_NORMAL}});return e.React.createElement(e.ReactNative.View,{style:t.container},e.React.createElement(e.ReactNative.View,{style:t.iconContainer},e.React.createElement(e.ReactNative.Image,{source:i.getAssetIDByName("SettingsIcon"),style:t.icon})),e.React.createElement(e.ReactNative.Text,{style:t.title},"Commands"),e.React.createElement(e.ReactNative.Text,{style:t.subtitle},"A collection of useful commands"))}function et({forceRerender:t}){const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY}});return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(I,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Fact Display Settings",icon:i.getAssetIDByName("SettingsIcon")},e.React.createElement(f,{label:"Send as Reply",subLabel:"Send facts as a reply to the command message",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ReplyIcon")}),value:r.storage.factSettings?.sendAsReply??!0,onValueChange:function(a){r.storage.factSettings.sendAsReply=a,t()}}),e.React.createElement(f,{label:"Include Source Citation",subLabel:"Include the source of facts when available",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("LinkIcon")}),value:r.storage.factSettings?.includeCitation??!1,onValueChange:function(a){r.storage.factSettings.includeCitation=a,t()}})),e.React.createElement(C,{title:"Available Fact Commands",icon:i.getAssetIDByName("BookmarkIcon")},e.React.createElement(f,{label:"/catfact",subLabel:"Get random cat facts",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ic_cat")}),value:r.storage.enabledCommands?.catfact??!0,onValueChange:function(a){r.storage.enabledCommands.catfact=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/dogfact",subLabel:"Get random dog facts",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ic_dog")}),value:r.storage.enabledCommands?.dogfact??!0,onValueChange:function(a){r.storage.enabledCommands.dogfact=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/useless",subLabel:"Get random useless facts",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("QuestionMarkIcon")}),value:r.storage.enabledCommands?.useless??!0,onValueChange:function(a){r.storage.enabledCommands.useless=a,r.storage.pendingRestart=!0,t()}}))))}function tt({forceRerender:t}){G.useProxy(r.storage);const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY},infoText:{fontSize:14,color:u.semanticColors.TEXT_MUTED,marginBottom:16,textAlign:"center"},currentText:{fontSize:14,color:u.semanticColors.TEXT_NORMAL,textAlign:"center",fontWeight:"600"}}),a=r.storage.garySettings?.imageSource||"gary",o=function(s){console.log(`[Gary Settings] Changing from ${a} to ${s}`),r.storage.garySettings.imageSource=s,t()};return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(I,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Gary Command Settings",icon:i.getAssetIDByName("SettingsIcon")},e.React.createElement(f,{label:"/gary",subLabel:"Send random Gary images to channel",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ic_cat")}),value:r.storage.enabledCommands?.gary??!0,onValueChange:function(s){r.storage.enabledCommands.gary=s,r.storage.pendingRestart=!0,t()}})),e.React.createElement(C,{title:"Image Source Selection",icon:i.getAssetIDByName("DownloadIcon"),padding:!0},e.React.createElement(e.ReactNative.Text,{style:n.infoText},"Choose which API the /gary command should use to fetch images.")),e.React.createElement(C,{title:"API Options",icon:i.getAssetIDByName("CloudIcon")},e.React.createElement(f,{label:"Gary API",subLabel:"Original Gary the cat images from api.garythe.cat",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ic_cat")}),value:a==="gary",onValueChange:function(s){return s&&o("gary")}}),e.React.createElement(f,{label:"Cat API",subLabel:"Random cat pictures from thecatapi.com",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ic_cat")}),value:a==="catapi",onValueChange:function(s){return s&&o("catapi")}}),e.React.createElement(f,{label:"Minker API",subLabel:"Minky images from minky.materii.dev",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ImageIcon")}),value:a==="minker",onValueChange:function(s){return s&&o("minker")}}),e.React.createElement(f,{label:"Goober API",subLabel:"Goober images from api.garythe.cat/goober",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ImageIcon")}),value:a==="goober",onValueChange:function(s){return s&&o("goober")}})),e.React.createElement(C,{title:"Current Selection",icon:i.getAssetIDByName("CheckmarkIcon"),padding:!0},e.React.createElement(e.ReactNative.Text,{style:n.currentText},"Currently using: ",a==="gary"?"Gary API":a==="catapi"?"Cat API":a==="minker"?"Minker API":a==="goober"?"Goober API":"Gary API"))))}function at({forceRerender:t}){const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY}});return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(I,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"List Display Settings",icon:i.getAssetIDByName("SettingsIcon")},e.React.createElement(f,{label:"Always Send Detailed Plugin List",subLabel:"Always use detailed mode when listing plugins",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("PuzzlePieceIcon")}),value:r.storage.listSettings?.pluginListAlwaysDetailed??!1,onValueChange:function(a){r.storage.listSettings.pluginListAlwaysDetailed=a,t()}}),e.React.createElement(f,{label:"Always Send Detailed Theme List",subLabel:"Always use detailed mode when listing themes",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("PaintPaletteIcon")}),value:r.storage.listSettings?.themeListAlwaysDetailed??!1,onValueChange:function(a){r.storage.listSettings.themeListAlwaysDetailed=a,t()}})),e.React.createElement(C,{title:"Available List Commands",icon:i.getAssetIDByName("ListViewIcon")},e.React.createElement(f,{label:"/plugin-list",subLabel:"List all installed plugins",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("PuzzlePieceIcon")}),value:r.storage.enabledCommands?.pluginList??!0,onValueChange:function(a){r.storage.enabledCommands.pluginList=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/theme-list",subLabel:"List all installed themes",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("PaintPaletteIcon")}),value:r.storage.enabledCommands?.themeList??!0,onValueChange:function(a){r.storage.enabledCommands.themeList=a,r.storage.pendingRestart=!0,t()}}))))}function nt({forceRerender:t}){const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY}});return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(I,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Image Commands",icon:i.getAssetIDByName("ImageIcon")},e.React.createElement(f,{label:"/petpet",subLabel:"Create pet-pet GIF of a user",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("HandIcon")}),value:r.storage.enabledCommands?.petpet??!0,onValueChange:function(a){r.storage.enabledCommands.petpet=a,r.storage.pendingRestart=!0,t()}})),e.React.createElement(C,{title:"KonoChan Commands",icon:i.getAssetIDByName("ImageIcon")},e.React.createElement(f,{label:"/konoself",subLabel:"Get random image from KonoChan (private)",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("EyeIcon")}),value:r.storage.enabledCommands?.konoself??!0,onValueChange:function(a){r.storage.enabledCommands.konoself=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/konosend",subLabel:"Send random image from KonoChan to channel",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ImageIcon")}),value:r.storage.enabledCommands?.konosend??!0,onValueChange:function(a){r.storage.enabledCommands.konosend=a,r.storage.pendingRestart=!0,t()}}))))}function rt({forceRerender:t}){const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY},infoText:{fontSize:14,color:u.semanticColors.TEXT_MUTED,textAlign:"center",lineHeight:20}});return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(I,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Spotify Commands",icon:i.getAssetIDByName("SpotifyNeutralIcon")},e.React.createElement(f,{label:"/spotify track",subLabel:"Share your current Spotify track",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SpotifyNeutralIcon")}),value:r.storage.enabledCommands?.spotifyTrack??!0,onValueChange:function(a){r.storage.enabledCommands.spotifyTrack=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/spotify album",subLabel:"Share your current track's album",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SpotifyNeutralIcon")}),value:r.storage.enabledCommands?.spotifyAlbum??!0,onValueChange:function(a){r.storage.enabledCommands.spotifyAlbum=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/spotify artists",subLabel:"Share your current track's artists",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SpotifyNeutralIcon")}),value:r.storage.enabledCommands?.spotifyArtists??!0,onValueChange:function(a){r.storage.enabledCommands.spotifyArtists=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/spotify cover",subLabel:"Share your current track's cover",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SpotifyNeutralIcon")}),value:r.storage.enabledCommands?.spotifyCover??!0,onValueChange:function(a){r.storage.enabledCommands.spotifyCover=a,r.storage.pendingRestart=!0,t()}})),e.React.createElement(C,{title:"About Spotify Commands",icon:i.getAssetIDByName("InfoIcon"),padding:!0},e.React.createElement(e.ReactNative.Text,{style:n.infoText},"These commands allow you to share your current Spotify activity in Discord. Make sure you have Spotify connected to Discord for these commands to work properly."))))}function st({forceRerender:t}){const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY}});return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(I,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Message Commands",icon:i.getAssetIDByName("ChatIcon")},e.React.createElement(f,{label:"/firstmessage",subLabel:"Get the first message in a channel",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ChatIcon")}),value:r.storage.enabledCommands?.firstmessage??!0,onValueChange:function(a){r.storage.enabledCommands.firstmessage=a,r.storage.pendingRestart=!0,t()}})),e.React.createElement(C,{title:"System Commands",icon:i.getAssetIDByName("SettingsIcon")},e.React.createElement(f,{label:"/sysinfo",subLabel:"Display system information",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SettingsIcon")}),value:r.storage.enabledCommands?.sysinfo??!0,onValueChange:function(a){r.storage.enabledCommands.sysinfo=a,r.storage.pendingRestart=!0,t()}}))))}function ot(){const t=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY},creditItem:{flexDirection:"row",alignItems:"center",paddingVertical:12,paddingHorizontal:16,backgroundColor:u.semanticColors.CARD_PRIMARY_BG,borderRadius:12,marginHorizontal:16,marginVertical:4},avatar:{width:40,height:40,borderRadius:20,marginRight:12},textContainer:{flex:1},commandText:{fontSize:16,fontWeight:"600",color:u.semanticColors.TEXT_NORMAL},authorText:{fontSize:14,color:u.semanticColors.TEXT_MUTED,marginTop:2},infoText:{fontSize:14,color:u.semanticColors.TEXT_MUTED,marginBottom:16,textAlign:"center"},versionText:{fontSize:14,color:u.semanticColors.TEXT_NORMAL,textAlign:"center",fontWeight:"600",lineHeight:20}}),n=[{command:"Facts Commands",author:"jdev082",avatar:"https://github.com/jdev082.png"},{command:"List Commands",author:"Kitomanari",avatar:"https://github.com/kitomanari.png"},{command:"PetPet Command",author:"wolfieeee",avatar:"https://github.com/wolfieeee.png"},{command:"KonoChan Commands",author:"btmc727 & Rico040",avatar:"https://github.com/btmc727.png"},{command:"FirstMessage Command",author:"sapphire",avatar:"https://github.com/sapphiredevs.png"},{command:"Sysinfo Command",author:"mugman",avatar:"https://github.com/mugmandev.png"},{command:"Spotify Commands",author:"Kitomanari",avatar:"https://github.com/kitomanari.png"},{command:"Gary Command",author:"Zach Orange",avatar:"https://github.com/zachorange.png"}];return e.React.createElement(e.ReactNative.View,{style:t.container},e.React.createElement(I,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Plugin Authors",icon:i.getAssetIDByName("PeopleIcon"),padding:!0},e.React.createElement(e.ReactNative.Text,{style:t.infoText},"Thanks to all the amazing developers who contributed to this plugin collection!")),n.map(function(a,o){return e.React.createElement(e.ReactNative.View,{key:o,style:t.creditItem},e.React.createElement(e.ReactNative.Image,{source:{uri:a.avatar},style:t.avatar}),e.React.createElement(e.ReactNative.View,{style:t.textContainer},e.React.createElement(e.ReactNative.Text,{style:t.commandText},a.command),e.React.createElement(e.ReactNative.Text,{style:t.authorText},"by ",a.author)))}),e.React.createElement(C,{title:"About",icon:i.getAssetIDByName("InfoIcon"),padding:!0},e.React.createElement(e.ReactNative.Text,{style:t.versionText},"Commands Plugin Collection",` +Source: ${t.source}`),n},me={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(t,n){try{const a=await ge(),o=Date.now().toString();return V.sendMessage(n.channel.id,{content:_(a)},void 0,{nonce:o}),{type:4}}catch(a){return console.error("[CatFact] Error:",a),{type:4}}}},pe={name:"dogfact",displayName:"dogfact",description:"Sends a dog fact.",displayDescription:"Sends a dog fact.",applicationId:"-1",inputType:1,type:1,execute:async function(t,n){try{const a=await ue(),o=Date.now().toString();return V.sendMessage(n.channel.id,{content:_(a)},void 0,{nonce:o}),{type:4}}catch(a){return console.error("[DogFact] Error:",a),{type:4}}}},he={name:"useless",displayName:"useless",description:"Sends a useless fact.",displayDescription:"Sends a useless fact.",applicationId:"-1",inputType:1,type:1,execute:async function(t,n){try{const a=await de(),o=Date.now().toString();return V.sendMessage(n.channel.id,{content:_(a)},void 0,{nonce:o}),{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"},Ce={DETAILED:"detailed"},U="",D={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."},F={SEMICOL:"; ",NEW_LINE:` +`},Re="Nothing to see here, huh...",j="github.com/fres621/vendetta-plugins",I={ENABLED:"\u2705",DISABLED:"\u274C",SELECTED:"\u2705",NOT_SELECTED:"\u274C"},be=h.findByProps("sendMessage","receiveMessage"),N=h.findByProps("sendBotMessage"),K=function(){try{return h.findByStoreName("UserStore").getCurrentUser()?.premiumType===2?4e3:2e3}catch{return 2e3}}(),z=function(t){return Object.keys(t).includes(j)},W=function(t){return Object.values(t).find(function(n){return n.id==j})?.enabled},H=function(t){return t.find(function(n){return n.name===Ce.DETAILED})?.value??!1},T=function(t){return!t||!Array.isArray(t)||t.length===0?"Unknown":t.filter(function(n){return n&&(typeof n=="string"||typeof n=="object"&&n.name)}).map(function(n){return typeof n=="string"?n:n.name||"Unknown"}).join(F.SEMICOL)||"Unknown"},q=function(t){return t.join(F.NEW_LINE).trimEnd()},B=function(t){return q(t).length},L=async function(t,n){const a=Date.now().toString();await be.sendMessage(t,{content:q(n)},void 0,{nonce:a})},X=function(t,n){return[`**My ${t} List | ${n} ${t}s**`,U]};async function Ie(t,n){try{const a=H(t),o=r.storage.themeListAlwaysDetailed??!1;if(!v.themes||typeof v.themes!="object"){const p=n.channel.id;return N.sendBotMessage(p,"No themes found or themes not loaded yet."),{type:4}}const s=Object.values(v.themes),d=n.channel.id,l=X("Theme",Object.keys(v.themes).length);if(s.length)for(const p of s){if(!p||typeof p!="object")continue;const{selected:g,data:y,id:R}=p,A=y?.name||"Unknown Theme",w=y?.description||"No description",M=y?.authors;a||o?l.push(`> **Name**: ${A}`,`> **Selected**: ${g?I.SELECTED:I.NOT_SELECTED}`,`> **Description**: ${w}`,`> **Authors**: ${T(M)}`,`> **[Install!](${R||"unknown"})**`,U):l.push(`> ${g?I.SELECTED:I.NOT_SELECTED} **${A}** by ${T(M)}`)}else l.push(Re);const m=B(l)>K;if(m&&!z(b.plugins))N.sendBotMessage(d,D.SLM_NOT_INSTALLED);else if(m&&!W(b.plugins))N.sendBotMessage(d,D.SLM_NOT_ENABLED);else{if(B(l)>2e3)return u.alerts.showConfirmationAlert({content:S.CONTENT,confirmText:S.CONFIRM,cancelText:S.CANCEL,onConfirm:async function(){return await L(d,l)}});await L(d,l)}}catch(a){return console.error("[ThemeList] Error:",a),{type:4}}}async function Ee(t,n){try{const a=H(t),o=r.storage.pluginListAlwaysDetailed??!1,s=n.channel.id;if(!b.plugins||typeof b.plugins!="object")return N.sendBotMessage(s,"No plugins found or plugins not loaded yet."),{type:4};const d=X("Plugin",Object.keys(b.plugins).length);for(const m of Object.values(b.plugins)){if(!m||typeof m!="object")continue;const{enabled:p,manifest:g,id:y}=m,R=g?.name||"Unknown Plugin",A=g?.description||"No description",w=g?.authors;a||o?d.push(`> **Name**: ${R}`,`> **Status**: ${p?I.ENABLED:I.DISABLED}`,`> **Description**: ${A}`,`> **Authors**: ${T(w)}`,`> **[Install!](${y||"unknown"})**`,U):d.push(`> ${p?I.ENABLED:I.DISABLED} **${R}** by ${T(w)}`)}const l=B(d)>K;if(l&&!z(b.plugins))N.sendBotMessage(s,D.SLM_NOT_INSTALLED);else if(l&&!W(b.plugins))N.sendBotMessage(s,D.SLM_NOT_ENABLED);else{if(B(d)>2e3)return u.alerts.showConfirmationAlert({content:S.CONTENT,confirmText:S.CONFIRM,cancelText:S.CANCEL,onConfirm:async function(){return await L(s,d)}});await L(s,d)}}catch(a){return console.error("[PluginList] Error:",a),{type:4}}}const Se={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:Ee,applicationId:"-1",inputType:1,type:1},Ne={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:Ie,applicationId:"-1",inputType:1,type:1},Ae=h.findByStoreName("UserStore"),we=h.findByProps("sendMessage"),ve={name:"petpet",displayName:"petpet",description:"PetPet someone",displayDescription:"PetPet someone",options:[{name:"user",description:"The user(or their id) to be patted",type:6,required:!0,displayName:"user",displayDescription:"The user(or their id) to be patted"}],execute:async function(t,n){try{const a=(await Ae.getUser(t[0].value)).getAvatarURL(512),o=await ye(a),s=Date.now().toString();return we.sendMessage(n.channel.id,{content:o.url},void 0,{nonce:s}),{type:4}}catch(a){return console.error("[PetPet] Error:",a),{type:4}}},applicationId:"-1",inputType:1,type:1},De=h.findByProps("sendMessage"),Te=h.findByProps("sendBotMessage","sendMessage","receiveMessage"),Y=async function(t){const n="https://konachan.com/post.json",a=t?"rating:explicit":"rating:safe",o=Math.floor(Math.random()*100);try{const s=await(await fetch(`${n}?tags=${a}&limit=1&page=${o}`)).json();return!Array.isArray(s)||s.length===0?null:s[0].file_url}catch(s){return console.error("[KonoChan Randomizer] Error fetching image:",s),null}},Z=function(){return u.alerts.showConfirmationAlert({title:"NSFW Content Warning",content:"NSFW content can only be sent in NSFW channels!",confirmText:"Okay",cancelText:null,confirmColor:"brand",isDismissable:!0})},J={name:"nsfw",description:"Include NSFW content?",type:5,required:!1,displayName:"nsfw",displayDescription:"Include NSFW content?"},Be={name:"konoself",displayName:"konoself",description:"Fetch a random image from KonoChan for yourself.",displayDescription:"Fetch a random image from KonoChan for yourself.",options:[J],execute:async function(t,n){try{const a=new Map(t.map(function(s){return[s.name,s]})).get("nsfw")?.value||!1;if(a&&!n.channel.nsfw)return Z(),{type:4};const o=await Y(a);return o?(Te.sendBotMessage(n.channel.id,`Here's your random image: ${o}`),{type:4}):{type:4}}catch(a){return console.error("[KonoSelf] Error:",a),{type:4}}},applicationId:"-1",inputType:1,type:1},Le={name:"konosend",displayName:"konosend",description:"Fetch a random image from KonoChan and send it to the channel.",displayDescription:"Fetch a random image from KonoChan and send it to the channel.",options:[J],execute:async function(t,n){try{const a=new Map(t.map(function(d){return[d.name,d]})).get("nsfw")?.value||!1;if(a&&!n.channel.nsfw)return Z(),{type:4};const o=await Y(a);if(!o)return{type:4};const s=Date.now().toString();return De.sendMessage(n.channel.id,{content:o},void 0,{nonce:s}),{type:4}}catch(a){return console.error("[KonoSend] Error:",a),{type:4}}},applicationId:"-1",inputType:1,type:1},Q=h.findByProps("getAPIBaseURL","get"),ke=h.findByProps("sendMessage"),k=async function(t,n,a){const o=n?`&author_id=${n}`:"",s=a?`&channel_id=${a}`:"",d=n?"":"&min_id=0";return(await Q.get({url:`/guilds/${t}/messages/search`,query:`include_nsfw=true${o}${s}${d}&sort_by=timestamp&sort_order=asc&offset=0`})).body.messages[0][0]},ee=async function(t,n){const a=n?`&author_id=${n}`:"",o=n?"":"&min_id=0";return(await Q.get({url:`/channels/${t}/messages/search`,query:`&sort_by=timestamp&sort_order=asc&offset=0${a}${o}`})).body.messages[0][0]},$e={name:"firstmessage",displayName:"firstmessage",description:"Tired of scrolling to first message?",displayDescription:"Tired of scrolling to first message?",options:[{name:"user",displayName:"user",description:"Target user to get their first message in this server/dm",displayDescription:"Target user to get their first message in this server/dm",type:6,required:!1},{name:"channel",displayName:"channel",description:"Target channel to get first message of",displayDescription:"Target channel to get first message of",type:7,required:!1},{name:"send",displayName:"send",description:"Whether to send the resulting url",displayDescription:"Whether to send the resulting url",type:5,required:!1}],execute:async function(t,n){try{const a=new Map(t.map(function(R){return[R.name,R]})),o=a.get("user")?.value,s=a.get("channel")?.value,d=a.get("send")?.value,l=n.guild?.id,m=n.channel.id,p=n.channel.type===1;let g="https://discord.com/channels/",y;if(!o&&!s)p?(y=await ee(m),g+=`@me/${m}/${y.id}`):(y=await k(l),g+=`${l}/${y.channel_id}/${y.id}`);else if(o)p?(y=await ee(m,o),g+=`@me/${m}/${y.id}`):(y=await k(l,o),g+=`${l}/${y.channel_id}/${y.id}`);else if(s){if(p)return{type:4};y=await k(l,null,s),g+=`${l}/${s}/${y.id}`}else{if(p)return{type:4};y=await k(l,o,s),g+=`${l}/${s}/${y.id}`}if(d){const R=Date.now().toString();return ke.sendMessage(n.channel.id,{content:g},void 0,{nonce:R}),{type:4}}else return e.url.openDeeplink(g),{type:4}}catch(a){return console.error("[FirstMessage] Error:",a),{type:4}}},applicationId:"-1",inputType:1,type:1},Me=h.findByProps("sendMessage"),Pe=h.findByProps("sendBotMessage","sendMessage","receiveMessage");function xe(){let{height:t,width:n,scale:a}=e.ReactNative.Dimensions.get("screen");return t*=a,n*=a,{width:n,height:t}}function Ve(){try{const t=h.findByProps("memory");if(!t)return{cpuCoreCount:"N/A",cpuPerc:"N/A",memUsage:"N/A",netInfo:"N/A"};const{cpuCoreCount:n,cpuPercentage:a,memory:o}=t,s=a?a.toFixed(2)+"%":"N/A",d=o?parseFloat((o/1e3).toPrecision(3))+" MB":"N/A";let l="N/A";try{const m=h.findByProps("useNetInfo");if(m){const p=Object.values(m.fetch()).filter(function(g){return g?.type})[0];if(p){const{type:g,details:y}=p;l={wifi:"WiFi",ethernet:"Ethernet",other:"Unknown",bluetooth:"Bluetooth",wimax:"WiMAX",vpn:"VPN",cellular:y?.cellularGeneration?.toUpperCase()||"Cellular"}[g]??g}}}catch(m){console.warn("Network info unavailable:",m)}return{cpuCoreCount:n,cpuPerc:s,memUsage:d,netInfo:l}}catch(t){return console.warn("Hardware info unavailable:",t),{cpuCoreCount:"N/A",cpuPerc:"N/A",memUsage:"N/A",netInfo:"N/A"}}}function _e(){try{const{NativeModules:t}=e.ReactNative;return(t.InfoDictionaryManager??t.RTNClientInfoManager)||{}}catch(t){return console.warn("Discord info unavailable:",t),{}}}function Ue(){try{const{cpuCoreCount:t,cpuPerc:n,memUsage:a,netInfo:o}=Ve(),s=_e(),{vendetta:d,discord:l,react:m,hermes:p,os:g,device:y}=ce.getDebugInfo(),{version:R,bytecodeVersion:A}=p||{},{version:w,nativeVersion:M}=m||{},{name:ne,version:dt,sdk:re}=g||{},{manufacturer:ut,brand:se,model:oe,codename:gt}=y||{},{version:yt}=d||{},{version:ft,build:mt}=l||{},{ReleaseChannel:pt}=s,ht=ne=="iOS"?gt:`${se} ${oe}`,{width:Ct,height:Rt}=xe();let P={Device:{Device:ht||"Unknown",Model:oe||"Unknown",Manufacturer:ut||"Unknown",Brand:se||"Unknown",Display:`${Ct}x${Rt}`},Hardware:{"CPU Cores":t||"N/A",Network:o},Software:{OS:ne||"Unknown",Version:dt||"Unknown"},Discord:{Branch:pt||"Unknown",Version:ft||"Unknown",Build:mt||"Unknown",Vendetta:yt||"Unknown","CPU Usage":n,"Memory Usage":a},React:{Version:w||"Unknown","Hermes Bytecode":A||"Unknown",Hermes:R||"Unknown",Native:M||"Unknown"}};return window.enmity&&(P.Discord.Enmity=window.enmity.version),window.aliucord&&(P.Discord.Aliucord=window.aliucord.version),re&&(P.Software["SDK Version"]=re),P}catch(t){throw console.error("Error generating system info:",t),t}}const te=["device","hardware","software","discord","react","ephemeral"];for(const t of te)r.storage[t]===void 0&&(r.storage[t]=!0);function Oe(t,n){try{let a=[`__System Information__ +`];const o=Ue();Object.keys(o).forEach(function(l){const m=r.storage[l.toLowerCase()],p=t.find(function(g){return g.name==l.toLowerCase()})?.value??m;(p||m)&&!(m&&!p)&&(a.push(`[**${l}**]`),Object.keys(o[l]).forEach(function(g){a.push(`> ${g}: ${o[l][g]}`)}))});const s=r.storage.ephemeral,d=t.find(function(l){return l.name=="ephemeral"})?.value??s;if((d||s)&&!(s&&!d))return Pe.sendBotMessage(n.channel.id,a.join(` +`)),{type:4};{const l=Date.now().toString();return Me.sendMessage(n.channel.id,{content:a.join(` +`)},void 0,{nonce:l}),{type:4}}}catch(a){return console.error("[Sysinfo] Error:",a),{type:4}}}const Ge={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},...te.slice(0,-1).map(function(t){return{name:t,displayName:t,description:`Display the ${t} section. Set default in settings.`,displayDescription:`Display the ${t} section. Set default in settings.`,type:5,required:!1}})],execute:Oe,applicationId:"-1",inputType:1,type:1},ae=h.findByProps("sendMessage","receiveMessage"),Fe=h.findByStoreName("SpotifyStore");async function je(t,n){return r.storage.enabledCommands?.spotifyTrack?$(n,function(a){return`https://open.spotify.com/track/${a.id}`}):{type:4}}async function Ke(t,n){return r.storage.enabledCommands?.spotifyAlbum?$(n,function(a){return`https://open.spotify.com/album/${a.album.id}`}):{type:4}}async function ze(t,n){return r.storage.enabledCommands?.spotifyArtists?$(n,function(a){return a.artists.map(function(o){return`[${o.name}](${o.external_urls.spotify})`}).join(` +`)}):{type:4}}async function We(t,n){return r.storage.enabledCommands?.spotifyCover?$(n,function(a){return a.album.image.url}):{type:4}}async function $(t,n){try{const a=t.channel.id,o=Fe?.getTrack?.();if(!o){const l=Date.now().toString();return ae.sendMessage(a,{content:"You are not listening to any track."},void 0,{nonce:l}),{type:4}}const s=n(o),d=Date.now().toString();return ae.sendMessage(a,{content:s},void 0,{nonce:d}),{type:4}}catch(a){return console.error("[Spotify Command] Error:",a),{type:4}}}const He={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:je},qe={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:Ke},Xe={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:ze},Ye={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:We},Ze=h.findByProps("sendMessage"),Je={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(t,n){try{r.storage.garySettings||(r.storage.garySettings={imageSource:"gary"});const a=r.storage.garySettings.imageSource||"gary";console.log(`[Gary Command] Using image source: ${a}`);const o=await fe(a);if(!o)return console.log("[Gary Command] No image URL received"),{type:4};console.log(`[Gary Command] Sending image: ${o}`);const s=Date.now().toString();return Ze.sendMessage(n.channel.id,{content:o},void 0,{nonce:s}),{type:4}}catch(a){return console.error("[Gary] Error:",a),{type:4}}},applicationId:"-1",inputType:1,type:1},{ScrollView:E}=h.findByProps("ScrollView"),{FormRow:c,FormSwitchRow:f}=le.Forms;function C({title:t,icon:n,children:a,padding:o=!1}){const s=e.stylesheet.createThemedStyleSheet({main:{backgroundColor:u.semanticColors.CARD_PRIMARY_BG,borderColor:u.semanticColors.BORDER_FAINT,borderWidth:1,borderRadius:16,overflow:"hidden",flex:1},titleContainer:{marginBottom:8,marginHorizontal:0,marginTop:8,gap:4,flexDirection:"row",alignItems:"center"},icon:{width:16,height:16,marginTop:1.5,tintColor:u.semanticColors.TEXT_MUTED},titleText:{fontSize:14,fontWeight:"600",color:u.semanticColors.TEXT_MUTED}});return e.React.createElement(e.ReactNative.View,{style:{marginHorizontal:16,marginTop:16}},t&&e.React.createElement(e.ReactNative.View,{style:s.titleContainer},n&&e.React.createElement(e.ReactNative.Image,{style:s.icon,source:n,resizeMode:"cover"}),e.React.createElement(e.ReactNative.Text,{style:s.titleText},t.toUpperCase())),e.React.createElement(e.ReactNative.View,{style:s.main},o?e.React.createElement(e.ReactNative.View,{style:{paddingHorizontal:16,paddingVertical:16}},a):a))}function Qe(){const t=e.stylesheet.createThemedStyleSheet({container:{flexDirection:"column",alignItems:"center",paddingVertical:24,paddingHorizontal:16},title:{fontSize:28,fontWeight:"700",color:u.semanticColors.TEXT_NORMAL,marginBottom:4},subtitle:{fontSize:16,fontWeight:"500",color:u.semanticColors.TEXT_MUTED},iconContainer:{backgroundColor:u.semanticColors.BACKGROUND_SECONDARY,borderRadius:16,padding:12,marginBottom:16},icon:{width:32,height:32,tintColor:u.semanticColors.TEXT_NORMAL}});return e.React.createElement(e.ReactNative.View,{style:t.container},e.React.createElement(e.ReactNative.View,{style:t.iconContainer},e.React.createElement(e.ReactNative.Image,{source:i.getAssetIDByName("SettingsIcon"),style:t.icon})),e.React.createElement(e.ReactNative.Text,{style:t.title},"Commands"),e.React.createElement(e.ReactNative.Text,{style:t.subtitle},"A collection of useful commands"))}function et({forceRerender:t}){const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY}});return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(E,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Fact Display Settings",icon:i.getAssetIDByName("SettingsIcon")},e.React.createElement(f,{label:"Send as Reply",subLabel:"Send facts as a reply to the command message",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ArrowAngleLeftUpIcon")}),value:r.storage.factSettings?.sendAsReply??!0,onValueChange:function(a){r.storage.factSettings.sendAsReply=a,t()}}),e.React.createElement(f,{label:"Include Source Citation",subLabel:"Include the source of facts when available",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("LinkIcon")}),value:r.storage.factSettings?.includeCitation??!1,onValueChange:function(a){r.storage.factSettings.includeCitation=a,t()}})),e.React.createElement(C,{title:"Available Fact Commands",icon:i.getAssetIDByName("BookmarkIcon")},e.React.createElement(f,{label:"/catfact",subLabel:"Get random cat facts",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("BookCheckIcon")}),value:r.storage.enabledCommands?.catfact??!0,onValueChange:function(a){r.storage.enabledCommands.catfact=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/dogfact",subLabel:"Get random dog facts",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("BookCheckIcon")}),value:r.storage.enabledCommands?.dogfact??!0,onValueChange:function(a){r.storage.enabledCommands.dogfact=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/useless",subLabel:"Get random useless facts",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("BookCheckIcon")}),value:r.storage.enabledCommands?.useless??!0,onValueChange:function(a){r.storage.enabledCommands.useless=a,r.storage.pendingRestart=!0,t()}}))))}function tt({forceRerender:t}){G.useProxy(r.storage);const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY},infoText:{fontSize:14,color:u.semanticColors.TEXT_MUTED,marginBottom:16,textAlign:"center"},currentText:{fontSize:14,color:u.semanticColors.TEXT_NORMAL,textAlign:"center",fontWeight:"600"}}),a=r.storage.garySettings?.imageSource||"gary",o=function(s){console.log(`[Gary Settings] Changing from ${a} to ${s}`),r.storage.garySettings.imageSource=s,t()};return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(E,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Gary Command Settings",icon:i.getAssetIDByName("SettingsIcon")},e.React.createElement(f,{label:"/gary",subLabel:"Send random Gary images to channel",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("AttachmentIcon")}),value:r.storage.enabledCommands?.gary??!0,onValueChange:function(s){r.storage.enabledCommands.gary=s,r.storage.pendingRestart=!0,t()}})),e.React.createElement(C,{title:"Image Source Selection",icon:i.getAssetIDByName("DownloadIcon"),padding:!0},e.React.createElement(e.ReactNative.Text,{style:n.infoText},"Choose which API the /gary command should use to fetch images.")),e.React.createElement(C,{title:"API Options",icon:i.getAssetIDByName("CloudIcon")},e.React.createElement(f,{label:"Gary API",subLabel:"Original Gary the cat images from api.garythe.cat",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ImageIcon")}),value:a==="gary",onValueChange:function(s){return s&&o("gary")}}),e.React.createElement(f,{label:"Cat API",subLabel:"Random cat pictures from thecatapi.com",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ImageIcon")}),value:a==="catapi",onValueChange:function(s){return s&&o("catapi")}}),e.React.createElement(f,{label:"Minker API",subLabel:"Minky images from minky.materii.dev",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ImageIcon")}),value:a==="minker",onValueChange:function(s){return s&&o("minker")}}),e.React.createElement(f,{label:"Goober API",subLabel:"Goober images from api.garythe.cat/goober",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ImageIcon")}),value:a==="goober",onValueChange:function(s){return s&&o("goober")}})),e.React.createElement(C,{title:"Current Selection",icon:i.getAssetIDByName("CheckmarkIcon"),padding:!0},e.React.createElement(e.ReactNative.Text,{style:n.currentText},"Currently using: ",a==="gary"?"Gary API":a==="catapi"?"Cat API":a==="minker"?"Minker API":a==="goober"?"Goober API":"Gary API"))))}function at({forceRerender:t}){const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY}});return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(E,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"List Display Settings",icon:i.getAssetIDByName("SettingsIcon")},e.React.createElement(f,{label:"Always Send Detailed Plugin List",subLabel:"Always use detailed mode when listing plugins",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("PuzzlePieceIcon")}),value:r.storage.listSettings?.pluginListAlwaysDetailed??!1,onValueChange:function(a){r.storage.listSettings.pluginListAlwaysDetailed=a,t()}}),e.React.createElement(f,{label:"Always Send Detailed Theme List",subLabel:"Always use detailed mode when listing themes",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("PaintPaletteIcon")}),value:r.storage.listSettings?.themeListAlwaysDetailed??!1,onValueChange:function(a){r.storage.listSettings.themeListAlwaysDetailed=a,t()}})),e.React.createElement(C,{title:"Available List Commands",icon:i.getAssetIDByName("ListViewIcon")},e.React.createElement(f,{label:"/plugin-list",subLabel:"List all installed plugins",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("PuzzlePieceIcon")}),value:r.storage.enabledCommands?.pluginList??!0,onValueChange:function(a){r.storage.enabledCommands.pluginList=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/theme-list",subLabel:"List all installed themes",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("PaintPaletteIcon")}),value:r.storage.enabledCommands?.themeList??!0,onValueChange:function(a){r.storage.enabledCommands.themeList=a,r.storage.pendingRestart=!0,t()}}))))}function nt({forceRerender:t}){const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY}});return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(E,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Image Commands",icon:i.getAssetIDByName("ImageIcon")},e.React.createElement(f,{label:"/petpet",subLabel:"Create pet-pet GIF of a user",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("HandRequestSpeakIcon")}),value:r.storage.enabledCommands?.petpet??!0,onValueChange:function(a){r.storage.enabledCommands.petpet=a,r.storage.pendingRestart=!0,t()}})),e.React.createElement(C,{title:"KonoChan Commands",icon:i.getAssetIDByName("ImageIcon")},e.React.createElement(f,{label:"/konoself",subLabel:"Get random image from KonoChan (private)",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("EyeIcon")}),value:r.storage.enabledCommands?.konoself??!0,onValueChange:function(a){r.storage.enabledCommands.konoself=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/konosend",subLabel:"Send random image from KonoChan to channel",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ImageIcon")}),value:r.storage.enabledCommands?.konosend??!0,onValueChange:function(a){r.storage.enabledCommands.konosend=a,r.storage.pendingRestart=!0,t()}}))))}function rt({forceRerender:t}){const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY},infoText:{fontSize:14,color:u.semanticColors.TEXT_MUTED,textAlign:"center",lineHeight:20}});return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(E,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Spotify Commands",icon:i.getAssetIDByName("SpotifyNeutralIcon")},e.React.createElement(f,{label:"/spotify track",subLabel:"Share your current Spotify track",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SpotifyNeutralIcon")}),value:r.storage.enabledCommands?.spotifyTrack??!0,onValueChange:function(a){r.storage.enabledCommands.spotifyTrack=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/spotify album",subLabel:"Share your current track's album",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SpotifyNeutralIcon")}),value:r.storage.enabledCommands?.spotifyAlbum??!0,onValueChange:function(a){r.storage.enabledCommands.spotifyAlbum=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/spotify artists",subLabel:"Share your current track's artists",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SpotifyNeutralIcon")}),value:r.storage.enabledCommands?.spotifyArtists??!0,onValueChange:function(a){r.storage.enabledCommands.spotifyArtists=a,r.storage.pendingRestart=!0,t()}}),e.React.createElement(f,{label:"/spotify cover",subLabel:"Share your current track's cover",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SpotifyNeutralIcon")}),value:r.storage.enabledCommands?.spotifyCover??!0,onValueChange:function(a){r.storage.enabledCommands.spotifyCover=a,r.storage.pendingRestart=!0,t()}})),e.React.createElement(C,{title:"About Spotify Commands",icon:i.getAssetIDByName("InfoIcon"),padding:!0},e.React.createElement(e.ReactNative.Text,{style:n.infoText},"These commands allow you to share your current Spotify activity in Discord. Make sure you have Spotify connected to Discord for these commands to work properly."))))}function st({forceRerender:t}){const n=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY}});return e.React.createElement(e.ReactNative.View,{style:n.container},e.React.createElement(E,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Message Commands",icon:i.getAssetIDByName("ChatIcon")},e.React.createElement(f,{label:"/firstmessage",subLabel:"Get the first message in a channel",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ChatIcon")}),value:r.storage.enabledCommands?.firstmessage??!0,onValueChange:function(a){r.storage.enabledCommands.firstmessage=a,r.storage.pendingRestart=!0,t()}})),e.React.createElement(C,{title:"System Commands",icon:i.getAssetIDByName("SettingsIcon")},e.React.createElement(f,{label:"/sysinfo",subLabel:"Display system information",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SettingsIcon")}),value:r.storage.enabledCommands?.sysinfo??!0,onValueChange:function(a){r.storage.enabledCommands.sysinfo=a,r.storage.pendingRestart=!0,t()}}))))}function ot(){const t=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY},creditItem:{flexDirection:"row",alignItems:"center",paddingVertical:12,paddingHorizontal:16,backgroundColor:u.semanticColors.CARD_PRIMARY_BG,borderRadius:12,marginHorizontal:16,marginVertical:4},avatar:{width:40,height:40,borderRadius:20,marginRight:12},textContainer:{flex:1},commandText:{fontSize:16,fontWeight:"600",color:u.semanticColors.TEXT_NORMAL},authorText:{fontSize:14,color:u.semanticColors.TEXT_MUTED,marginTop:2},infoText:{fontSize:14,color:u.semanticColors.TEXT_MUTED,marginBottom:16,textAlign:"center"},versionText:{fontSize:14,color:u.semanticColors.TEXT_NORMAL,textAlign:"center",fontWeight:"600",lineHeight:20}}),n=[{command:"Facts Commands",author:"jdev082",avatar:"https://github.com/jdev082.png"},{command:"List Commands",author:"Kitomanari",avatar:"https://github.com/kitomanari.png"},{command:"PetPet Command",author:"wolfieeee",avatar:"https://github.com/wolfieeee.png"},{command:"KonoChan Commands",author:"btmc727 & Rico040",avatar:"https://github.com/btmc727.png"},{command:"FirstMessage Command",author:"sapphire",avatar:"https://github.com/sapphiredevs.png"},{command:"Sysinfo Command",author:"mugman",avatar:"https://github.com/mugmandev.png"},{command:"Spotify Commands",author:"Kitomanari",avatar:"https://github.com/kitomanari.png"},{command:"Gary Command",author:"Zach Orange",avatar:"https://github.com/zachorange.png"}];return e.React.createElement(e.ReactNative.View,{style:t.container},e.React.createElement(E,{style:{flex:1},contentContainerStyle:{paddingVertical:16,paddingBottom:38}},e.React.createElement(C,{title:"Plugin Authors",icon:i.getAssetIDByName("HeartIcon"),padding:!0},e.React.createElement(e.ReactNative.Text,{style:t.infoText},"Thanks to all the amazing developers who contributed to this plugin collection!")),n.map(function(a,o){return e.React.createElement(e.ReactNative.View,{key:o,style:t.creditItem},e.React.createElement(e.ReactNative.Image,{source:{uri:a.avatar},style:t.avatar}),e.React.createElement(e.ReactNative.View,{style:t.textContainer},e.React.createElement(e.ReactNative.Text,{style:t.commandText},a.command),e.React.createElement(e.ReactNative.Text,{style:t.authorText},"by ",a.author)))}),e.React.createElement(C,{title:"About",icon:i.getAssetIDByName("InfoIcon"),padding:!0},e.React.createElement(e.ReactNative.Text,{style:t.versionText},"Commands Plugin Collection",` `,"Version 1.0.0",` -`,"Made with \u2764\uFE0F for the community"))))}r.storage.factSettings||(r.storage.factSettings={sendAsReply:!0,includeCitation:!1}),r.storage.listSettings||(r.storage.listSettings={pluginListAlwaysDetailed:!1,themeListAlwaysDetailed:!1}),r.storage.garySettings||(r.storage.garySettings={imageSource:"gary"}),r.storage.enabledCommands||(r.storage.enabledCommands={catfact:!0,dogfact:!0,useless:!0,petpet:!0,pluginList:!0,themeList:!0,konoself:!0,konosend:!0,firstmessage:!0,sysinfo:!0,spotifyTrack:!0,spotifyAlbum:!0,spotifyArtists:!0,spotifyCover:!0,gary:!0}),r.storage.pendingRestart||(r.storage.pendingRestart=!1);function it(){G.useProxy(r.storage);const[t,n]=e.React.useReducer(function(d){return d+1},0),a=e.NavigationNative.useNavigation(),o=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY}});e.React.useEffect(function(){return function(){r.storage.pendingRestart&&(r.storage.pendingRestart=!1,u.alerts.showConfirmationAlert({title:"Restart Required",content:"You have made changes to commands. Please restart Discord to apply these changes.",confirmText:"Okay",cancelText:null}))}},[]);const s=function(d,l){a.push("VendettaCustomPage",{title:d,render:function(){return e.React.createElement(l,{forceRerender:n})}})};return e.React.createElement(e.ReactNative.View,{style:o.container},e.React.createElement(I,{style:{flex:1},contentContainerStyle:{paddingBottom:38},showsVerticalScrollIndicator:!1},e.React.createElement(Je,null),e.React.createElement(C,{title:"Command Categories",icon:i.getAssetIDByName("ChannelListIcon")},e.React.createElement(c,{label:"Facts Commands",subLabel:"Cat facts, dog facts, and useless facts",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("BookmarkIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Facts Commands",et)}}),e.React.createElement(c,{label:"List Commands",subLabel:"Plugin lists and theme lists",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ListViewIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("List Commands",at)}}),e.React.createElement(c,{label:"Image Commands",subLabel:"PetPet, KonoChan, and image utilities",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ImageIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Image Commands",nt)}}),e.React.createElement(c,{label:"Gary Commands",subLabel:`Gary images - Current: ${r.storage.garySettings?.imageSource==="gary"?"Gary API":r.storage.garySettings?.imageSource==="catapi"?"Cat API":r.storage.garySettings?.imageSource==="minker"?"Minker API":r.storage.garySettings?.imageSource==="goober"?"Goober API":"Gary API"}`,leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ic_cat")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Gary Commands",tt)}}),e.React.createElement(c,{label:"Spotify Commands",subLabel:"Share your Spotify activity",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SpotifyNeutralIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Spotify Commands",rt)}}),e.React.createElement(c,{label:"Other Commands",subLabel:"System info and miscellaneous",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("MoreHorizontalIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Other Commands",st)}})),e.React.createElement(C,{title:"More Options",icon:i.getAssetIDByName("SettingsIcon")},e.React.createElement(c,{label:"Credits",subLabel:"View plugin authors and contributors",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("PeopleIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Credits",ot)}}))))}r.storage.factSettings||(r.storage.factSettings={sendAsReply:!0,includeCitation:!1}),r.storage.listSettings||(r.storage.listSettings={pluginListAlwaysDetailed:!1,themeListAlwaysDetailed:!1}),r.storage.garySettings||(r.storage.garySettings={imageSource:"gary"}),r.storage.enabledCommands||(r.storage.enabledCommands={catfact:!0,dogfact:!0,useless:!0,petpet:!0,pluginList:!0,themeList:!0,konoself:!0,konosend:!0,firstmessage:!0,sysinfo:!0,spotifyTrack:!0,spotifyAlbum:!0,spotifyArtists:!0,spotifyCover:!0,gary:!0});const ct={catfact:me,dogfact:pe,useless:he,petpet:ve,pluginList:Se,themeList:Ne,konoself:Be,konosend:Le,firstmessage:Me,sysinfo:Ge,spotifyTrack:He,spotifyAlbum:Xe,spotifyArtists:Ye,spotifyCover:qe,gary:Ze};let U=[];var lt={onLoad:function(){console.log("[All-In-One Commands] Loading plugin...");for(const[t,n]of Object.entries(ct))r.storage.enabledCommands[t]&&U.push(ie.registerCommand(n));console.log("[All-In-One Commands] Plugin loaded successfully!")},onUnload:function(){console.log("[All-In-One Commands] Unloading plugin..."),U.forEach(function(t){return t()}),U=[],console.log("[All-In-One Commands] Plugin unloaded successfully!")},settings:it};return x.default=lt,Object.defineProperty(x,"__esModule",{value:!0}),x})({},vendetta.commands,vendetta.plugin,vendetta.metro,vendetta.themes,vendetta.plugins,vendetta.ui,vendetta.metro.common,vendetta.debug,vendetta.storage,vendetta.ui.assets,vendetta.ui.components); +`,"Made with \u2764\uFE0F for the community"))))}r.storage.factSettings||(r.storage.factSettings={sendAsReply:!0,includeCitation:!1}),r.storage.listSettings||(r.storage.listSettings={pluginListAlwaysDetailed:!1,themeListAlwaysDetailed:!1}),r.storage.garySettings||(r.storage.garySettings={imageSource:"gary"}),r.storage.enabledCommands||(r.storage.enabledCommands={catfact:!0,dogfact:!0,useless:!0,petpet:!0,pluginList:!0,themeList:!0,konoself:!0,konosend:!0,firstmessage:!0,sysinfo:!0,spotifyTrack:!0,spotifyAlbum:!0,spotifyArtists:!0,spotifyCover:!0,gary:!0}),r.storage.pendingRestart||(r.storage.pendingRestart=!1);function it(){G.useProxy(r.storage);const[t,n]=e.React.useReducer(function(d){return d+1},0),a=e.NavigationNative.useNavigation(),o=e.stylesheet.createThemedStyleSheet({container:{flex:1,backgroundColor:u.semanticColors.BACKGROUND_PRIMARY}});e.React.useEffect(function(){return function(){r.storage.pendingRestart&&(r.storage.pendingRestart=!1,u.alerts.showConfirmationAlert({title:"Restart Required",content:"You have made changes to commands. Please restart Discord to apply these changes.",confirmText:"Okay",cancelText:null}))}},[]);const s=function(d,l){a.push("VendettaCustomPage",{title:d,render:function(){return e.React.createElement(l,{forceRerender:n})}})};return e.React.createElement(e.ReactNative.View,{style:o.container},e.React.createElement(E,{style:{flex:1},contentContainerStyle:{paddingBottom:38},showsVerticalScrollIndicator:!1},e.React.createElement(Qe,null),e.React.createElement(C,{title:"Command Categories",icon:i.getAssetIDByName("ChannelListIcon")},e.React.createElement(c,{label:"Facts Commands",subLabel:"Cat facts, dog facts, and useless facts",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("BookmarkIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Facts Commands",et)}}),e.React.createElement(c,{label:"List Commands",subLabel:"Plugin lists and theme lists",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ListViewIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("List Commands",at)}}),e.React.createElement(c,{label:"Image Commands",subLabel:"PetPet, KonoChan, and image utilities",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("ImageIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Image Commands",nt)}}),e.React.createElement(c,{label:"Gary Commands",subLabel:`Gary images - Current: ${r.storage.garySettings?.imageSource==="gary"?"Gary API":r.storage.garySettings?.imageSource==="catapi"?"Cat API":r.storage.garySettings?.imageSource==="minker"?"Minker API":r.storage.garySettings?.imageSource==="goober"?"Goober API":"Gary API"}`,leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("CameraIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Gary Commands",tt)}}),e.React.createElement(c,{label:"Spotify Commands",subLabel:"Share your Spotify activity",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("SpotifyNeutralIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Spotify Commands",rt)}}),e.React.createElement(c,{label:"Other Commands",subLabel:"System info and miscellaneous",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("MoreHorizontalIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Other Commands",st)}})),e.React.createElement(C,{title:"More Options",icon:i.getAssetIDByName("SettingsIcon")},e.React.createElement(c,{label:"Credits",subLabel:"View plugin authors and contributors",leading:e.React.createElement(c.Icon,{source:i.getAssetIDByName("HeartIcon")}),trailing:e.React.createElement(c.Arrow,null),onPress:function(){return s("Credits",ot)}}))))}r.storage.factSettings||(r.storage.factSettings={sendAsReply:!0,includeCitation:!1}),r.storage.listSettings||(r.storage.listSettings={pluginListAlwaysDetailed:!1,themeListAlwaysDetailed:!1}),r.storage.garySettings||(r.storage.garySettings={imageSource:"gary"}),r.storage.enabledCommands||(r.storage.enabledCommands={catfact:!0,dogfact:!0,useless:!0,petpet:!0,pluginList:!0,themeList:!0,konoself:!0,konosend:!0,firstmessage:!0,sysinfo:!0,spotifyTrack:!0,spotifyAlbum:!0,spotifyArtists:!0,spotifyCover:!0,gary:!0});const ct={catfact:me,dogfact:pe,useless:he,petpet:ve,pluginList:Se,themeList:Ne,konoself:Be,konosend:Le,firstmessage:$e,sysinfo:Ge,spotifyTrack:He,spotifyAlbum:qe,spotifyArtists:Xe,spotifyCover:Ye,gary:Je};let O=[];var lt={onLoad:function(){console.log("[All-In-One Commands] Loading plugin...");for(const[t,n]of Object.entries(ct))r.storage.enabledCommands[t]&&O.push(ie.registerCommand(n));console.log("[All-In-One Commands] Plugin loaded successfully!")},onUnload:function(){console.log("[All-In-One Commands] Unloading plugin..."),O.forEach(function(t){return t()}),O=[],console.log("[All-In-One Commands] Plugin unloaded successfully!")},settings:it};return x.default=lt,Object.defineProperty(x,"__esModule",{value:!0}),x})({},vendetta.commands,vendetta.plugin,vendetta.metro,vendetta.themes,vendetta.plugins,vendetta.ui,vendetta.metro.common,vendetta.debug,vendetta.storage,vendetta.ui.assets,vendetta.ui.components); diff --git a/Commands/manifest.json b/Commands/manifest.json index 089d275..0775df2 100644 --- a/Commands/manifest.json +++ b/Commands/manifest.json @@ -1 +1 @@ -{"authors":[{"name":"kmmiio99o","id":"879393496627306587"}],"main":"index.js","name":"Commands","description":"A collection of fixed commands including facts, petpet, and more.","vendetta":{"icon":"ic_badge_staff","original":"plugins/all-in-one"},"version":"1.0.0","hash":"b2b4a9cc2ba0948c8fb8fe115d9d901d17358b98736fd96f3e818f135bee0daa"} \ No newline at end of file +{"authors":[{"name":"kmmiio99o","id":"879393496627306587"}],"main":"index.js","name":"Commands","description":"A collection of fixed commands including facts, petpet, and more.","vendetta":{"icon":"ic_badge_staff","original":"plugins/all-in-one"},"version":"1.0.0","hash":"deeeec16dd196afd8125fbabbdcbb0bef2e74cb49e7ab5b22d4a0be145c2f54d"} \ No newline at end of file