Skin Customizer (Spigot Library) icon

Skin Customizer (Spigot Library) -----

A Spigot toolkit to create interactable skin customization interfaces in Minecraft



Skin Customizer
A Spigot plugin/toolkit to create interactable, realtime skin customization interfaces inside Minecraft itself. It features a variety of different components (hair styles, eyes, shirts...) and colors to work with.

Demo
[​IMG]

Dependencies
This project depends on Citizens to create the skin preview, and SkinsRestorer to actually apply the skin to the player. Under the hood, the project uses MineSkin to upload the generated skin textures to Mojang and jens.skin (my project) to render a collection of chosen options to an actual skin.

Getting started
To test the plugin, make sure you install all dependencies and run the /customizer command as an operator. The customizer will spawn.

Developer guide
Start using this project as a dependency by including it in your pom.xml like this:

Code (Text):
<!-- Repository (if not already present) -->
<repository>
   <id>jitpack.io</id>
   <url>https://jitpack.io</url>
</repository>

<!-- Dependency -->
<dependency>
   <groupId>com.github.jensjeflensje</groupId>
   <artifactId>skin-customizer</artifactId>
   <version>1.0.1</version>
   <scope>provided</scope>
</dependency>
Please refer to this readme for the developer guide on creating customizers using Java code.

Structure
The project is focused around the SkinCustomizer class, which can be instantiated with a Bukkit location to summon the customizer. The customizer consists of:

  • The skin preview using a Citizens NPC (SkinPreview)
  • The UI to customize the skin
    • Scrolling buttons to scroll through components for a specific category (e.g. hair styles)
    • Color options for each category
  • The button to apply the skin
UI elements (buttons)
The UI is based on display entities containing skulls, with an interaction entity acting as a hitbox for the button. Every other element ( apply button, scrolling buttons, color button ) is based on one or multiple instances of this base button, InteractableButton.

Customization
Most element of the skin customizer are customizable in the config.yml file, like the different categories, options within that category, and color options. These options come together to form the SkinCustomizerOptions object, which can also be replaced by a custom one and given to SkinCustomizer's constructor.

Caveats
This system of constantly uploading new skins to Mojang can be quite slow. The plugin tries to relieve this by caching the skin using the combination of components as a cache key, but this doesn't apply to newly made combinations.

Motivation
I created jens.skin a while ago and I thought it would be fun to make a version that's inside Minecraft itself. Even though it's not perfect, I'm still quite proud of it :).
Resource Information
Author:
----------
Total Downloads: 48
First Release: Nov 22, 2024
Last Update: Nov 23, 2024
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings