Slimefun / Slimefun4

Slimefun 4 - A unique Spigot/Paper plugin that looks and feels like a modpack. We've been giving you backpacks, jetpacks, reactors and much more since 2013.
GNU General Public License v3.0
973 stars 546 forks source link

Custom Player Heads are no Longer Working #4024

Closed iLuckyx closed 11 months ago

iLuckyx commented 1 year ago

โ— Checklist

๐Ÿ“ Description

Due to a major exploit available on versions 1.20.1 of Paper, we were forced to update to 1.20.2. Since then, we have noticed that all of the custom heads within the Slimefun guide and Slimefun as a whole, are just Steve/non-textured heads. After discussing within #bug-discussions, it was mentioned that another plugin had this same issue; Vehicles. The plugin devs found that this started with paper build #247.

From my testing, this is 100% true. Build 246 of Paper it works, build 247, all the player heads no longer have textures.

Here is some additional information to what I have found investigating: Note: Some of this might be completely useless but since I've spent hours, I will be listing everything I have found.

Compared to the radiant backpack: minecraft:player_head{PublicBukkitValues:{"slimefun:slimefun_item":"RADIANT_BACKPACK"},SkullOwner:{Id:[I;-198377739,1921335127,-1218858788,793121819],Name:"CS-CoreLib"},display:{Lore:['{"text":""}','{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Size: "},{"italic":false,"color":"yellow","text":"54 (Double chest)"}],"text":""}','{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"ID: <ID>"}],"text":""}','{"text":""}','{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"yellow","text":"Right Click"},{"italic":false,"color":"gray","text":" to open"}],"text":""}'],Name:'{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"yellow","text":"Radiant Backpack"}],"text":""}'}}

It seems later version might depend on the "Properties:{textures:" within the NBT?

๐Ÿ“‘ Reproduction Steps

Download any version of paper after build 247. Install latest version of Slimefun View the Slimefun Guide, all player heads will be default.

๐Ÿ’ก Expected Behavior

The player heads should contain their textures.

๐Ÿ“ท Screenshots / Videos

Build 246 image

Build 247 image

๐Ÿ“œ Server Log

No response

๐Ÿ“‚ /error-reports/ folder

No response

๐Ÿ’ป Server Software

Paper

๐ŸŽฎ Minecraft Version

1.20.x

โญ Slimefun version

[19:44:25 INFO]: This Server uses the following setup of Slimefun:
Paper git-Paper-250 (MC: 1.20.2)
Slimefun DEV - 1104 (git c977454e)
Metrics-Module #29
Java 17
Installed Addons: (16)
  Networks vDEV - 50 (git 3de3c9d6)
  ExtraTools vDEV - 36 (git 922c0324)
  HotbarPets vDEV - 38 (git fa6c871d)
  SimpleMaterialGenerators v1.0.0
  HeadLimiter vDEV - 15 (git 66d18f52)
  ExoticGarden vUNOFFICIAL
  InfinityExpansion vMODIFIED
  Supreme vDEV - 29 (git f9e70053)
  SlimeCustomizer vDEV - 30 (git 6f0bf930)
  LiteXpansion vDEV - 192 (git 661862ed)
  WhatIsThis v5.3
  Netheopoiesis vMODIFIED
  MobCapturer vDEV - 33 (git 6fc26c35)
  FlowerPower vDEV - 16 (git 5a38d1c6)
  TranscEndence vDEV - 41 (git 98d7d47e)
  FluffyMachines vDEV - 132 (git ccf029ba)

๐Ÿงญ Other plugins

[19:44:40 INFO]: Server Plugins (29):
[19:44:40 INFO]: Bukkit Plugins:
[19:44:40 INFO]:  - Essentials, ExoticGarden, ExtraTools, FlowerPower, FluffyMachines, GhostScavengerHunt, HeadLimiter, HotbarPets, InfinityExpansion, LiteXpansion
[19:44:40 INFO]:  LuckPerms, map-ads, maps, MobCapturer, Netheopoiesis, Networks, ProtocolLib, PyroFishingPro, PyroLib, QuickShop-Hikari
[19:44:40 INFO]:  SimpleAdvertising, SimpleMaterialGenerators, SlimeCustomizer, Slimefun, Supreme, ToastedAD, TranscEndence, Vault, WhatIsThis
iLuckyx commented 1 year ago

