11import { ActionRowBuilder , ButtonBuilder , ButtonInteraction , ButtonStyle , ChannelType , EmbedBuilder , GuildMember , GuildMemberRoleManager , Interaction , Message , MessageFlags , ModalBuilder , PermissionsBitField , TextChannel , TextInputBuilder , TextInputStyle , User , UserSelectMenuBuilder , VoiceChannel } from "npm:discord.js"
2- import { saveTranscript , findUser , lastLogin , getServerURLs , getLastDaily , addCoins , setLastDaily , getCoins , removeCoins , addPartner , removePartner , getPartners , getMemberFromBBNId } from "./db.ts" ;
3- import { createTicketChannelID , firstLevelSupportCategoryID , getStartedChannelID , ownerRoleID , secondLevelSupportCategoryID , supportRole , supportRoles , verified } from "./const.ts" ;
2+ import { saveTranscript , findUser , lastLogin , getLastDaily , addCoins , setLastDaily , getCoins , removeCoins } from "./db.ts" ;
3+ import { createTicketChannelID , firstLevelSupportCategoryID , ownerRoleID , secondLevelSupportCategoryID , supportRoleID , supportRoles , verified } from "./const.ts" ;
44
55export async function handleInteraction ( interaction : Interaction ) {
66 if ( interaction . isButton ( ) ) {
@@ -123,9 +123,6 @@ export async function handleInteraction(interaction: Interaction) {
123123 embed . addFields ( {
124124 name : `User ID:` ,
125125 value : `> ${ dbuser . toHexString ( ) } ` ,
126- } , {
127- name : `Server URLs:` ,
128- value : `> ${ await getServerURLs ( interaction . user . id ) } ` ,
129126 } , {
130127 name : `Last Login:` ,
131128 value : `\`\`\`${ JSON . stringify ( login [ 0 ] ?? "none" ) } \`\`\`` ,
@@ -148,7 +145,7 @@ export async function handleInteraction(interaction: Interaction) {
148145 "ViewChannel" : true
149146 } ) ;
150147 await possibleChannel . send ( {
151- content : `${ interaction . member } || <@&${ supportRole } >` ,
148+ content : `${ interaction . member } || <@&${ supportRoleID } >` ,
152149 embeds : [ embed ] ,
153150 components : [ btnrow ] ,
154151 } ) ;
@@ -172,7 +169,7 @@ export async function handleInteraction(interaction: Interaction) {
172169 } , 5000 ) ;
173170
174171 await ch . send ( {
175- content : `${ interaction . member } || <@&${ supportRole } >` ,
172+ content : `${ interaction . member } || <@&${ supportRoleID } >` ,
176173 embeds : [ embed ] ,
177174 components : [ btnrow ] ,
178175 } ) ;
@@ -283,8 +280,8 @@ export async function handleInteraction(interaction: Interaction) {
283280 reason : "Ticket deescalated" ,
284281 } ) ;
285282 interaction . reply ( {
286- allowedMentions : { roles : [ supportRole ] } ,
287- content : `Ticket deescalated. || <@&${ supportRole } >`
283+ allowedMentions : { roles : [ supportRoleID ] } ,
284+ content : `Ticket deescalated. || <@&${ supportRoleID } >`
288285 } ) ;
289286 }
290287
@@ -307,7 +304,7 @@ export async function handleInteraction(interaction: Interaction) {
307304 }
308305
309306 let reward = 10 + ( Math . floor ( Math . random ( ) * 10 ) ) ;
310- if ( ( await interaction . guild ! . members . fetch ( interaction . user . id ) ) . premiumSince || ( await interaction . guild ! . members . fetch ( interaction . user . id ) ) . roles . cache . has ( supportRole ) )
307+ if ( ( await interaction . guild ! . members . fetch ( interaction . user . id ) ) . premiumSince || ( await interaction . guild ! . members . fetch ( interaction . user . id ) ) . roles . cache . has ( supportRoleID ) )
311308 reward *= 10 ;
312309 const res = await addCoins ( interaction . user . id , reward ) ;
313310 if ( res === null ) {
@@ -368,103 +365,6 @@ export async function handleInteraction(interaction: Interaction) {
368365 interaction . reply ( `Removed ${ coins } coins from ${ user . username } 's balance.` ) ;
369366 }
370367
371- if ( interaction . commandName == "addpartner" ) {
372- if ( ! interaction . memberPermissions ?. has ( PermissionsBitField . Flags . Administrator ) ) {
373- interaction . reply ( "You do not have permission to add partners." ) ;
374- return ;
375- }
376-
377- const user = interaction . options . getMentionable ( "user" , true ) as User ;
378- const dbmember = await findUser ( user . id ) ;
379- if ( ! dbmember ) {
380- interaction . reply ( "We couldn't find an bbn account in our database" ) ;
381- return ;
382- }
383-
384- const cpu = interaction . options . getInteger ( "cpu" , true ) ;
385- const ram = interaction . options . getInteger ( "ram" , true ) ;
386- const storage = interaction . options . getInteger ( "storage" , true ) ;
387- const slots = interaction . options . getInteger ( "slots" , true ) ;
388- const invite = await interaction . guild ?. invites . create ( getStartedChannelID , {
389- maxAge : 0 ,
390- unique : true ,
391- reason : "Partner invite" ,
392- } ) ;
393- if ( ! invite ) {
394- interaction . reply ( "We couldn't create an invite for the partner" ) ;
395- return ;
396- }
397- addPartner ( dbmember , cpu , ram , storage , slots , invite . code ) ;
398- interaction . reply ( `Added ${ user . username } as a partner.\n\nFollowing resources got added: \nCPU: ${ cpu } \nMemory: ${ ram } \nStorage: ${ storage } \nSlots: ${ slots } \nInvite code: https://discord.gg/${ invite . code } ` ) ;
399- }
400-
401- if ( interaction . commandName == "removepartner" ) {
402- if ( ! interaction . memberPermissions ?. has ( PermissionsBitField . Flags . Administrator ) ) {
403- interaction . reply ( "You do not have permission to remove partners." ) ;
404- return ;
405- }
406- const user = interaction . options . getMentionable ( "user" , true ) as User ;
407- const dbmember = await findUser ( user . id ) ;
408- if ( ! dbmember ) {
409- interaction . reply ( "We couldn't find an bbn account in our database" ) ;
410- return ;
411- }
412- removePartner ( dbmember ) ;
413- interaction . reply ( `Removed ${ user . username } as a partner.` ) ;
414- }
415-
416- if ( interaction . commandName == "partners" ) {
417- if ( ! interaction . memberPermissions ?. has ( PermissionsBitField . Flags . Administrator ) ) {
418- interaction . reply ( "You do not have permission to list partners." ) ;
419- return ;
420- }
421- let out = "Owner - CPU, RAM, Storage, Slots, Invitecode, last invite, uses\n" ;
422- const partners = await getPartners ( ) ;
423-
424- await interaction . deferReply ( ) ;
425-
426- out += ( await Promise . all ( partners . map ( async partner =>
427- `<@${ await getMemberFromBBNId ( partner . owner ) } > \`${ partner . owner } \` - \`${ partner . cpu } \` \`${ partner . memory } \` \`${ partner . disk } \` \`${ partner . slots } \` \`${ partner . invite } \` <t:${ Math . round ( partner . lastinvite / 1000 ) } :R> \`${ ( await interaction . guild ?. invites . fetch ( partner . invite ) ! ) . uses } \`` ) ) ) . join ( "\n" ) ;
428-
429- const embed = new EmbedBuilder ( )
430- . setTitle ( `Partners` )
431- . setDescription ( out )
432- interaction . editReply ( { embeds : [ embed ] } ) ;
433- }
434-
435- if ( interaction . commandName == "servers" ) {
436- if ( interaction . member ) {
437- if ( interaction . member . roles instanceof GuildMemberRoleManager ) {
438- if ( ! Array . from ( interaction . member . roles . cache . keys ( ) ) . some ( role => supportRoles . includes ( role ) ) ) {
439- interaction . reply ( "You do not have permission to list servers." ) ;
440- return ;
441- }
442- } else {
443- if ( ! interaction . member . roles . some ( role => supportRoles . includes ( role ) ) ) {
444- interaction . reply ( "You do not have permission to list servers." ) ;
445- return ;
446-
447- }
448- }
449- }
450- const possiblemember = interaction . options . getMentionable ( "user" , true ) ;
451- if ( ! possiblemember ) {
452- interaction . reply ( "Please mention a user." ) ;
453- return ;
454- }
455- const member = possiblemember as GuildMember ;
456- const servers = await getServerURLs ( member . id ) ;
457- if ( servers === null ) {
458- interaction . reply ( "No account found for this user." ) ;
459- return ;
460- }
461- if ( servers . length === 0 ) {
462- interaction . reply ( "This user has no servers." ) ;
463- return ;
464- }
465- interaction . reply ( `Servers of ${ member . user . username } :\n${ servers . map ( server => `<${ server } >` ) . join ( "\n" ) } ` ) ;
466- }
467-
468368 if ( interaction . commandName === "steam" ) {
469369 const access_token = interaction . options . getString ( "accesstoken" ) ;
470370 if ( ! access_token ) {
0 commit comments