@@ -401,6 +401,44 @@ class Member extends SnowFlake {
401401 get info ( ) {
402402 return this . owner . info ;
403403 }
404+ static newUnsafe ( memberjson : memberjson , owner : Guild ) : Member {
405+ let user : User ;
406+ if ( owner . localuser . userMap . has ( memberjson . id ) ) {
407+ if ( memberjson . user ) {
408+ new User ( memberjson . user , owner . localuser ) ;
409+ }
410+ user = owner . localuser . userMap . get ( memberjson . id ) as User ;
411+ } else if ( memberjson . user ) {
412+ user = new User ( memberjson . user , owner . localuser ) ;
413+ } else {
414+ throw new Error ( "missing user object of this member" ) ;
415+ }
416+ if ( user . members . has ( owner ) ) {
417+ let memb = user . members . get ( owner ) ;
418+ if ( memb instanceof Promise ) {
419+ console . error ( "uh oh, that was a bad call!" ) ;
420+ //Welp, this is ignored in sync unsafe
421+ } else if ( memb === undefined || memb instanceof Promise ) {
422+ memb = new Member ( memberjson , owner ) ;
423+ user . members . set ( owner , memb ) ;
424+ owner . members . add ( memb ) ;
425+ user . localuser . memberListUpdate ( ) ;
426+ return memb ;
427+ } else {
428+ if ( memberjson . presence ) {
429+ memb . getPresence ( memberjson . presence ) ;
430+ }
431+ memb . update ( memberjson ) ;
432+ return memb ;
433+ }
434+ }
435+
436+ const memb = new Member ( memberjson , owner ) ;
437+ user . members . set ( owner , memb ) ;
438+ owner . members . add ( memb ) ;
439+ memb . localuser . memberListUpdate ( ) ;
440+ return memb ;
441+ }
404442 static async new ( memberjson : memberjson , owner : Guild ) : Promise < Member > {
405443 let user : User ;
406444 if ( owner . localuser . userMap . has ( memberjson . id ) ) {
0 commit comments