@@ -116,24 +116,53 @@ export class DiscordBot extends Service {
116116 this . discord . user ?. setActivity ( activity ) ;
117117 }
118118
119- async setNickname ( name = "Meta" , reason ?: string ) : Promise < boolean > {
120- if ( ! this . ready || ! this . discord . user || name . length > 22 ) return false ;
121- const nick = name . charAt ( 0 ) . toUpperCase ( ) + name . slice ( 1 ) ;
122- this . getGuild ( ) ?. members . me ?. setNickname ( nick + " Construct" , reason ) ;
123- return true ;
119+ async setIcon (
120+ path = this . data ?. lastDiscordGuildIcon ?? "resources/discord-guild-icons/default.png"
121+ ) : Promise < boolean > {
122+ if ( ! this . ready || ! this . discord . user ) return false ;
123+ try {
124+ await this . discord . user . setAvatar ( path ) ;
125+ if ( this . data ) {
126+ this . data . lastDiscordGuildIcon = path ;
127+ await this . data . save ( ) ;
128+ }
129+ return true ;
130+ } catch {
131+ return false ;
132+ }
124133 }
125134
126- async getNickname ( ) : Promise < string | undefined > {
127- if ( ! this . ready || ! this . discord . user ) return ;
128- return ( await this . getGuildMember ( this . discord . user . id ) ) ?. nickname ?. split ( " " ) [ 0 ] ;
135+ async setNickname ( name = "Meta" , reason ?: string ) : Promise < boolean > {
136+ if ( ! this . ready || ! this . discord . user || name . length > 22 ) return false ;
137+ try {
138+ const nick = name . charAt ( 0 ) . toUpperCase ( ) + name . slice ( 1 ) ;
139+ await this . getGuild ( ) ?. members . me ?. setNickname ( nick + " Construct" , reason ) ;
140+ if ( this . data ) {
141+ this . data . lastDiscordNickName = nick ;
142+ await this . data . save ( ) ;
143+ }
144+ return true ;
145+ } catch {
146+ return false ;
147+ }
129148 }
130149
131- async setServerBanner ( url : string ) : Promise < void > {
132- if ( ! this . ready || ! ( await this . overLvl2 ( ) ) ) return ;
133- const guild = this . getGuild ( ) ;
134- const response = await axios . get ( url , { responseType : "arraybuffer" } ) ;
135- if ( ! response ) return ;
136- guild ?. setBanner ( response . data , "motd" ) ;
150+ async setServerBanner (
151+ url = this . data ?. lastDiscordBanner ?? null ,
152+ reason ?: string
153+ ) : Promise < boolean > {
154+ if ( ! this . ready || ! ( await this . overLvl2 ( ) ) ) return false ;
155+ try {
156+ const guild = this . getGuild ( ) ;
157+ await guild ?. setBanner ( url , reason ) ;
158+ if ( this . data && url ) {
159+ this . data . lastDiscordBanner = url ;
160+ await this . data . save ( ) ;
161+ }
162+ return true ;
163+ } catch {
164+ return false ;
165+ }
137166 }
138167
139168 async feedMarkov ( msg : Discord . Message ) : Promise < void > {
0 commit comments