Found this as well - https://www.spigotmc.org/threads/custom-player-heads-no-longer-working.624082/

iLuckyx commented 1 year ago

No startup errors as well - https://pastebin.com/ugP16vD4

J3fftw1 commented 1 year ago

This error gets fired when we do not supres errors for "ratelimiting".

Added this on line 114 on github task. System.out.println(x.getMessage());

iLuckyx commented 1 year ago

Worked with Jeff and bit on this. Used a modified build to display the error:

[20:08:27 INFO]: [Slimefun] Loading language files...
[20:08:27 ERROR]: Error occurred while enabling Slimefun v4.9-UNOFFICIAL (Is it up to date?)
java.lang.NullPointerException: Profile name must not be null
        at java.util.Objects.requireNonNull(Objects.java:235) ~[?:?]
        at com.mojang.authlib.GameProfile.<init>(GameProfile.java:31) ~[authlib-5.0.47.jar:?]
        at org.bukkit.craftbukkit.v1_20_R2.inventory.CraftMetaSkull.setOwningPlayer(CraftMetaSkull.java:250) ~[paper-1.20.2.jar:git-Paper-250]
        at io.github.thebusybiscuit.slimefun4.libraries.dough.skins.CustomGameProfile.apply(CustomGameProfile.java:40) ~[Slimefun_v4.9-UNOFFICIAL.jar:?]
        at io.github.thebusybiscuit.slimefun4.libraries.dough.skins.PlayerHead.lambda$getItemStack$1(PlayerHead.java:53) ~[Slimefun_v4.9-UNOFFICIAL.jar:?]
        at io.github.thebusybiscuit.slimefun4.libraries.dough.skins.PlayerHead.getItemStack(PlayerHead.java:63) ~[Slimefun_v4.9-UNOFFICIAL.jar:?]
        at io.github.thebusybiscuit.slimefun4.libraries.dough.skins.PlayerHead.getItemStack(PlayerHead.java:51) ~[Slimefun_v4.9-UNOFFICIAL.jar:?]
        at io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils.getCustomHead(SlimefunUtils.java:246) ~[Slimefun_v4.9-UNOFFICIAL.jar:?]
        at io.github.thebusybiscuit.slimefun4.core.services.localization.Language.<init>(Language.java:52) ~[Slimefun_v4.9-UNOFFICIAL.jar:?]
        at io.github.thebusybiscuit.slimefun4.core.services.LocalizationService.<init>(LocalizationService.java:67) ~[Slimefun_v4.9-UNOFFICIAL.jar:?]
        at io.github.thebusybiscuit.slimefun4.implementation.Slimefun.onPluginStart(Slimefun.java:302) ~[Slimefun_v4.9-UNOFFICIAL.jar:?]
        at io.github.thebusybiscuit.slimefun4.implementation.Slimefun.onEnable(Slimefun.java:246) ~[Slimefun_v4.9-UNOFFICIAL.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:281) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
        at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:189) ~[paper-1.20.2.jar:git-Paper-250]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104) ~[paper-1.20.2.jar:git-Paper-250]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_20_R2.CraftServer.enablePlugin(CraftServer.java:644) ~[paper-1.20.2.jar:git-Paper-250]
        at org.bukkit.craftbukkit.v1_20_R2.CraftServer.enablePlugins(CraftServer.java:555) ~[paper-1.20.2.jar:git-Paper-250]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:627) ~[paper-1.20.2.jar:git-Paper-250]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:424) ~[paper-1.20.2.jar:git-Paper-250]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:308) ~[paper-1.20.2.jar:git-Paper-250]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1086) ~[paper-1.20.2.jar:git-Paper-250]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[paper-1.20.2.jar:git-Paper-250]
        at java.lang.Thread.run(Thread.java:840) ~[?:?]
