ChangeSkinX
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.
Moreover it will be 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.
Features
- Lightweight
- Instant skin updates
- Easy to use
- Implemented cache to benefit performance
- Nearly no mojang rate limits due caching
- No client modification needed
- Possibility to create a standard skin
Commands
- /setskin <uuid > - Sets your skin to be equal to the player with the selected uuid
- /setskin < playerName>
- /setskin < onlinePlayer > < newSkinUUID/newSkinPlayerName >
- /skinupdate - Invalidates the database entry and fetches the fresh skin from the Mojang servers
Permissions
- changeskin.command.skinupdate - Command to refresh the own skin
- 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
Whitelist
- changeskin.skin.whitelist.uuid - Allow this specific skin
- changeskin.skin.whitelist.* - allows all skins
Blacklist
- changeskin.skin.whitelist.*
- -changeskin.skin.whitelist.uuid
Source code
You don't have to decompile the plugin. You can find there the source code with comments and building utilities.
ChangeSkin is open source and hosted on GitHub; feel free to fork, star, or contribute by making pull requests and opening issues.
Video Tutorials (not by me)
Portuguese:
English:
hi,
whennever i try using the plugin i keep getting this error
[Server] WARN Plugin ChangeSkin v3.1-8b3f47d generated an exception while executing task 35
11.08 09:02:19 [Server] INFO java.lang.NoClassDefFoundError: Could not initialize class com.github.games647.changeskin.bukkit.task.SkinApplier
11.08 09:02:19 [Server] INFO at com.github.games647.changeskin.bukkit.task.SkinDownloader.scheduleApplyTask(SkinDownloader.java:30) ~[ChangeSkinBukkit.jar:?]
11.08 09:02:19 [Server] INFO at com.github.games647.changeskin.core.shared.task.SharedDownloader.run(SharedDownloader.java:37) ~[ChangeSkinBukkit.jar:?]
11.08 09:02:19 [Server] INFO at com.github.games647.changeskin.bukkit.task.NameResolver.scheduleDownloader(NameResolver.java:42) ~[ChangeSkinBukkit.jar:?]
11.08 09:02:19 [Server] INFO at com.github.games647.changeskin.core.shared.task.SharedNameResolver.run(SharedNameResolver.java:55) ~[ChangeSkinBukkit.jar:?]
11.08 09:02:19 [Server] INFO at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.19.2.jar:git-Paper-123]
11.08 09:02:19 [Server] INFO at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.19.2.jar:git-Paper-123]
11.08 09:02:19 [Server] INFO at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.19.2.jar:?]
11.08 09:02:19 [Server] INFO at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
11.08 09:02:19 [Server] INFO at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
11.08 09:02:19 [Server] INFO at java.lang.Thread.run(Thread.java:833) ~[?:?]
I saw someone in the comments who has the same error and you told them to download a dev build, but i have no idea how to do that, if i need to could you explain to me how please?
Thank you
In reply to dungeonorb:
Click on the GitHub page. There is a section about developments. They are basically version in between releases. The error you posted is not complete, so I cannot help you with that.
In reply to kubecode:
sorry here is the full error
11.08 13:11:46 [Server] INFO DungeonOrb issued server command: /set-skin notch
11.08 13:11:46 [Server] WARN Plugin ChangeSkin v3.1-SNAPSHOT-8b3f47d generated an exception while executing task 87
11.08 13:11:46 [Server] INFO java.lang.NoClassDefFoundError: Could not initialize class com.github.games647.changeskin.bukkit.task.SkinApplier
11.08 13:11:46 [Server] INFO at com.github.games647.changeskin.bukkit.task.SkinDownloader.scheduleApplyTask(SkinDownloader.java:30) ~[ChangeSkinBukkit.jar:?]
11.08 13:11:46 [Server] INFO at com.github.games647.changeskin.core.shared.task.SharedDownloader.run(SharedDownloader.java:37) ~[ChangeSkinBukkit.jar:?]
11.08 13:11:46 [Server] INFO at com.github.games647.changeskin.bukkit.task.NameResolver.scheduleDownloader(NameResolver.java:42) ~[ChangeSkinBukkit.jar:?]
11.08 13:11:46 [Server] INFO at com.github.games647.changeskin.core.shared.task.SharedNameResolver.run(SharedNameResolver.java:55) ~[ChangeSkinBukkit.jar:?]
11.08 13:11:46 [Server] INFO at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.19.2.jar:git-Paper-124]
11.08 13:11:46 [Server] INFO at org.bukkit.craftbukkit.v1_19_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[paper-1.19.2.jar:git-Paper-124]
11.08 13:11:46 [Server] INFO at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper-1.19.2.jar:?]
11.08 13:11:46 [Server] INFO at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
11.08 13:11:46 [Server] INFO at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
11.08 13:11:46 [Server] INFO at java.lang.Thread.run(Thread.java:833) ~[?:?]
11.08 13:12:03 [Server] INFO There are 1 of a max of 20 players online: DungeonOrb
i tried uploading the dev version into my server but it doesn't seem to help, i probably did this wrong tho is it the one at
https://ci.codemc.io/job/Games647/job/ChangeSkin/lastStableBuild/
?
Thank you for trying to help
In reply to dungeonorb:
Please post the complete server log, because to that error message should be a caused by with more details.
In reply to kubecode:
hello, sorry for not understanding,
i restarted the server and ran the command, however the full log is a little bit to big to be sent in a reply, i uploaded it as a Link Removed: https://www.mediafire.com/file/mmcsjtc1dqyug99/log.txt/file
Thanks for helping man you're really cool
In reply to dungeonorb:
Ah there it is:
NoClassDefFoundError: com/comphenix/protocol/utility/MinecraftVersion
It means the plugin expected a certain file to be existing, but it wasn't there. In this case you need to update ProtocolLib. This version you are using is out of date.
In reply to kubecode:
hi, i wasn't here for the weekend sorry for not answering
i have updated protocollib to the latest dev version, but i am still getting an error
Link Removed: https://www.mediafire.com/file/wf2duo53lqxw9r1/console_log_2.txt/file
thanks again!
In reply to dungeonorb:
ProtocolLib dropped support for older Minecraft versions. At the top of their page says: 4.8 for versions between 1.8.8 and 1.18 and 5.0 only for 1.19 and up. After a certain time it was too hard to keep backwards compatibility.
In reply to kubecode:
my server is in 1.19.2 and i have downloaded the latest dev build for 1.19 though, it still gives me the same error
i even tried redownloading it just to make sure
Hi, I know this is probably outdated but i'm not sure. Every time I try using the /skin command it says "An internal error occurred while attempting to perform this command". And when I check console it has a big red error. Can anyone please help? I got it from minehut since it is the only one that seems to work. Thank you!
In reply to crxpticzgg:
Please post the error here. That would be very helpful.
Man, I downloaded this plugin and it doesn't work on my EnxadaHost server, I try, so it just doesn't load, the other plugins that have a smooth load, but this one won't even freeze, can I help you?
In reply to mrswerneck:
Please post your server log. We have a dedicated bug tracker you can use.
I keep getting this error:
[01:21:10 WARN]: [ChangeSkin] Task #3787 for ChangeSkin v3.0 generated an exception
com.comphenix.protocol.reflect.FieldAccessException: No field with type int exists in class PacketPlayOutRespawn.
at com.comphenix.protocol.reflect.StructureModifier.writeInternal(StructureModifier.java:363) ~[?:?]
at com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:343) ~[?:?]
at com.github.games647.changeskin.bukkit.tasks.SkinUpdater.sendPacketsSelf(SkinUpdater.java:169) ~[?:?]
at com.github.games647.changeskin.bukkit.tasks.SkinUpdater.sendUpdateSelf(SkinUpdater.java:121) ~[?:?]
at com.github.games647.changeskin.bukkit.tasks.SkinUpdater.sendUpdate(SkinUpdater.java:102) ~[?:?]
at com.github.games647.changeskin.bukkit.tasks.SkinUpdater.onInstantUpdate(SkinUpdater.java:94) ~[?:?]
at com.github.games647.changeskin.bukkit.tasks.SkinUpdater.run(SkinUpdater.java:80) ~[?:?]
at org.bukkit.craftbukkit.v1_15_R1.scheduler.CraftTask.run(CraftTask.java:99) ~[patched_1.15.2.jar:git-Paper-385]
at org.bukkit.craftbukkit.v1_15_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468) ~[patched_1.15.2.jar:git-Paper-385]
at net.minecraft.server.v1_15_R1.MinecraftServer.b(MinecraftServer.java:1265) ~[patched_1.15.2.jar:git-Paper-385]
at net.minecraft.server.v1_15_R1.DedicatedServer.b(DedicatedServer.java:431) ~[patched_1.15.2.jar:git-Paper-385]
at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:1182) ~[patched_1.15.2.jar:git-Paper-385]
at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:971) ~[patched_1.15.2.jar:git-Paper-385]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]
any idea why?
In reply to real_ragamuffin:
Update the plugin to a dev build
Im using minehut and have Protocol Lib, but when I go to my server the commands don't work.
"An internal error occured while attempting to perform this command"
In reply to breathripping:
hmm do you have NametagEdit? I'm no developer but the dependencies say you need NametagEdit. (link is there)
In reply to c0d3rb0y:
It's an optional dependencies. Only ProtocolLib is required. For the error above I need the server log where the stack shows up.
I can't find the latest version for this plugin on its GitHub, I don't know how to locate the files in that. What I'm searching for is the latest file, preferably one that'd work with 1.15.2, for Bukkit. If possible, could someone tell me the location of where that'd be (from the file in GitHub)? I'm just not sure which of the files to put directly into the "plugins" folder. Thank you!
In reply to natsukikomoj:
Search for development build. It's website that automatically builds plugin from newest changes