diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/api/items/SlimefunItemStack.java b/src/main/java/io/github/thebusybiscuit/slimefun4/api/items/SlimefunItemStack.java index d68c03ddb..84087c5b5 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/api/items/SlimefunItemStack.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/api/items/SlimefunItemStack.java @@ -24,7 +24,8 @@ import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import io.github.bakedlibs.dough.items.ItemMetaSnapshot; -import io.github.thebusybiscuit.cscorelib2.skull.SkullItem; +import io.github.bakedlibs.dough.skins.PlayerHead; +import io.github.bakedlibs.dough.skins.PlayerSkin; import io.github.thebusybiscuit.slimefun4.api.MinecraftVersion; import io.github.thebusybiscuit.slimefun4.api.exceptions.PrematureCodeException; import io.github.thebusybiscuit.slimefun4.api.exceptions.WrongItemStackException; @@ -286,7 +287,8 @@ public class SlimefunItemStack extends ItemStack { return new ItemStack(Material.PLAYER_HEAD); } - return SkullItem.fromBase64(getTexture(id, texture)); + PlayerSkin skin = PlayerSkin.fromBase64(getTexture(id, texture)); + return PlayerHead.getItemStack(skin); } private static @Nonnull String getTexture(@Nonnull String id, @Nonnull String texture) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/multiblocks/MultiBlockMachine.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/multiblocks/MultiBlockMachine.java index 202bf3e33..286234355 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/multiblocks/MultiBlockMachine.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/multiblocks/MultiBlockMachine.java @@ -19,8 +19,8 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils; -import io.github.thebusybiscuit.cscorelib2.protection.Interaction; +import io.github.bakedlibs.dough.inventory.InvUtils; +import io.github.bakedlibs.dough.protection.Interaction; import io.github.thebusybiscuit.slimefun4.api.SlimefunAddon; import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/androids/ProgrammableAndroid.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/androids/ProgrammableAndroid.java index 237561a56..602a570b6 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/androids/ProgrammableAndroid.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/androids/ProgrammableAndroid.java @@ -31,12 +31,12 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import com.sk89q.worldedit.blocks.SkullBlock; - import io.github.bakedlibs.dough.chat.ChatInput; import io.github.bakedlibs.dough.common.ChatColors; import io.github.bakedlibs.dough.items.CustomItemStack; import io.github.bakedlibs.dough.items.ItemUtils; +import io.github.bakedlibs.dough.skins.PlayerHead; +import io.github.bakedlibs.dough.skins.PlayerSkin; import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; @@ -898,7 +898,11 @@ public class ProgrammableAndroid extends SlimefunItem implements InventoryBlock, }); block.setBlockData(blockData); - Slimefun.runSync(() -> SkullBlock.setFromBase64(block, texture)); + + Slimefun.runSync(() -> { + PlayerSkin skin = PlayerSkin.fromBase64(texture); + PlayerHead.setSkin(block, skin, true); + }); b.setType(Material.AIR); BlockStorage.moveBlockInfo(b.getLocation(), block.getLocation()); diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/blocks/OutputChest.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/blocks/OutputChest.java index 31af740f4..7eaad0768 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/blocks/OutputChest.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/blocks/OutputChest.java @@ -14,7 +14,7 @@ import org.bukkit.block.Chest; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils; +import io.github.bakedlibs.dough.inventory.InvUtils; import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/entities/ProduceCollector.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/entities/ProduceCollector.java index f2117f795..8c32c1c75 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/entities/ProduceCollector.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/electric/machines/entities/ProduceCollector.java @@ -21,8 +21,8 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.MushroomCow; import org.bukkit.inventory.ItemStack; +import io.github.bakedlibs.dough.inventory.InvUtils; import io.github.bakedlibs.dough.items.CustomItemStack; -import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils; import io.github.thebusybiscuit.slimefun4.api.MinecraftVersion; import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup; import io.github.thebusybiscuit.slimefun4.api.items.ItemSetting; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/miner/MiningTask.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/miner/MiningTask.java index 7738f782a..f82d17191 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/miner/MiningTask.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/multiblocks/miner/MiningTask.java @@ -24,10 +24,10 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import io.github.bakedlibs.dough.blocks.BlockPosition; +import io.github.bakedlibs.dough.inventory.InvUtils; import io.github.bakedlibs.dough.items.ItemUtils; import io.github.bakedlibs.dough.protection.Interaction; import io.github.bakedlibs.dough.scheduling.TaskQueue; -import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils; import io.github.thebusybiscuit.slimefun4.implementation.Slimefun; import io.github.thebusybiscuit.slimefun4.utils.WorldUtils; import io.papermc.lib.PaperLib; diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/DebugFishListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/DebugFishListener.java index c0c57e094..e4d4a7ac3 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/DebugFishListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/DebugFishListener.java @@ -21,9 +21,8 @@ import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.EquipmentSlot; -import com.sk89q.worldedit.blocks.SkullBlock; - import io.github.bakedlibs.dough.common.ChatColors; +import io.github.bakedlibs.dough.skins.PlayerHead; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem; import io.github.thebusybiscuit.slimefun4.core.attributes.EnergyNetComponent; import io.github.thebusybiscuit.slimefun4.core.attributes.EnergyNetProvider; @@ -95,8 +94,8 @@ public class DebugFishListener implements Listener { Slimefun.runSync(() -> { Block block = b.getRelative(face); block.setType(Material.PLAYER_HEAD); - SkullBlock.setFromHash(block, HeadTexture.MISSING_TEXTURE.getTexture()); + PlayerHead.setSkin(block, HeadTexture.MISSING_TEXTURE.getAsSkin(), true); p.playSound(block.getLocation(), Sound.BLOCK_BAMBOO_PLACE, 1, 1); }, 2L); } else if (BlockStorage.hasBlockInfo(b)) { diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/CapacitorTextureUpdateTask.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/CapacitorTextureUpdateTask.java index 6a7e9dc9a..4f7958083 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/CapacitorTextureUpdateTask.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/tasks/CapacitorTextureUpdateTask.java @@ -8,8 +8,8 @@ import org.bukkit.Material; import org.bukkit.Server; import org.bukkit.block.Block; -import com.sk89q.worldedit.blocks.SkullBlock; - +import io.github.bakedlibs.dough.skins.PlayerHead; +import io.github.bakedlibs.dough.skins.PlayerSkin; import io.github.thebusybiscuit.slimefun4.implementation.items.electric.Capacitor; import io.github.thebusybiscuit.slimefun4.utils.HeadTexture; import io.papermc.lib.PaperLib; @@ -75,7 +75,9 @@ public class CapacitorTextureUpdateTask implements Runnable { } private void setTexture(@Nonnull Block b, @Nonnull HeadTexture texture) { - SkullBlock.setFromHash(b, texture.getUniqueId(), texture.getTexture(), false); + PlayerSkin skin = PlayerSkin.fromHashCode(texture.getUniqueId(), texture.getTexture()); + PlayerHead.setSkin(b, skin, false); + PaperLib.getBlockState(b, false).getState().update(true, false); } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/HeadTexture.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/HeadTexture.java index 635cbc844..4501c982c 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/HeadTexture.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/HeadTexture.java @@ -8,6 +8,8 @@ import javax.annotation.Nonnull; import org.apache.commons.lang.Validate; import org.bukkit.inventory.ItemStack; +import io.github.bakedlibs.dough.skins.PlayerSkin; + /** * This enum holds all currently used Head textures in Slimefun. * Credit for most of these goes to our main head designer "AquaLazuryt". @@ -160,4 +162,8 @@ public enum HeadTexture { return SlimefunUtils.getCustomHead(getTexture()); } + public @Nonnull PlayerSkin getAsSkin() { + return PlayerSkin.fromHashCode(texture); + } + } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java index 4576c7113..d2a213bba 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/SlimefunUtils.java @@ -26,7 +26,8 @@ import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; import io.github.bakedlibs.dough.items.ItemMetaSnapshot; -import io.github.thebusybiscuit.cscorelib2.skull.SkullItem; +import io.github.bakedlibs.dough.skins.PlayerHead; +import io.github.bakedlibs.dough.skins.PlayerSkin; import io.github.thebusybiscuit.slimefun4.api.MinecraftVersion; import io.github.thebusybiscuit.slimefun4.api.events.SlimefunItemSpawnEvent; import io.github.thebusybiscuit.slimefun4.api.exceptions.PrematureCodeException; @@ -225,7 +226,8 @@ public final class SlimefunUtils { base64 = Base64.getEncoder().encodeToString(("{\"textures\":{\"SKIN\":{\"url\":\"http://textures.minecraft.net/texture/" + texture + "\"}}}").getBytes(StandardCharsets.UTF_8)); } - return SkullItem.fromBase64(base64); + PlayerSkin skin = PlayerSkin.fromBase64(base64); + return PlayerHead.getItemStack(skin); } public static boolean containsSimilarItem(Inventory inventory, ItemStack item, boolean checkLore) {