[20:08:27 INFO]: [Slimefun] Disabling Slimefun v4.9-UNOFFICIAL

Found that this might have been a problem before: https://github.com/baked-libs/dough/pull/225

Dynatech also had this same error and was fixed with commit: https://github.com/ProfElements/DynaTech/commit/70b8eefd953da23a672e480ca0fee05c582b85c3

masood151117 commented 1 year ago

โ— Checklist

  • [x] I am using the official english version of Slimefun and did not modify the jar.
  • [x] I am using an up to date "DEV" (not "RC") version of Slimefun.
  • [x] I am aware that issues related to Slimefun addons need to be reported on their bug trackers and not here.
  • [x] I searched for similar open issues and could not find an existing bug report on this.

๐Ÿ“ Description

Due to a major exploit available on versions 1.20.1 of Paper, we were forced to update to 1.20.2. Since then, we have noticed that all of the custom heads within the Slimefun guide and Slimefun as a whole, are just Steve/non-textured heads. After discussing within #bug-discussions, it was mentioned that another plugin had this same issue; Vehicles. The plugin devs found that this started with paper build #247.

From my testing, this is 100% true. Build 246 of Paper it works, build 247, all the player heads no longer have textures.

Here is some additional information to what I have found investigating: Note: Some of this might be completely useless but since I've spent hours, I will be listing everything I have found.

  • 1.20.2 has changed the way skulls/player heads are handled. Apparently, they now need both a UUID and NAME to be specified.
  • When using Minecraft's give command to give myself my own player head, this is the output of /paper dumpitem: minecraft:player_head{SkullOwner:{Id:[I;-1413460822,-750763633,-1892653176,-501695085],Name:"iiLucky_",Properties:{textures:[{Signature:"I0crRsXyUywVwZD2IGkPgLANPS7ccdCZFWUwox9EXchrxNATMJbZ4u7WhqZqZYJl+HhTKDmu/K/gPs9laPqR4mVKy516kpkXYVUuupVELLWHBfROJi1ON3S6Gvcs56scSyePIm68RBKSvrNm8PJDSsGI9HHO2tm3p497kawSipIjHiEBOOm6AEcfssyKB9Lav/eARaaACr0u4Vxf6GHIFKB4SThOoVmtYswIjW2gsuJCu3obEEGctD0Q0BaAnFZt2L04bfDMtcMbtXznAV+O3hc5jOqaB0Gde+aDsTY4Pxd1TQYkruVTm8I+7IEEENXWNBL7B0bhhj7W60czwOZ5pB5vbz3dg41m2woaRnD/CjfYIrECznJo8Fj2aHpH7+fFJFq/5TcQiR0sbGtU0eGqL57P3o03s+l+X2GwG69ZRPOBeQOemdoRFbZxWPcEBQllghJpy9c0mVCnAx0kciEl6HU9fLluHjMf47gZO4Z60pRLpJ2PwHwtwz413wSTTipfuJ79fVspAVu9E5/n7tZl5xee7a5COkBid8HkqcvsDFge98lBcbrr1xXs7L5lZCPKhmDcnm818+J0b0hpm6BRCwEj3fBYUf7q4Qz/YCGfydgQWTF7YEA1GQY/ZZu6bUA3koTT6gEqXFs7v6C5nT6oDyagjOl+1Hb4M2MfYBQ4az4=",Value:"ewogICJ0aW1lc3RhbXAiIDogMTY5OTkzOTYyMDE3OSwKICAicHJvZmlsZUlkIiA6ICJhYmMwNGNhYWQzNDA0MThmOGYzMDY3ODhlMjE4YmQ5MyIsCiAgInByb2ZpbGVOYW1lIiA6ICJpaUx1Y2t5XyIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9iOGJkOTJhZDk3ZjJhMjc2NDMwZDI4ZTNjZTkzOTAwNjI2M2RmMjRiN2ZmMzZhM2E3NWMwNmY3YThkMDllOTk4IgogICAgfQogIH0KfQ=="}]}}} Command: /minecraft:give iiLucky_ minecraft:player_head{SkullOwner:iiLucky_}

