Module: skin
Overview
This module provides the skin management for players.
Color Boxes
◉ How it works?
This module provides the skin management:
- This module will
modify the skinwhen the the playerlogin 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.
- A player can use
/skincommand tochange the skinin-game.
◉ 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.
- File Name:
config.json - File Content:
Click to see the default content...
{
"default_skin": {
/* If this option is `true`, then for a player who doesn't have existing `skin` data, the `default skin` will be applied.
If this option is `false`, then the `Mojang online skin` will be applied instead. */
"apply_default_skin_if_no_data": false
/* Specify a `preferred skin` in the `default skin list`, so it will be the `default skin`.
If you specify a `invalid skin name` or this option is `null`, then a `random` skin will be picked from the `default skin list`. */,
"preferred_skin_name": "reimu-hakurei"
/* The defined `default skins` for this server. */,
"default_skin_list": [
{
/* A name used to describe how this skin looks like. */
"skin_name": "reimu-hakurei"
/* The `properties` of this `skin`. */,
"skin_property": {
"name": "textures",
"value": "ewogICJ0aW1lc3RhbXAiIDogMTYyMDIyMDc4MTQyNCwKICAicHJvZmlsZUlkIiA6ICJiYjdjY2E3MTA0MzQ0NDEyOGQzMDg5ZTEzYmRmYWI1OSIsCiAgInByb2ZpbGVOYW1lIiA6ICJsYXVyZW5jaW8zMDMiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjVmMTcyMGM3ODBhNzk1OGI0MWYxNTNlNTA2OWRiNjg2MWJkMjgxYmU0MzJlN2JjNzk0MTE0YTdmNGVjNTJmZCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9",
"signature": "olnQih89nZxKFe0UzWiXU8+wlndGBClUqXxAabwEm6j15SZH9ue7Xd2OM2kRKBiHoqbT+2TSg4xG7cBeAeapVN4vpRP5NPujERl/JI41jYNhMb+DmskreS59fh0QfZPAxOpj/rmmAJVfNN1QblxRM3wlMGaEgS5TH9HfeehgLrBaaDM8/JAgnas4Yh6L0uRoNebjXHrhqgguVBMF3xsWpvpAPCzQCYX2vjCCF3WtOEy7EEUF4u5Lo4teQhr9yfnYGBc/ktE4I0MByqTaKrLqvF45n4jOShPP0RcmLh9JpOXyrScRuaUDhQ8bd8xhkWEb94HMzwznvDLNh1/nbNybCMb5GydYf51hJVfqjU5TMWID71F8FTTBJrCZDBRESFIP+QZ3czYP+urgzmfLgDmcoPIukMaHWLU6qFpTF0QazAgF4u5Fe4J6QEZSyZz0B2kqQG3vN1dXxLgHItjQbEeceChNYNjuZFOTleXzpYkg5/4Zqy6Oek3bMscTYY7IPBV56WiO8eGw5JYMfyDeM3iyh4ZxLEC3HDRtOTBHo7WxWPR/AUOU9HP9CdmKQbGThGAUuqlqRJzbg5XNRvKIcnngI329VZV5RmAnt+G5Vfy6uqBagpMQZ3720PXPG6H5q4SBuXmHt1ccKgJvQv9lTh20EymuIALTnCodr8qDbnRfdrI="
}
},
{
/* A name used to describe how this skin looks like. */
"skin_name": "remilia-scarlet"
/* The `properties` of this `skin`. */,
"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="
}
},
{
/* A name used to describe how this skin looks like. */
"skin_name": "koishi-komeiji"
/* The `properties` of this `skin`. */,
"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="
}
}
]
}
}
- File Name:
skin-data.json - File Content:
Click to see the default content...
{
"nodes": []
}
Commands
-
Command Syntax:
/skin -
Document: Alias to
/skin guicommand. -
Can be executed by console:
false -
Required Level Permission:
0 -
Required String Permission:
null
-
Command Syntax:
/skin gui -
Document: Open the
skinGUI. -
Can be executed by console:
false -
Required Level Permission:
0 -
Required String Permission:
null
-
Command Syntax:
/skin use-default-skin <DefaultSkinName defaultSkinName> -
Document: Use the
default skinwith specifiedskin name. -
Can be executed by console:
false -
Required Level Permission:
0 -
Required String Permission:
null
-
Command Syntax:
/skin use-default-skin others <PlayerCollection others> <DefaultSkinName defaultSkinName> -
Document: Use the
default skinwith specifiedskin name. -
Can be executed by console:
true -
Required Level Permission:
4 -
Required String Permission:
null
-
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 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:
true -
Required Level Permission:
4 -
Required String Permission:
null
-
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 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:
true -
Required Level Permission:
4 -
Required String Permission:
null
-
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 Syntax:
/skin use-random-default-skins others <PlayerCollection others> -
Document: Set skin to a random default skin.
-
Can be executed by console:
true -
Required Level Permission:
4 -
Required String Permission:
null
-
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 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:
true -
Required Level Permission:
4 -
Required String Permission:
null
-
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
-
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:
true -
Required Level Permission:
4 -
Required String Permission:
null
Argument Types
- Argument Type Name:
[default-skin-name] - Argument Type Class:
[DefaultSkinName]