function z(o){window.enmity.plugins.registerPlugin(o)}const I=window.enmity.modules.common.Constants;window.enmity.modules.common.Clipboard,window.enmity.modules.common.Assets,window.enmity.modules.common.Messages,window.enmity.modules.common.Clyde,window.enmity.modules.common.Avatars,window.enmity.modules.common.Native;const c=window.enmity.modules.common.React;window.enmity.modules.common.Dispatcher,window.enmity.modules.common.Storage,window.enmity.modules.common.Toasts;const O=window.enmity.modules.common.Dialog;window.enmity.modules.common.Token,window.enmity.modules.common.REST,window.enmity.modules.common.Settings;const h=window.enmity.modules.common.Users,Y=window.enmity.modules.common.Navigation;window.enmity.modules.common.NavigationNative,window.enmity.modules.common.NavigationStack,window.enmity.modules.common.Theme;const x=window.enmity.modules.common.Linking,K=window.enmity.modules.common.StyleSheet;window.enmity.modules.common.ColorMap,window.enmity.modules.common.Components,window.enmity.modules.common.Locale,window.enmity.modules.common.Profiles,window.enmity.modules.common.Lodash,window.enmity.modules.common.Logger,window.enmity.modules.common.Flux,window.enmity.modules.common.SVG,window.enmity.modules.common.Scenes,window.enmity.modules.common.Moment;function W(o){return window.enmity.patcher.create(o)}var u="RelationshipNotifier",G="1.0.1",Q="Notifies you when a friend, group chat, or server removes you",X=[{name:"mafu",id:"519760564755365888"}],Z="#e2c6ff",ee={name:u,version:G,description:Q,authors:X,color:Z};const{components:n}=window.enmity;n.Alert,n.Button,n.FlatList;const ne=n.Image;n.ImageBackground,n.KeyboardAvoidingView,n.Modal,n.Pressable,n.RefreshControl;const oe=n.ScrollView;n.SectionList,n.StatusBar,n.StyleSheet,n.Switch;const P=n.Text;n.TextInput,n.TouchableHighlight,n.TouchableOpacity,n.TouchableWithoutFeedback,n.Touchable;const H=n.View;n.VirtualizedList,n.Form,n.FormArrow,n.FormCTA,n.FormCTAButton,n.FormCardSection,n.FormCheckbox,n.FormDivider,n.FormHint,n.FormIcon,n.FormInput,n.FormLabel,n.FormRadio;const y=n.FormRow,te=n.FormSection;n.FormSelect,n.FormSubLabel,n.FormSwitch,n.FormTernaryCheckBox,n.FormText,n.FormTextColors,n.FormTextSizes;function D(o){return window.enmity.assets.getIDByName(o)}const b={byProps:(...o)=>window.enmity.modules.filters.byProps(...o),byName:(o,t)=>window.enmity.modules.filters.byName(o,t),byTypeName:(o,t)=>window.enmity.modules.filters.byTypeName(o,t),byDisplayName:(o,t)=>window.enmity.modules.filters.byDisplayName(o,t)};function ie(o,t){return window.enmity.modules.getModule(o,t)}function se(...o){return window.enmity.modules.bulk(...o)}function re(...o){return window.enmity.modules.getByProps(...o)}window.enmity.modules.common;const le=D("img_account_sync_github_white"),me=D("Discord"),ae=D("img_account_sync_twitter_white"),de=re("acceptInviteAndTransitionToInviteChannel");var ce=({settings:o})=>{const t=K.createThemedStyleSheet({container:{flexDirection:"row",justifyContent:"center",alignItems:"center"},image:{width:70,height:70,marginTop:20,marginLeft:20},title:{flexDirection:"column"},name:{fontSize:30,paddingTop:20,paddingLeft:20,paddingRight:30,color:I.ThemeColorMap.HEADER_PRIMARY},author:{fontSize:15,paddingLeft:50,color:I.ThemeColorMap.HEADER_SECONDARY},info:{height:45,paddingTop:3,paddingBottom:3,justifyContent:"center",alignItems:"center"},footer:{color:I.ThemeColorMap.HEADER_SECONDARY,textAlign:"center",paddingTop:10,paddingBottom:20}});return c.createElement(oe,null,c.createElement(H,{style:t.container},c.createElement(ne,{source:{uri:"https://avatars.githubusercontent.com/u/43488869"},style:t.image}),c.createElement(H,{style:t.title},c.createElement(P,{style:t.name},"RelationshipNotifier"),c.createElement(P,{style:t.author},"by mafu"))),c.createElement(te,{title:"INFORMATION"},c.createElement(y,{label:"Follow me on Twitter",style:t.info,trailing:y.Arrow,leading:c.createElement(y.Icon,{source:ae}),onPress:()=>{x.openURL("https://twitter.com/m4fn3")}}),c.createElement(y,{label:"Visit my server for help",style:t.info,trailing:y.Arrow,leading:c.createElement(y.Icon,{source:me}),onPress:()=>{de.acceptInviteAndTransitionToInviteChannel({inviteKey:"TrCqPTCrdq",context:{location:"Invite Button Embed"},callback:()=>{Y.pop()}})}}),c.createElement(y,{label:"Check Source on GitHub",style:t.info,trailing:y.Arrow,leading:c.createElement(y.Icon,{source:le}),onPress:()=>{x.openURL("https://github.com/m4fn3/RelationshipNotifier")}})),c.createElement(P,{style:t.footer},`v${G}`))};const ue=ie(o=>{var t,a,T;return(T=(a=(t=o._dispatcher)==null?void 0:t._actionHandlers)==null?void 0:a._dependencyGraph)==null?void 0:T.nodes}),$=ue._dispatcher._actionHandlers._dependencyGraph.nodes;function _(o){let t=Object.keys($).filter(a=>$[a].name===o);if(t.length)return $[t[0]].actionHandler}function v(o,t,a){window.enmity.settings.set(o,t,a)}function N(o,t,a){return window.enmity.settings.get(o,t,a)}const[J,U,k]=[_("GuildStore"),_("ChannelStore"),_("RelationshipStore")],[M,q,B,ge,pe,we]=se(b.byProps("getGuilds"),b.byProps("getSortedPrivateChannels"),b.byProps("getRelationships"),b.byProps("removeRelationship"),b.byProps("leaveGuild"),b.byProps("closePrivateChannel")),g=W("RelationshipNotifier"),ye={...ee,onStart(){let o,t,a;g.after(ge,"removeRelationship",(r,e,m)=>{a=e[0]}),g.after(pe,"leaveGuild",(r,e,m)=>{o=e[0]}),g.after(we,"closePrivateChannel",(r,e,m)=>{t=e[0]});function T(){const r=M.getGuilds();let e={};const m=h.getCurrentUser();Object.keys(r).forEach(i=>{e[i]={name:r[i].name,icon:r[i].icon&&`https://cdn.discordapp.com/icons/${i}/${r[i].icon}.png`}}),v(u,`guilds-${m.id}`,JSON.stringify(e))}function L(){const r=q.getSortedPrivateChannels();let e={};const m=h.getCurrentUser();r.forEach(i=>{i.type===3&&(e[i.id]={name:i.name||i.rawRecipients.map(d=>d.username).join(", "),icon:i.icon&&`https://cdn.discordapp.com/channel-icons/${i.id}/${i.icon}.png`})}),v(u,`groups-${m.id}`,JSON.stringify(e))}function F(){const r=B.getRelationships();let e={friends:{},requests:{}};const m=h.getCurrentUser();for(const i of Object.keys(r)){const d=r[i];let l=h.getUser(i);d===1?e.friends[i]=l?`${l.username}#${l.discriminator}`:i:d===3&&(e.requests[i]=l?`${l.username}#${l.discriminator}`:i)}v(u,`friends-${m.id}`,JSON.stringify(e))}function V(){const r=h.getCurrentUser(),e=JSON.parse(N(u,`guilds-${r.id}`,"{}").toString()),m=Object.keys(M.getGuilds()),i=Object.keys(e).filter(s=>!m.includes(s)).map(s=>e[s]),d=JSON.parse(N(u,`groups-${r.id}`,"{}").toString()),l=q.getSortedPrivateChannels().filter(s=>s.type===3).map(s=>s.id),p=Object.keys(d).filter(s=>!l.includes(s)).map(s=>d[s]),f=JSON.parse(N(u,`friends-${r.id}`,'{"friends":{},"requests":{}}').toString()),E=Object.keys(B.getRelationships()),C=Object.keys(f.friends).filter(s=>!E.includes(s)).map(s=>f.friends[s]),R=Object.keys(f.requests).filter(s=>!E.includes(s)).map(s=>f.requests[s]);let w=`Following relation ships have been removed. `;i.length&&(w+=`Server: `+i.map(s=>s.name).join(", ")),p.length&&(w+=`Group: `+p.map(s=>s.name).join(", ")),C.length&&(w+=`Friends: `+C.join(", ")),R.length&&(w+=`Requests: `+R.join(", ")),w.length>44&&O.show({title:"RelationshipNotifier",body:w,confirmText:"Dismiss"})}g.after(k,"CONNECTION_OPEN",(r,e,m)=>{V(),T(),L(),F()}),g.after(J,"GUILD_DELETE",(r,e,m)=>{var i,d;if((i=e[0].guild)!=null&&i.unavailable)return;const l=h.getCurrentUser(),p=JSON.parse(N(u,`guilds-${l.id}`,"{}").toString());((d=e[0].guild)==null?void 0:d.id)&&p[e[0].guild.id]&&(e[0].guild.id,o&&o===e[0].guild.id?o=void 0:O.show({title:"RelationshipNotifier",body:`Following relation ships have been removed. Server: ${p[e[0].guild.id].name}`,confirmText:"Dismiss"}),delete p[e[0].guild.id],v(u,`guilds-${l.id}`,JSON.stringify(p)))}),g.after(J,"GUILD_CREATE",(r,e,m)=>{T()}),g.after(U,"CHANNEL_DELETE",(r,e,m)=>{setTimeout(()=>{var i;const d=h.getCurrentUser(),l=JSON.parse(N(u,`groups-${d.id}`,"{}").toString());((i=e[0].channel)==null?void 0:i.id)&&l[e[0].channel.id]&&(e[0].channel.id,t&&t===e[0].channel.id?t=void 0:O.show({title:"RelationshipNotifier",body:`Following relation ships have been removed. Group: ${l[e[0].channel.id].name}`,confirmText:"Dismiss"}),delete l[e[0].channel.id],v(u,`groups-${d.id}`,JSON.stringify(l)))},500)}),g.after(U,"CHANNEL_CREATE",(r,e,m)=>{L()}),g.after(k,"RELATIONSHIP_REMOVE",(r,e,m)=>{var i,d,l,p,f,E,C,R,w,s,j;const A=h.getCurrentUser(),S=JSON.parse(N(u,`friends-${A.id}`,'{"friends":{},"requests":{}}').toString());((i=e[0].relationship)==null?void 0:i.type)===1&&Object.keys(S.friends).includes((d=e[0].relationship)==null?void 0:d.id)?((l=e[0].relationship)==null||l.id,a&&a===((p=e[0].relationship)==null?void 0:p.id)?a=void 0:O.show({title:"RelationshipNotifier",body:`Following relation ships have been removed. Friend: ${(f=e[0].relationship)==null?void 0:f.id}`,confirmText:"Dismiss"}),delete S.friends[(E=e[0].relationship)==null?void 0:E.id],v(u,`friends-${A.id}`,JSON.stringify(S))):((C=e[0].relationship)==null?void 0:C.type)===3&&Object.keys(S.requests).includes((R=e[0].relationship)==null?void 0:R.id)&&(a&&a===((w=e[0].relationship)==null?void 0:w.id)?a=void 0:O.show({title:"RelationshipNotifier",body:`Following relation ships have been removed. Request: ${(s=e[0].relationship)==null?void 0:s.id}`,confirmText:"Dismiss"}),delete S.requests[(j=e[0].relationship)==null?void 0:j.id],v(u,`friends-${A.id}`,JSON.stringify(S))),F()}),g.after(k,"RELATIONSHIP_ADD",(r,e,m)=>{F()})},onStop(){g.unpatchAll()},getSettingsPanel({settings:o}){return c.createElement(ce,{settings:o})}};z(ye);