Compared to the radiant backpack: minecraft:player_head{PublicBukkitValues:{"slimefun:slimefun_item":"RADIANT_BACKPACK"},SkullOwner:{Id:[I;-198377739,1921335127,-1218858788,793121819],Name:"CS-CoreLib"},display:{Lore:['{"text":""}','{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"Size: "},{"italic":false,"color":"yellow","text":"54 (Double chest)"}],"text":""}','{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"gray","text":"ID: <ID>"}],"text":""}','{"text":""}','{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"yellow","text":"Right Click"},{"italic":false,"color":"gray","text":" to open"}],"text":""}'],Name:'{"extra":[{"bold":false,"italic":false,"underlined":false,"strikethrough":false,"obfuscated":false,"color":"yellow","text":"Radiant Backpack"}],"text":""}'}}

It seems later version might depend on the "Properties:{textures:" within the NBT?

๐Ÿ“‘ Reproduction Steps

Download any version of paper after build 247. Install latest version of Slimefun View the Slimefun Guide, all player heads will be default.

๐Ÿ’ก Expected Behavior

The player heads should contain their textures.

๐Ÿ“ท Screenshots / Videos

Build 246 image

Build 247 image

๐Ÿ“œ Server Log

No response

๐Ÿ“‚ /error-reports/ folder

No response

๐Ÿ’ป Server Software

Paper

๐ŸŽฎ Minecraft Version

1.20.x

โญ Slimefun version

[19:44:25 INFO]: This Server uses the following setup of Slimefun:
Paper git-Paper-250 (MC: 1.20.2)
Slimefun DEV - 1104 (git c977454e)
Metrics-Module #29
Java 17
Installed Addons: (16)
  Networks vDEV - 50 (git 3de3c9d6)
  ExtraTools vDEV - 36 (git 922c0324)
  HotbarPets vDEV - 38 (git fa6c871d)
  SimpleMaterialGenerators v1.0.0
  HeadLimiter vDEV - 15 (git 66d18f52)
  ExoticGarden vUNOFFICIAL
  InfinityExpansion vMODIFIED
  Supreme vDEV - 29 (git f9e70053)
  SlimeCustomizer vDEV - 30 (git 6f0bf930)
  LiteXpansion vDEV - 192 (git 661862ed)
  WhatIsThis v5.3
  Netheopoiesis vMODIFIED
  MobCapturer vDEV - 33 (git 6fc26c35)
  FlowerPower vDEV - 16 (git 5a38d1c6)
  TranscEndence vDEV - 41 (git 98d7d47e)
  FluffyMachines vDEV - 132 (git ccf029ba)

๐Ÿงญ Other plugins

[19:44:40 INFO]: Server Plugins (29):
[19:44:40 INFO]: Bukkit Plugins:
[19:44:40 INFO]:  - Essentials, ExoticGarden, ExtraTools, FlowerPower, FluffyMachines, GhostScavengerHunt, HeadLimiter, HotbarPets, InfinityExpansion, LiteXpansion
[19:44:40 INFO]:  LuckPerms, map-ads, maps, MobCapturer, Netheopoiesis, Networks, ProtocolLib, PyroFishingPro, PyroLib, QuickShop-Hikari
[19:44:40 INFO]:  SimpleAdvertising, SimpleMaterialGenerators, SlimeCustomizer, Slimefun, Supreme, ToastedAD, TranscEndence, Vault, WhatIsThis

i have same issue

Boomer-1 commented 1 year ago

paper builds from 247-249 have an issue. after 249 they have what i read is hotfix, but a permanent one is coming.

Boomer-1 commented 1 year ago

i started a new 1.20.2 server with paper version 291 and it is still an issue, so it seems the fix may not have worked, or it did and sf still needs to do an update

iLuckyx commented 1 year ago

I believe from what I have read is that this will need to be fixed on the plugin level. The "fix" they have discussed is too allow plugins to still use an incorrect way of some form of handling. (Don't quote me I'm not a dev to really understand the lingo.)