1
+ import { ActionRowBuilder , CommandInteraction , CommandInteractionOptionResolver , EmbedBuilder , MessageFlags , ModalBuilder , TextInputBuilder , TextInputStyle } from "discord.js" ;
2
+ import CommandsBase from "../baseCommands" ;
3
+
4
+ export default async function Give ( command : CommandsBase , interaction : CommandInteraction ) {
5
+ let i = await interaction . deferReply ( )
6
+ let options = interaction . options ;
7
+ let userSelected = options . getUser ( "user" , true ) ;
8
+ let amount = 1 ;
9
+ if ( options instanceof CommandInteractionOptionResolver ) {
10
+ amount = options . getNumber ( "amount" ) || 1 ;
11
+ }
12
+ i . edit ( {
13
+ content : "Recherche en cours de l'utilisateur dans la base de donnée" ,
14
+ } ) ;
15
+ let giverUser = await command . client . database . users . findFirst ( {
16
+ where : {
17
+ id : interaction . user . id
18
+ }
19
+ } ) ;
20
+ if ( ! giverUser ) return i . edit ( {
21
+ content : "Vous n'êtes pas enregistré" + `, vous devez vous enregistrer avec la commande </${ interaction . commandName } login:${ interaction . commandId } >` ,
22
+ } ) ;
23
+ i . edit ( {
24
+ content : "Recherche en cours de l'utilisateur dans l'API" ,
25
+ } ) ;
26
+ let token = command . client . decryptString ( giverUser . horde_token ) ;
27
+ let ai = command . client . aiHorde ;
28
+ try {
29
+ let user = await ai . findUser ( {
30
+ token
31
+ } ) ;
32
+ if ( user . kudos < amount ) return i . edit ( {
33
+ content : "Vous n'avez pas assez de kudos" ,
34
+ } ) ;
35
+ // find the other user
36
+ let receiverUser = await command . client . database . users . findFirst ( {
37
+ where : {
38
+ id : userSelected . id
39
+ }
40
+ } ) ;
41
+ if ( ! receiverUser ) return i . edit ( {
42
+ content : "L'utilisateur n'est pas enregistré" ,
43
+ } ) ;
44
+ try {
45
+ let receiverToken = command . client . decryptString ( receiverUser . horde_token ) ;
46
+ let receiver = await ai . findUser ( {
47
+ token : receiverToken
48
+ } ) ;
49
+ // give kudos
50
+
51
+ ai . postKudosTransfer ( {
52
+ username : receiver . username ,
53
+ amount
54
+ } , {
55
+ token : token
56
+ } ) . then ( async ( content ) => {
57
+ i . edit ( {
58
+ content :`Vous avez donné ${ content . transferred } kudos à <@${ userSelected . id } > (${ receiver . username } )`
59
+ } ) ;
60
+ } ) . catch ( async ( err ) => {
61
+ i . edit ( {
62
+ content : "Une erreur est survenue lors du transfert de kudos, réessayer" ,
63
+ } ) ;
64
+ } ) ;
65
+ } catch ( e ) {
66
+ return i . edit ( {
67
+ content : "L'utilisateur cible n'est pas enregistré" ,
68
+ } ) ;
69
+ }
70
+ } catch ( e ) {
71
+ return i . edit ( {
72
+ content : "Le token est invalide vous devez vous reconnecter" ,
73
+ } ) ;
74
+ }
75
+ }
76
+
77
+ function Capitalize ( str : string ) {
78
+ return `**${ str . charAt ( 0 ) . toUpperCase ( ) + str . slice ( 1 ) } **`
79
+ }
0 commit comments