Skip to main content

Module: skin

Overview

Module

This module provides the skin management for players.

Color Boxes

Note

◉ How it works?

This module provides the skin management:

  1. This module will modify the skin when the the player login the server.

1.a. If there is existing skin data for this player, then we use that data.

1.b. If there is no existing skin data for this player.

1.b.i. If the apply_default_skin_if_no_data option is true, then we use default skin defined in the config file.

1.b.ii. If the apply_default_skin_if_no_data option is false, then we fetch the skin from Mojang online server.

  1. A player can use /skin command to change the skin in-game.
Example

◉ Use the Mojang skin.

Issue: /skin use-my-mojang-skin to use your own skin.

Issue: /skin use-mojang-skin Alice to use another player's skin.

NOTE: This requires fetching the skin from the Mojang server, which may be time-consuming.

◉ Set a skin from custom URL

Issue: /skin use-url-skin alex https://s.namemc.com/i/2af8c11db5fe6061.png

◉ Use a specified skin name from the default skin list defined in the config file.

Issue: /skin use-default-skin reimu-hakurei

◉ Use a random skin from the default skin list defined in the config file.

Issue: /skin use-random-default-skins

Configurations

The following JSON content is provided for reference only. It must NOT be copied directly into the configuration directory, as it does not represent valid JSON syntax.

Config
  • File Name: config.json
  • File Content:
Click to see the default content...
config/fuji/modules/skin/config.json
{
"default_skin": {
"apply_default_skin_if_no_data": false,
"preferred_skin_name": "reimu-hakurei",
"default_skin_list": [
{
"skin_name": "reimu-hakurei",
"skin_property": {
"name": "textures",
"value": "ewogICJ0aW1lc3RhbXAiIDogMTYyMDIyMDc4MTQyNCwKICAicHJvZmlsZUlkIiA6ICJiYjdjY2E3MTA0MzQ0NDEyOGQzMDg5ZTEzYmRmYWI1OSIsCiAgInByb2ZpbGVOYW1lIiA6ICJsYXVyZW5jaW8zMDMiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjVmMTcyMGM3ODBhNzk1OGI0MWYxNTNlNTA2OWRiNjg2MWJkMjgxYmU0MzJlN2JjNzk0MTE0YTdmNGVjNTJmZCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9",
"signature": "olnQih89nZxKFe0UzWiXU8+wlndGBClUqXxAabwEm6j15SZH9ue7Xd2OM2kRKBiHoqbT+2TSg4xG7cBeAeapVN4vpRP5NPujERl/JI41jYNhMb+DmskreS59fh0QfZPAxOpj/rmmAJVfNN1QblxRM3wlMGaEgS5TH9HfeehgLrBaaDM8/JAgnas4Yh6L0uRoNebjXHrhqgguVBMF3xsWpvpAPCzQCYX2vjCCF3WtOEy7EEUF4u5Lo4teQhr9yfnYGBc/ktE4I0MByqTaKrLqvF45n4jOShPP0RcmLh9JpOXyrScRuaUDhQ8bd8xhkWEb94HMzwznvDLNh1/nbNybCMb5GydYf51hJVfqjU5TMWID71F8FTTBJrCZDBRESFIP+QZ3czYP+urgzmfLgDmcoPIukMaHWLU6qFpTF0QazAgF4u5Fe4J6QEZSyZz0B2kqQG3vN1dXxLgHItjQbEeceChNYNjuZFOTleXzpYkg5/4Zqy6Oek3bMscTYY7IPBV56WiO8eGw5JYMfyDeM3iyh4ZxLEC3HDRtOTBHo7WxWPR/AUOU9HP9CdmKQbGThGAUuqlqRJzbg5XNRvKIcnngI329VZV5RmAnt+G5Vfy6uqBagpMQZ3720PXPG6H5q4SBuXmHt1ccKgJvQv9lTh20EymuIALTnCodr8qDbnRfdrI="
}
},
{
"skin_name": "remilia-scarlet",
"skin_property": {
"name": "textures",
"value": "ewogICJ0aW1lc3RhbXAiIDogMTYzODY4MjMwMjQ3MSwKICAicHJvZmlsZUlkIiA6ICI0ZjU2ZTg2ODk2OGU0ZWEwYmNjM2M2NzRlNzQ3ODdjOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJDVUNGTDE1IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzE0YjRlODI2OTJiOWRjYmY2YzEyOTJkNjJiNzMxN2MxMjRjNGMzOTQ2Y2FiMjFlY2E4NDJiNDJlNzBmMGMwMjIiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ==",
"signature": "renIrkVFQUor3+5AeDYOcGtUnUpdk9/i5ANWFGCBTSVZjeKQ/t5xDEe9kqwsWawR/55N2+1Db2c7lIpHpJ4cGqtG7BzTm+TZNUgSOu0rG27DwxheiuGbYSMm/lQSiNi7FvRlhLXuxsYZ0nHhXKoeG4xW5PXaE/zjXeXR1hffnfR/ROanmK/m2nIbkfPo59wjc+ZTF3nxhX+tGay+7dy/Y6xqhyZ4ZnM1a9+z8hC8ERgXzUUczfhRaDPQcv9dEdpyQhlfJyEV6r6NBSpBVVNaZ2bGs+VyxrRVtr/nXigps1KtFXH3j+gBiNYJWu7LpDS+1DTezlP9qkbDUPSKuO1O913GDRdJxdcVn7HGYD3W6yGB0r6sDBvb7RYESMzafRIFbBjhJrJFi3/aQjxTuFSc66bUkDqNBGYQcXyUXP1wEuB22mwQABv2OZiFdXMMRDniSZvPsxoriDdAS+umHcrAgTApu13xLyJJa8tFBD9rpGxDDoUbnNJdzZSpjrgfu38Kgpa3pW45HY21eSOubQNdz7qBTBmQwVViuVoAqH9mM/HqeIrGzwdRJaOH3GsZRofr4zh9HVc+5o02W72d39BskA56ae8zjGza9sF1jhkgiaW1NH/zuu7LnfujjvvMcczrddv8P1r7yqsIwUrP0ObB+ylsCsrb6mAV5uqXuklS7e4="
}
},
{
"skin_name": "koishi-komeiji",
"skin_property": {
"name": "textures",
"value": "eyJ0aW1lc3RhbXAiOjE1ODc4MDcxMTkyNzEsInByb2ZpbGVJZCI6IjIzZjFhNTlmNDY5YjQzZGRiZGI1MzdiZmVjMTA0NzFmIiwicHJvZmlsZU5hbWUiOiIyODA3Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9iMjI4MTk0OWZlZDc2M2Q3OWYwODZiNGU4MjE0ZGVjNTdiZDM4NzgzODhkOTJmYWQ4NmRjMzQxNzE2MWNkYjJkIiwibWV0YWRhdGEiOnsibW9kZWwiOiJzbGltIn19fX0=",
"signature": "N/b/lSK6Y3Wqm4lTj47YHbec9yVAj7XmDjfWhVAa033UNA30U8o+2pTY0aVDAzFut624iC3xjqMzBlXt7SczsT0w8EV+MnW51V6aPlanj5SQ6zVwB20TdhhAzBNvIQbvo4x4BL99ZpyBJMBRcCVEehjaD3rgshBxH6t2z7WzzYM1cij/5egedjhm8ek8DMdYYakN6DWIOWDv05VQSiWRMhitSI2sqJMTYKaJcLph7/56Ke5zRNtA2mwEcdB+GnDPkeEINzx3A0WG/vOS3iYL8L4T5Dv1GzBlq9s10R1K4Ks5TQLhVJ4Rp2S4COLvvWsgREHQVf6NEIOG2ww4wqTi/xmHni2d6TM9K+vtLSBE7umEvLeOzp8oqbQvtD1ipa0iatR8lEXU1bcGITtwZi+i+zLeOIfx2592XevcOGwTuvhBBM53rN5suLnpcGFIT5TuOQrFinT1+vXoE2D/UkDll8nvtGzJyqFgSSFDrvf0e6ZkbFlIQRoJGkfhnDLON2aEycOe9EcD+NiLDXQc9++j+3Kl5QFyze3xd21+ConIZRGDXKqvoEhfp1ovR7ND76IVOAoGMcDT4N+n+NWdXIilipux3gQ5UZkALw1ocFzhEZY9pCYw9e7XGQRh27N/RYns+sSI1qXbtBbl0FCl7X5efvsJLWId0JuEag5f5RAYYYo="
}
}
]
}
}
Config
  • File Name: skin-data.json
  • File Content:
Click to see the default content...
config/fuji/modules/skin/skin-data.json
{
"nodes": []
}

Commands

Command
  • Command Syntax: /skin

  • Document: Alias to /skin gui command.

  • Can be executed by console: false

  • Required Level Permission: 0

  • Required String Permission: null

Command
  • Command Syntax: /skin gui

  • Document: Open the skin GUI.

  • Can be executed by console: false

  • Required Level Permission: 0

  • Required String Permission: null

Command
  • Command Syntax: /skin use-default-skin <DefaultSkinName defaultSkinName>

  • Document: Use the default skin with specified skin name.

  • Can be executed by console: false

  • Required Level Permission: 0

  • Required String Permission: null

Command
  • Command Syntax: /skin use-default-skin others <PlayerCollection others> <DefaultSkinName defaultSkinName>

  • Document: Use the default skin with specified skin name.

  • Can be executed by console: false

  • Required Level Permission: 4

  • Required String Permission: null

Command
  • Command Syntax: /skin use-mojang-skin others <PlayerCollection others> <Word skinName>

  • Document: Set skin to an online skin of the specified name.

  • Can be executed by console: false

  • Required Level Permission: 4

  • Required String Permission: null

Command
  • Command Syntax: /skin use-mojang-skin <Word skinName>

  • Document: Set skin to an online skin of the specified name.

  • Can be executed by console: false

  • Required Level Permission: 0

  • Required String Permission: null

Command
  • Command Syntax: /skin use-my-mojang-skin

  • Document: Set skin to an online skin of the same name.

  • Can be executed by console: false

  • Required Level Permission: 0

  • Required String Permission: null

Command
  • Command Syntax: /skin use-my-mojang-skin others <PlayerCollection others>

  • Document: Set skin to an online skin of the same name.

  • Can be executed by console: false

  • Required Level Permission: 4

  • Required String Permission: null

Command
  • Command Syntax: /skin use-random-default-skins

  • Document: Set skin to a random default skin.

  • Can be executed by console: false

  • Required Level Permission: 0

  • Required String Permission: null

Command
  • Command Syntax: /skin use-random-default-skins others <PlayerCollection others>

  • Document: Set skin to a random default skin.

  • Can be executed by console: false

  • Required Level Permission: 4

  • Required String Permission: null

Command
  • Command Syntax: /skin use-url-skin alex others <PlayerCollection others> <GreedyString url>

  • Document: Set skin to a custom url in Alex model.

  • Can be executed by console: false

  • Required Level Permission: 4

  • Required String Permission: null

Command
  • Command Syntax: /skin use-url-skin alex <GreedyString url>

  • Document: Set skin to a custom url in Alex model.

  • Can be executed by console: false

  • Required Level Permission: 0

  • Required String Permission: null

Command
  • Command Syntax: /skin use-url-skin steve others <PlayerCollection others> <GreedyString url>

  • Document: Set skin to a custom url in Steve model.

  • Can be executed by console: false

  • Required Level Permission: 4

  • Required String Permission: null

Command
  • Command Syntax: /skin use-url-skin steve <GreedyString url>

  • Document: Set skin to a custom url in Steve model.

  • Can be executed by console: false

  • Required Level Permission: 0

  • Required String Permission: null

Argument Types

Argument Type
  • Argument Type Name: [default-skin-name]
  • Argument Type Class: [DefaultSkinName]