ChangeSkin 3.0

Allows your players to change their skins by command | Restore cracked skins | Instant updates

  1. games647
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    Source Code:
    https://github.com/games647/ChangeSkin
    Contributors:
    games647, DoNotSpamPls, kicjow, Shynixn, Bodyash
    Languages Supported:
    Configurable in language file
    [​IMG]

    Description


    This plugin allows your players to change their skins by command. These skins have to be downloaded from Mojang, because Minecraft clients only accept from Mojang signed skins. But you can choose every skin that another minecraft user currently has or had.

    Moreover it's possible to set a custom standard skin. If you want to, this plugin can set this standard skin for all players who still have the default steve or alex skin.

    If you like the project, leave a star on GitHub and contribute there.

    Development-Builds

    This plugin also supports newer Minecraft versions and is still updated. I moved away from doing fixed releases. Instead you can use development builds that are build directly after a change. Click on the left side on the build to download it or remove "changes" part of the URL to get always the latest.

    https://ci.codemc.org/job/Games647/job/ChangeSkin/changes

    Features
    • Instant skin updates
    • Works on offline mode (can restore skins) and online mode servers
    • Nearly no mojang rate limits due caching
    • Specify standard skins
    • Change your skin - Every skin which was uploaded to Mojang is allowed
    • Lightweight
    • BungeeCord support
    • Implemented cache to benefit performance
    • No client modification needed
    • Tested with Spigot, PaperSpigot and TacoSpigot
    • Easy to use
    • Open Source
    Source code
    https://github.com/games647/ChangeSkin

    Commands

    • /setskin <uuid>
    • /setskin <playerName>
    • /setskin <onlinePlayer> <newSkinUUID/newSkinPlayerName>
    • /skinupdate - Downloads the fresh skin from Mojang
    How to install on BungeeCord
    1. Install the plugin on both BungeeCord and Bukkit server
    2. Activate BungeeCord support in your spigot configuration
    3. Check the settings of the ChangeSkin config in the BungeeCord instance
      • For example BungeeCord doesn't support SQLite by default
    Permissions

    changeskin.command.skinupdate - Request a fresh skin from mojang
    changeskin.command.setskin.* - All the commands below
    changeskin.command.setskin - Set your own skin
    changeskin.command.setskin.other - Set the skin of other players

    Whitelist and blacklist permissions
    For this you have to skin permissions.
    Whitelist
    • changeskin.skin.whitelist.uuid - Allow this specific skin
    • changeskin.skin.whitelist.* - allows all skins
    Blacklist
    • changeskin.skin.whitelist.*
    • -changeskin.skin.whitelist.uuid
    => This means all skins are allowed except the ones with the uuid in the blacklist list

    Requirements
    [​IMG]
    Thank you very much for those who already donated:
    • Name removed - 20$
    • xion987 - 15$
    • Chalkie - 11$
    • PigParty - 11$
    • andramil - 10$
    • Name removed - 10$
    For privacy reasons I remove the first and last name. If you don't want to be listed, message me or write it directly into the donation message.
    Yuzaihhhh, saligin, Chalkie and 19 others like this.

