Skip to content
AccountService

Service / AccountService

AccountService Class

User Account Information Management Service

Table of contents

Methods

addFriend(resp: MGSResponse, userId: string, reason: string): void other
Initiate addFriend to app and obtain callback
applySharedId(character: Character, id: string, callback: BoolResponse): void other
Character data of application sharing ID
checkVIP(userId: string, gameId: string, callback: (result: string) => void): void other
Launch a checkVIP and obtain a callback to query the VIP information of Player
createSharedId(character: Character, callback: StringResponse): void other
Generate Share Id
dataShowToOther(index: number, isOpen: boolean, callback?: BoolResponse): void other
Set whether data is publicly available to other users
downloadData(character: Character, callback?: BoolResponse VoidResponse, index?: number): void other
Download the character appearance and apply it to the current character
fillAvatar(img: Image): void other
Assign avatar to Image variable
getNickName(): string other
Get player nickname
getUserData(userId: string, index: number, callback: StringResponse): void other
Retrieve the user's character image data stored on the server
getUserId(): string other
Get the user ID of the platform, which can be used for the getUserData interface
getUserInfo(userId: string, gameId: string, callback: (nickname: string, gender: number) => void): void other
Initiate getUserInfo and obtain a callback to query the player's nickname and gender
isFriend(resp: MGSResponse, userId: string): void other
If you need to check whether a player is a friend, you can call the isFriend interface to view it
setUserData(character: Character, dataString: string, callback?: BoolResponse): void other
Apply character appearance data to character
uploadData(character: Character, callback?: BoolResponse VoidResponse, index?: number, openStatus?: number): void other
Upload character image resources to the server Character, Hair, UpperCloth, LowerCloth, Gloves, Shoe

Methods

addFriend

Static addFriend(resp, userId, reason): void other

Initiate addFriend to app and obtain callback

Parameters

resp MGSResponseCallback for usage: app
userId stringUsage: User ID of the player to be added
reason stringUsage: Reason for application

Precautions

Only effective when pulled up by app on mobile devices


applySharedId

Static applySharedId(character, id, callback): void other

Character data of application sharing ID

Parameters

character CharacterUsage: character of sharing reload data
id stringUsage: Share ID
callback BoolResponseCallback parameter, true: application successful; False: Application failed

checkVIP

Static checkVIP(userId, gameId, callback): void other

Launch a checkVIP and obtain a callback to query the VIP information of Player

Parameters

userId stringUsage: Player UserId
gameId stringGameId
callback (result: string) => voidUsage: Return result, whether the player's VIP is normal

createSharedId

Static createSharedId(character, callback): void other

Generate Share Id

Parameters

character CharacterUsage: character of sharing reload data
callback StringResponseCallback parameter, return the generated Id

dataShowToOther

Static dataShowToOther(index, isOpen, callback?): void other

Set whether data is publicly available to other users

Parameters

index numberUsage: asset bit (0-5) default: 0, protagonist asset bit
isOpen booleanUsage: Is it public
callback? BoolResponseUsage: Set successful callback default: No callback

downloadData

Static downloadData(character, callback?, index?): void other

Download the character appearance and apply it to the current character

Parameters

character CharacterUsage: the character to apply the reload data
callback? BoolResponse VoidResponseUsage: Set successful callback default: No callback by default
index? numberUsage: Character position (0-5) default: 0, protagonist resource position

fillAvatar

Static fillAvatar(img): void other

Assign avatar to Image variable

Parameters

img ImageUsage: Need to assign a value to obtain the Image variable of the avatar

Precautions

Only effective when pulled up by app

Usage example: Create a script called AccountExample, place it in the object bar, open the script, modify the original content to the following, save and run the game, the user's avatar will be displayed in the upper right corner of the screen, and it will be a white image in PC environment

ts
@Component
export default class AccountExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        this.test();
    }

    private async test(): Promise<void> {
        let imgUI = new ImageUI();
        AccountService.fillAvatar(imgUI.image);
    }

}

class ImageUI {
    public image: mw.Image;

    constructor() {
        this.creatUI();
    }

    private creatUI() {
        // Create a UI object
        let ui = UserWidget.newObject();
        // Add UI to screen
        ui.addToViewport(1);
        // Create a canvas component
        let rootCanvas = Canvas.newObject();
        rootCanvas.size = new Vector2(1920, 1080);
        rootCanvas.position = Vector2.zero;
        // Set Ui's root canvas to rootCanvas
        ui.rootContent = rootCanvas;
        // Create a button
        this.image = mw.Image.newObject(rootCanvas);
        this.image.position = new Vector2(1700, 310);
        this.image.size = new Vector2(150, 50);
        this.image.visibility = SlateVisibility.Visible;
    }
}
@Component
export default class AccountExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        this.test();
    }

    private async test(): Promise<void> {
        let imgUI = new ImageUI();
        AccountService.fillAvatar(imgUI.image);
    }

}

class ImageUI {
    public image: mw.Image;

    constructor() {
        this.creatUI();
    }

    private creatUI() {
        // Create a UI object
        let ui = UserWidget.newObject();
        // Add UI to screen
        ui.addToViewport(1);
        // Create a canvas component
        let rootCanvas = Canvas.newObject();
        rootCanvas.size = new Vector2(1920, 1080);
        rootCanvas.position = Vector2.zero;
        // Set Ui's root canvas to rootCanvas
        ui.rootContent = rootCanvas;
        // Create a button
        this.image = mw.Image.newObject(rootCanvas);
        this.image.position = new Vector2(1700, 310);
        this.image.size = new Vector2(150, 50);
        this.image.visibility = SlateVisibility.Visible;
    }
}

getNickName

Static getNickName(): string other

Get player nickname

Returns

stringNickname?

Precautions

Only effective when pulled up by app

Usage example: create a script named AccountExample, place it in the object bar, open the script, modify the original content to the following, save and run the game, the control window will output the user's nickname, which is empty in PC environment

ts
@Component
export default class AccountExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        this.test();
    }

    private async test(): Promise<void> {
        let name = AccountService.getNickName();
        Console. log ("Get Player's nickname", name);
    }

}
@Component
export default class AccountExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        this.test();
    }

    private async test(): Promise<void> {
        let name = AccountService.getNickName();
        Console. log ("Get Player's nickname", name);
    }

}

getUserData

Static getUserData(userId, index, callback): void other

Retrieve the user's character image data stored on the server

Parameters

userId stringUsage: User ID
index numberUsage: asset bits (0-5)
callback StringResponseUsage: Return the obtained data string

Usage example: create a script named AccountExample, place it in the object bar, open the script, modify the original content to the following content, publish the game to run on the real machine, and you will see a humanoid object consistent with the appearance of the Player

ts
@Component
export default class AccountExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        this.test();
    }

    private async test(): Promise<void> {
        let player = await Player.asyncGetLocalPlayer();
        let npc = (await GameObject.asyncSpawn({ guid: "NPC" })) as Character;
        npc.worldTransform.position = new Vector(0, 0, 200);
        AccountService.getUserData(player.userId, 0, async str => {
            await TimeUtil.delaySecond(5);
            AccountService.setUserData(npc, str, isSuccess => {
                player.character.name = isSuccess ? Success ":" Failure ";
            })
        });
    }
}
@Component
export default class AccountExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        this.test();
    }

    private async test(): Promise<void> {
        let player = await Player.asyncGetLocalPlayer();
        let npc = (await GameObject.asyncSpawn({ guid: "NPC" })) as Character;
        npc.worldTransform.position = new Vector(0, 0, 200);
        AccountService.getUserData(player.userId, 0, async str => {
            await TimeUtil.delaySecond(5);
            AccountService.setUserData(npc, str, isSuccess => {
                player.character.name = isSuccess ? Success ":" Failure ";
            })
        });
    }
}

getUserId

Static getUserId(): string other

Get the user ID of the platform, which can be used for the getUserData interface

Returns

stringUser ID

Example usage: Create a script called AccountExample, place it in the object bar, open the script, modify the original content to the following, save and run the game, and the control window will output the user's UserId

ts
@Component
export default class AccountExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        this.test();
    }

    private async test(): Promise<void> {
        let userId = AccountService.getUserId();
        Console.log ("Get the platform's user ID", userID);
    }
}
@Component
export default class AccountExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        this.test();
    }

    private async test(): Promise<void> {
        let userId = AccountService.getUserId();
        Console.log ("Get the platform's user ID", userID);
    }
}

getUserInfo

Static getUserInfo(userId, gameId, callback): void other

Initiate getUserInfo and obtain a callback to query the player's nickname and gender

Parameters

userId stringUsage: Player UserId
gameId stringGameId
callback (nickname: string, gender: number) => voidUsage: Return nickname (string) and gender (number)

isFriend

Static isFriend(resp, userId): void other

If you need to check whether a player is a friend, you can call the isFriend interface to view it

Parameters

resp MGSResponseCallback for usage: app
userId stringUsage: Player UserId to be determined

Precautions

Only effective when pulled up by app on mobile devices


setUserData

Static setUserData(character, dataString, callback?): void other

Apply character appearance data to character

Parameters

character CharacterCharacter for dressing
dataString stringReturned data
callback? BoolResponseUsage: Set successful callback default: No callback

Usage example: create a script named AccountExample, place it in the object bar, open the script, modify the original content to the following content, publish the game to run on the real machine, and you will see a humanoid object consistent with the appearance of the Player

ts
@Component
export default class AccountExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        this.test();
    }

    private async test(): Promise<void> {
        let player = await Player.asyncGetLocalPlayer();
        let npc = (await GameObject.asyncSpawn({ guid: "NPC" })) as Character;
        npc.worldTransform.position = new Vector(0, 0, 200);
        AccountService.getUserData(player.userId, 0, async str => {
            await TimeUtil.delaySecond(5);
            AccountService.setUserData(npc, str, isSuccess => {
                player.character.name = isSuccess ? Success ":" Failure ";
            })
        });
    }
}
@Component
export default class AccountExample extends Script {

    protected onStart(): void {
        if (!SystemUtil.isClient()) return;
        this.test();
    }

    private async test(): Promise<void> {
        let player = await Player.asyncGetLocalPlayer();
        let npc = (await GameObject.asyncSpawn({ guid: "NPC" })) as Character;
        npc.worldTransform.position = new Vector(0, 0, 200);
        AccountService.getUserData(player.userId, 0, async str => {
            await TimeUtil.delaySecond(5);
            AccountService.setUserData(npc, str, isSuccess => {
                player.character.name = isSuccess ? Success ":" Failure ";
            })
        });
    }
}

uploadData

Static uploadData(character, callback?, index?, openStatus?): void other

Upload character image resources to the server Character, Hair, UpperCloth, LowerCloth, Gloves, Shoe

Parameters

character CharacterUsage: character to upload reload data
callback? BoolResponse VoidResponseUsage: Set successful callback default: No callback by default
index? numberUsage: Character position (0-5) default: 0, protagonist resource position
openStatus? numberUsage: development status default: 1, default is open status