Recent Reviews

  1. imDaniX
    imDaniX
    5/5,
    Version: 3.0
    Still the best skin plugin in here. Lightweight and works perfectly fine. I hope that one day we get an update on spigotmc so more people will know about it.
  2. Darutan
    Darutan
    5/5,
    Version: 3.0
    This is a very nice skin plugin. I have been using it for many years. This is the only plugin of its kind that supports displaying skins on Dynmap. Check out other plugins from the developer, they are also good and some are unique. Support him if possible. Thank you very much!
  3. FireRoz
    FireRoz
    5/5,
    Version: 3.0
    I usually don't leave ratings on resources, but this resource is so good listen:
    The plugin itself works perfect.
    You are able to go to your settings and change how many layers there are on the skin which is amazing.
    And if it doesn't work /skinupdate will always set you.
    I highly recommend it if you just wanna remember your disguise or just for any purpose whether it's a rank perk, or whether you wanna troll with it.
  4. moonapplesauce
    moonapplesauce
    3/5,
    Version: 3.0
    Doesn't older skins work. The uploading system to upload skins doesn't work anymore. But it's still a great plugin. You just have to use skins that someone else is currently wearing on their profile.

    Also if the username is only 2 letters, this plugin won't recognize their username.
    1. games647
      Author's Response
      Please provide me the data for the older skins and the username of a valid Mojang username with 2 letters and I will adjust that. Mojang changed the data format for their skins a while back. ChangeSkin had to comply these changes. I tested it with older skins. However I could miss something. It would be great to have that data from you to reproduce it.
  5. Sportkanone123
    Sportkanone123
    2/5,
    Version: 3.0
    It works, but its not possible to use it only on Bukkit when you use a Bungee Cord Server. Please change this. Then you will get a 5 Stars
    1. games647
      Author's Response
      That's not possible. BungeeCord needs to access the skin directly for it's features. It completely ignores the skin sent by the Spigot server. If ChangeSkin on BungeeCord is not used, it will only use the skin retrieved from an online mode login verification.
  6. hanbule
    hanbule
    3/5,
    Version: 3.0
    Permissions for permissionsex in the bundle bukkit + BungeeCord do not work..........
    1. games647
      Author's Response
      Do you configured the BungeeCord permissions in the bungee config.yml?
  7. Thikoon
    Thikoon
    5/5,
    Version: 3.0
    This is such a great compliment for a server if you want people with default skins to have something much cooler. 10/10 would recommend to everyone
  8. roilee1101
    roilee1101
    5/5,
    Version: 3.0
    I have used this plugin for a while and it works really well!
    only thing I am wondering right now is how to install this on bungee cord server because I have decided to change my server into that. I have tried to put this in the plugin folder of bungee cord but there was an error and it always disabled the plugin. If there is anything that I need to do pls help me:) thank you
    19:04:31 [SEVERE] [ChangeSkin] Error loading config. Disabling plugin...
    com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at com.zaxxer.hikari.pool.HikariPool.throwPoolInitializationException(HikariPool.java:568)
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:554)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:114)
    at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:82)
    at com.github.games647.changeskin.core.SkinStorage.<init>(SkinStorage.java:67)
    at com.github.games647.changeskin.core.ChangeSkinCore.setupDatabase(ChangeSkinCore.java:112)
    at com.github.games647.changeskin.core.ChangeSkinCore.load(ChangeSkinCore.java:79)
    at com.github.games647.changeskin.bungee.ChangeSkinBungee.onEnable(ChangeSkinBungee.java:77)
    at net.md_5.bungee.api.plugin.PluginManager.enablePlugins(PluginManager.java:247)
    at net.md_5.bungee.BungeeCord.start(BungeeCord.java:279)
    at net.md_5.bungee.BungeeCordLauncher.main(BungeeCordLauncher.java:62)
    at net.md_5.bungee.Bootstrap.main(Bootstrap.java:15)
    Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:342)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2197)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2230)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2025)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:778)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:117)
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:123)
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:375)
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:204)
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:459)
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:533)
    ... 10 more
    Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:301)
    ... 28 more
    1. games647
      Author's Response
      This error means that there is no MySQL/MariaDB server responding to your database configuration. Make sure such an instance is running and listening on the configured port.
  9. Chalkie
    Chalkie
    5/5,
    Version: 3.0
    Great bit of software that seems to do away with a lot of the bloat the comes with the other one (SR).
    Dev is friendly and keeps it update.
  10. Blocks_n_more
    Blocks_n_more
    4/5,
    Version: 3.0
    Good plugin the only issue with it is that you have to relog for people to see the new skin i wish it would update instantly
    1. games647
      Author's Response
      It does see the config for more details