From fbe8d0cbc40429321928418b2f1945a26d7fbc32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 18:07:10 +0100 Subject: [PATCH 01/41] Bump actions/checkout from 3 to 4 (#19) Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a8e1a16..0327b632 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Prepare Workspace uses: ./.github/actions/setup_project_workspace with: @@ -76,7 +76,7 @@ jobs: if: ${{ always() && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/development' || github.ref_type == 'tag') }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Notify Webhook uses: craftaro/GH-Commons/.github/actions/discord_send_job_results@master with: From c95f96ffe11087e8272c5da68f0f98a48d603d81 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 18:07:29 +0100 Subject: [PATCH 02/41] Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.0 to 3.5.1 (#24) Bumps [org.apache.maven.plugins:maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.5.0 to 3.5.1. - [Release notes](https://github.com/apache/maven-shade-plugin/releases) - [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.5.0...maven-shade-plugin-3.5.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-shade-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e5c048bf..d897bf22 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.0 + 3.5.1 From 7fa4795ec00d1906a0d0d4d216e9b9d9314cf991 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 18:07:38 +0100 Subject: [PATCH 03/41] Bump actions/upload-artifact from 3 to 4 (#21) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0327b632..7223977c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,7 +40,7 @@ jobs: run: mvn -B -Duser.name="GitHub Actions on $GITHUB_REPOSITORY (id=$GITHUB_RUN_ID)" -DskipTests clean package - name: Upload Build Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.event.repository.name }} path: ${{ env.DEPLOYMENT_ARTIFACT_DIR }}/${{ env.DEPLOYMENT_ARTIFACT_SELECTOR }} @@ -54,7 +54,7 @@ jobs: keystore_password: ${{ secrets.PLUGINS_JARSIGNER_KEYSTORE_PASSWORD }} - name: Upload Build Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ github.event.repository.name }}-Signed path: ${{ env.DEPLOYMENT_ARTIFACT_DIR }}/${{ env.DEPLOYMENT_ARTIFACT_SELECTOR }} From 1efd8cadfbddbbc529336bd380f3a5caefe293bd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 18:08:29 +0100 Subject: [PATCH 04/41] Bump io.papermc:paperlib from 1.0.7 to 1.0.8 (#20) Bumps [io.papermc:paperlib](https://github.com/PaperMC/PaperLib) from 1.0.7 to 1.0.8. - [Release notes](https://github.com/PaperMC/PaperLib/releases) - [Changelog](https://github.com/PaperMC/PaperLib/blob/master/CHANGELOG.md) - [Commits](https://github.com/PaperMC/PaperLib/compare/v1.0.7...v1.0.8) --- updated-dependencies: - dependency-name: io.papermc:paperlib dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d897bf22..39d4728d 100644 --- a/pom.xml +++ b/pom.xml @@ -150,7 +150,7 @@ io.papermc paperlib - 1.0.7 + 1.0.8 compile From 693f14242adc0e3609410d45032307a74193e10c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 18:08:37 +0100 Subject: [PATCH 05/41] Bump com.github.MilkBowl:VaultAPI from 1.7 to 1.7.1 (#25) Bumps [com.github.MilkBowl:VaultAPI](https://github.com/MilkBowl/VaultAPI) from 1.7 to 1.7.1. - [Release notes](https://github.com/MilkBowl/VaultAPI/releases) - [Commits](https://github.com/MilkBowl/VaultAPI/compare/1.7...1.7.1) --- updated-dependencies: - dependency-name: com.github.MilkBowl:VaultAPI dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 39d4728d..eb992439 100644 --- a/pom.xml +++ b/pom.xml @@ -171,7 +171,7 @@ com.github.MilkBowl VaultAPI - 1.7 + 1.7.1 provided From 1e84f621c98cec60d39b6987a16791e5d7e813ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 18:09:26 +0100 Subject: [PATCH 06/41] Bump me.clip:placeholderapi from 2.11.3 to 2.11.5 (#23) Bumps me.clip:placeholderapi from 2.11.3 to 2.11.5. --- updated-dependencies: - dependency-name: me.clip:placeholderapi dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eb992439..84a2f745 100644 --- a/pom.xml +++ b/pom.xml @@ -178,7 +178,7 @@ me.clip placeholderapi - 2.11.3 + 2.11.5 provided From eab020f569ce589cc5ecf87c1fc6b1ca5d8feeda Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 18:09:36 +0100 Subject: [PATCH 07/41] Bump com.sk89q.worldedit:worldedit-bukkit from 7.2.9 to 7.2.18 (#22) Bumps com.sk89q.worldedit:worldedit-bukkit from 7.2.9 to 7.2.18. --- updated-dependencies: - dependency-name: com.sk89q.worldedit:worldedit-bukkit dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 84a2f745..3cb6f299 100644 --- a/pom.xml +++ b/pom.xml @@ -199,7 +199,7 @@ com.sk89q.worldedit worldedit-bukkit - 7.2.9 + 7.2.18 provided From d6819abab25799ceac980d7b3f03c61c18486cb3 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Thu, 25 Jan 2024 20:19:07 +0100 Subject: [PATCH 08/41] Update to latest core build --- pom.xml | 6 +----- src/main/java/com/craftaro/skyblock/SkyBlock.java | 6 ------ 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index 3cb6f299..c9b41a7f 100644 --- a/pom.xml +++ b/pom.xml @@ -47,11 +47,6 @@ com.craftaro.skyblock.core - - io.papermc.lib - com.craftaro.skyblock.third_party.io.papermc.lib - - com.eatthepath.uuid com.craftaro.skyblock.third_party.com.eatthepath.uuid @@ -85,6 +80,7 @@ **/third_party/org/h2/** **/third_party/com/cryptomorin/** **/third_party/org/reactivestreams/** + **/third_party/io/papermc/lib/** diff --git a/src/main/java/com/craftaro/skyblock/SkyBlock.java b/src/main/java/com/craftaro/skyblock/SkyBlock.java index b5368669..4c441b5d 100644 --- a/src/main/java/com/craftaro/skyblock/SkyBlock.java +++ b/src/main/java/com/craftaro/skyblock/SkyBlock.java @@ -5,7 +5,6 @@ import com.craftaro.core.SongodaPlugin; import com.craftaro.core.compatibility.ServerProject; import com.craftaro.core.compatibility.ServerVersion; import com.craftaro.core.configuration.Config; -import com.craftaro.core.dependency.Dependency; import com.craftaro.core.gui.GuiManager; import com.craftaro.core.hooks.HologramManager; import com.craftaro.core.hooks.LogManager; @@ -149,11 +148,6 @@ public class SkyBlock extends SongodaPlugin { private FileConfiguration stackables; private FileConfiguration upgrades; - @Override - protected Set getDependencies() { - return new HashSet<>(); - } - @Override public void onPluginLoad() { } From 0b685b31df968008f10e81887393bd03d0031013 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Thu, 25 Jan 2024 20:19:32 +0100 Subject: [PATCH 09/41] Release v3.0.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c9b41a7f..52779690 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.craftaro FabledSkyBlock - 3.0.0 + 3.0.1 FabledSkyBlock Bring your server's SkyBlock experience to the next level with the ability to fine-tune island settings, create custom islands, view leaderboards, and much more From 3aa85c751ea93b422b8825f85cd77dd9a173f3ad Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Tue, 30 Jan 2024 11:45:52 +0100 Subject: [PATCH 10/41] feat: Adds previous island owner to `IslandOwnershipTransferEvent` (#14) Instead of resolving the previous owner and risk a potential web/api request getting triggert, although the previous owner might never be used, I decided on just providing the UUID we already have. The plugins can then still find the (Offline)Player themselves when needed. --- .../island/IslandOwnershipTransferEvent.java | 18 +++++++++++++----- .../skyblock/island/IslandManager.java | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/api/event/island/IslandOwnershipTransferEvent.java b/src/main/java/com/craftaro/skyblock/api/event/island/IslandOwnershipTransferEvent.java index 5b247a0b..878db924 100644 --- a/src/main/java/com/craftaro/skyblock/api/event/island/IslandOwnershipTransferEvent.java +++ b/src/main/java/com/craftaro/skyblock/api/event/island/IslandOwnershipTransferEvent.java @@ -5,26 +5,34 @@ import org.bukkit.OfflinePlayer; import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; +import java.util.UUID; + public class IslandOwnershipTransferEvent extends IslandEvent { private static final HandlerList HANDLERS = new HandlerList(); private final OfflinePlayer owner; + private final UUID previousOwnerId; - public IslandOwnershipTransferEvent(Island island, OfflinePlayer owner) { + public IslandOwnershipTransferEvent(Island island, OfflinePlayer owner, UUID previousOwnerId) { super(island); this.owner = owner; - } - - public static HandlerList getHandlerList() { - return HANDLERS; + this.previousOwnerId = previousOwnerId; } public OfflinePlayer getOwner() { return this.owner; } + public UUID getPreviousOwnerId() { + return this.previousOwnerId; + } + @Override public @NotNull HandlerList getHandlers() { return HANDLERS; } + + public static HandlerList getHandlerList() { + return HANDLERS; + } } diff --git a/src/main/java/com/craftaro/skyblock/island/IslandManager.java b/src/main/java/com/craftaro/skyblock/island/IslandManager.java index c660c334..363f00eb 100644 --- a/src/main/java/com/craftaro/skyblock/island/IslandManager.java +++ b/src/main/java/com/craftaro/skyblock/island/IslandManager.java @@ -520,7 +520,7 @@ public class IslandManager { removeIsland(uuid2); this.islandStorage.put(player.getUniqueId(), island); - Bukkit.getServer().getPluginManager().callEvent(new IslandOwnershipTransferEvent(island.getAPIWrapper(), player)); + Bukkit.getServer().getPluginManager().callEvent(new IslandOwnershipTransferEvent(island.getAPIWrapper(), player, uuid2)); ArrayList islandMembers = new ArrayList<>(); islandMembers.addAll(island.getRole(IslandRole.MEMBER)); From 994357fe8e8b65f07a4cfbc4c4d75cb61852b800 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Mon, 12 Feb 2024 22:41:02 +0100 Subject: [PATCH 11/41] Temporary fix for hook system --- .../java/com/craftaro/skyblock/economy/EconomyManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/craftaro/skyblock/economy/EconomyManager.java b/src/main/java/com/craftaro/skyblock/economy/EconomyManager.java index 884d3885..b34cdf87 100644 --- a/src/main/java/com/craftaro/skyblock/economy/EconomyManager.java +++ b/src/main/java/com/craftaro/skyblock/economy/EconomyManager.java @@ -1,6 +1,7 @@ package com.craftaro.skyblock.economy; import com.craftaro.core.hooks.Hook; +import com.craftaro.core.hooks.OutdatedHookInterface; import com.craftaro.core.hooks.economies.Economy; import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.manager.Manager; @@ -15,7 +16,7 @@ public class EconomyManager extends Manager { } public void setEconomy(String economyString) { - Hook hook = com.craftaro.core.hooks.EconomyManager.getManager().getHook(economyString); + OutdatedHookInterface hook = com.craftaro.core.hooks.EconomyManager.getManager().getHook(economyString); if (hook != null && hook.isEnabled() && hook instanceof Economy && From 491143ce45e4390c16a233f2b36a782053836732 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Mon, 12 Feb 2024 22:41:28 +0100 Subject: [PATCH 12/41] Make sure non island members can't access EpicSpawners GUI --- .../listeners/hooks/EpicSpawners.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/main/java/com/craftaro/skyblock/listeners/hooks/EpicSpawners.java b/src/main/java/com/craftaro/skyblock/listeners/hooks/EpicSpawners.java index 56bd3e6f..59051590 100644 --- a/src/main/java/com/craftaro/skyblock/listeners/hooks/EpicSpawners.java +++ b/src/main/java/com/craftaro/skyblock/listeners/hooks/EpicSpawners.java @@ -1,5 +1,6 @@ package com.craftaro.skyblock.listeners.hooks; +import com.craftaro.epicspawners.api.events.SpawnerAccessEvent; import com.craftaro.epicspawners.api.events.SpawnerBreakEvent; import com.craftaro.epicspawners.api.events.SpawnerChangeEvent; import com.craftaro.epicspawners.api.events.SpawnerPlaceEvent; @@ -7,6 +8,7 @@ import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.island.Island; import com.craftaro.skyblock.island.IslandLevel; import com.craftaro.skyblock.island.IslandManager; +import com.craftaro.skyblock.permission.PermissionManager; import com.craftaro.skyblock.utils.version.CompatibleSpawners; import com.craftaro.skyblock.world.WorldManager; import org.bukkit.Bukkit; @@ -132,4 +134,31 @@ public class EpicSpawners implements Listener { } } } + + @EventHandler + public void onSpawnerAccess(SpawnerAccessEvent event) { + if (event.getSpawner().getLocation() == null) { + return; + } + + IslandManager islandManager = this.plugin.getIslandManager(); + WorldManager worldManager = this.plugin.getWorldManager(); + + Location location = event.getSpawner().getLocation(); + if (!worldManager.isIslandWorld(location.getWorld())) { + return; + } + + Island island = islandManager.getIslandAtLocation(location); + + if (island == null) { + return; + } + + PermissionManager permissionManager = this.plugin.getPermissionManager(); + + if (!permissionManager.hasPermission(event.getPlayer(), island, permissionManager.getPermission("SpawnEgg"))) { + event.setCancelled(true); + } + } } From 3129adce6f4ec56adf405a9079b6221c0c3d2b5a Mon Sep 17 00:00:00 2001 From: ceze88 Date: Mon, 12 Feb 2024 22:41:59 +0100 Subject: [PATCH 13/41] Release v3.0.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 52779690..67cf2b08 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.craftaro FabledSkyBlock - 3.0.1 + 3.0.2 FabledSkyBlock Bring your server's SkyBlock experience to the next level with the ability to fine-tune island settings, create custom islands, view leaderboards, and much more From fd158996dfd8d8f7162c66fd0d820f6a4371edeb Mon Sep 17 00:00:00 2001 From: ceze88 Date: Fri, 23 Feb 2024 17:07:31 +0100 Subject: [PATCH 14/41] Fix hologram leaderboards not showing --- src/main/java/com/craftaro/skyblock/hologram/Hologram.java | 2 +- src/main/java/com/craftaro/skyblock/tasks/HologramTask.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/hologram/Hologram.java b/src/main/java/com/craftaro/skyblock/hologram/Hologram.java index 645f7c14..fd20f7d6 100644 --- a/src/main/java/com/craftaro/skyblock/hologram/Hologram.java +++ b/src/main/java/com/craftaro/skyblock/hologram/Hologram.java @@ -15,7 +15,7 @@ public class Hologram { private final Location location; public Hologram(HologramType type, Location location, List lines) { - this.hologramId = location.toString() + UUID.randomUUID(); + this.hologramId = type + "_" + UUID.randomUUID(); this.type = type; this.location = location; diff --git a/src/main/java/com/craftaro/skyblock/tasks/HologramTask.java b/src/main/java/com/craftaro/skyblock/tasks/HologramTask.java index 58d89c69..84279028 100644 --- a/src/main/java/com/craftaro/skyblock/tasks/HologramTask.java +++ b/src/main/java/com/craftaro/skyblock/tasks/HologramTask.java @@ -73,9 +73,9 @@ public class HologramTask extends BukkitRunnable { FileManager.Config locationsConfig = fileManager.getConfig(new File(plugin.getDataFolder(), "locations.yml")); FileConfiguration locationsConfigLoad = locationsConfig.getFileConfiguration(); - if (locationsConfigLoad.getString("Location.Hologram.Leaderboard." + type) != null) { + if (locationsConfigLoad.getString("Location.Hologram.Leaderboard." + type.getFriendlyName()) != null) { spawnHologram(type, plugin.getFileManager().getLocation(locationsConfig, - "Location.Hologram.Leaderboard." + type, true), getHologramLines(type)); + "Location.Hologram.Leaderboard." + type.getFriendlyName(), true), getHologramLines(type)); } } From 0c8fc5d97940b5701d91eccb6770bdc5174987a6 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Fri, 23 Feb 2024 17:08:14 +0100 Subject: [PATCH 15/41] Release v3.0.3 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 67cf2b08..1e7c9ae0 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.craftaro FabledSkyBlock - 3.0.2 + 3.0.3 FabledSkyBlock Bring your server's SkyBlock experience to the next level with the ability to fine-tune island settings, create custom islands, view leaderboards, and much more From f87632c2e5d39522cf1e2111afeaa4d1a93baedb Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Mon, 26 Feb 2024 10:43:33 +0100 Subject: [PATCH 16/41] fix: Corrects method signature for required getHandlerList in events #27 The method needs to be static or an IllegalPluginAccessException is thrown when trying to use the event --- .../craftaro/skyblock/api/event/island/IslandInviteEvent.java | 2 +- .../com/craftaro/skyblock/api/event/island/IslandOpenEvent.java | 2 +- .../skyblock/api/event/island/IslandStatusChangeEvent.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/api/event/island/IslandInviteEvent.java b/src/main/java/com/craftaro/skyblock/api/event/island/IslandInviteEvent.java index 833fb9c0..1f4e3717 100644 --- a/src/main/java/com/craftaro/skyblock/api/event/island/IslandInviteEvent.java +++ b/src/main/java/com/craftaro/skyblock/api/event/island/IslandInviteEvent.java @@ -24,7 +24,7 @@ public class IslandInviteEvent extends IslandEvent { return HANDLERS; } - public HandlerList getHandlerList() { + public static HandlerList getHandlerList() { return HANDLERS; } } diff --git a/src/main/java/com/craftaro/skyblock/api/event/island/IslandOpenEvent.java b/src/main/java/com/craftaro/skyblock/api/event/island/IslandOpenEvent.java index 4dc92dfd..dacaf683 100644 --- a/src/main/java/com/craftaro/skyblock/api/event/island/IslandOpenEvent.java +++ b/src/main/java/com/craftaro/skyblock/api/event/island/IslandOpenEvent.java @@ -37,7 +37,7 @@ public class IslandOpenEvent extends IslandEvent implements Cancellable { return HANDLERS; } - public HandlerList getHandlerList() { + public static HandlerList getHandlerList() { return HANDLERS; } } diff --git a/src/main/java/com/craftaro/skyblock/api/event/island/IslandStatusChangeEvent.java b/src/main/java/com/craftaro/skyblock/api/event/island/IslandStatusChangeEvent.java index fe9b0d8a..9fff824a 100644 --- a/src/main/java/com/craftaro/skyblock/api/event/island/IslandStatusChangeEvent.java +++ b/src/main/java/com/craftaro/skyblock/api/event/island/IslandStatusChangeEvent.java @@ -35,7 +35,7 @@ public class IslandStatusChangeEvent extends IslandEvent implements Cancellable return HANDLERS; } - public HandlerList getHandlerList() { + public static HandlerList getHandlerList() { return HANDLERS; } } From 041c146038fbf7cf6fece7513bedb8aa6100684c Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Mon, 26 Feb 2024 11:33:02 +0100 Subject: [PATCH 17/41] ci: Fix potentially problematic `increment_version` value --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7223977c..77d703ff 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,7 @@ jobs: with: append_snapshot: ${{ github.ref_type == 'tag' && 'false' || 'true' }} version: ${{ github.ref_type == 'tag' && github.ref_name || '' }} - increment_version: ${{ github.ref_type == 'tag' && '' || 'patch' }} + increment_version: ${{ github.ref_type != 'tag' && 'patch' || '' }} increment_version_only_if_not_snapshot_version: ${{ github.ref == 'refs/heads/development' && 'true' || 'false' }} - name: Build with Maven From 9c2da8c669941b03c87b81f0ebb32f7104493d7a Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Mon, 26 Feb 2024 11:59:28 +0100 Subject: [PATCH 18/41] Release v3.0.4 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1e7c9ae0..cafcea30 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.craftaro FabledSkyBlock - 3.0.3 + 3.0.4 FabledSkyBlock Bring your server's SkyBlock experience to the next level with the ability to fine-tune island settings, create custom islands, view leaderboards, and much more From 383a21ef7acb54ff1db794b26d0920d177f2131a Mon Sep 17 00:00:00 2001 From: TeamHR <92500115+TeamHRLive@users.noreply.github.com> Date: Fri, 1 Mar 2024 10:50:42 +0530 Subject: [PATCH 19/41] [Fixed] Player's /is settings was not saving. [Fixed] Ops were not able to fly on ISLAND unless /GMC. Now They can still fly if Fly upgrade is disabled. --- pom.xml | 21 ++++++++++++++++++- .../skyblock/api/island/IslandManager.java | 2 +- .../com/craftaro/skyblock/island/Island.java | 10 ++++----- .../skyblock/island/IslandManager.java | 6 ++---- 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/pom.xml b/pom.xml index cafcea30..f74f932e 100644 --- a/pom.xml +++ b/pom.xml @@ -159,7 +159,7 @@ org.spigotmc - spigot + spigot-api 1.20.1-R0.1-SNAPSHOT provided @@ -198,6 +198,25 @@ 7.2.18 provided + + + com.mojang + authlib + 3.16.29 + provided + + + + io.netty + netty-all + 4.1.107.Final + + + + commons-lang + commons-lang + 2.6 + com.eatthepath diff --git a/src/main/java/com/craftaro/skyblock/api/island/IslandManager.java b/src/main/java/com/craftaro/skyblock/api/island/IslandManager.java index f0e91f78..f2a86400 100644 --- a/src/main/java/com/craftaro/skyblock/api/island/IslandManager.java +++ b/src/main/java/com/craftaro/skyblock/api/island/IslandManager.java @@ -112,7 +112,7 @@ public class IslandManager { * @deprecated use {@link #updateFlight(Player)} instead */ @Deprecated - public void giveUgrades(Player player, Island island) { + public void giveUpgrades(Player player, Island island) { Preconditions.checkArgument(player != null, "Cannot give upgrades to null player"); Preconditions.checkArgument(island != null, "Cannot give upgrades to null island"); diff --git a/src/main/java/com/craftaro/skyblock/island/Island.java b/src/main/java/com/craftaro/skyblock/island/Island.java index 9b1c0edd..3907cdd1 100644 --- a/src/main/java/com/craftaro/skyblock/island/Island.java +++ b/src/main/java/com/craftaro/skyblock/island/Island.java @@ -113,7 +113,7 @@ public class Island { this.level = new IslandLevel(getOwnerUUID(), this.plugin); - File configFile = new File(this.plugin.getDataFolder().toString() + "/island-data"); + File configFile = new File(this.plugin.getDataFolder() + "/island-data"); Config config = fileManager.getConfig(new File(configFile, this.ownerUUID + ".yml")); @@ -191,7 +191,7 @@ public class Island { Config settingsDataConfig = null; - File settingDataFile = new File(this.plugin.getDataFolder().toString() + "/setting-data", getOwnerUUID().toString() + ".yml"); + File settingDataFile = new File(this.plugin.getDataFolder() + "/setting-data", getOwnerUUID().toString() + ".yml"); if (fileManager.isFileExist(settingDataFile)) { settingsDataConfig = fileManager.getConfig(settingDataFile); @@ -203,13 +203,13 @@ public class Island { for (BasicPermission permission : allPermissions) { if (settingsDataConfig == null || settingsDataConfig.getFileConfiguration() - .getString("Settings." + roleList.getFriendlyName() + "." + permission.getName()) == null) { + .getString("Settings." + roleList.getFriendlyName().toUpperCase() + "." + permission.getName()) == null) { permissions.add( new IslandPermission(permission, this.plugin.getSettings() - .getBoolean("Settings." + roleList.getFriendlyName() + "." + permission.getName(), true))); + .getBoolean("Settings." + roleList.getFriendlyName().toUpperCase() + "." + permission.getName(), true))); } else { permissions.add(new IslandPermission(permission, settingsDataConfig.getFileConfiguration() - .getBoolean("Settings." + roleList.getFriendlyName() + "." + permission.getName(), true))); + .getBoolean("Settings." + roleList.getFriendlyName().toUpperCase() + "." + permission.getName(), true))); } } diff --git a/src/main/java/com/craftaro/skyblock/island/IslandManager.java b/src/main/java/com/craftaro/skyblock/island/IslandManager.java index 363f00eb..2581eb8e 100644 --- a/src/main/java/com/craftaro/skyblock/island/IslandManager.java +++ b/src/main/java/com/craftaro/skyblock/island/IslandManager.java @@ -1530,9 +1530,7 @@ public class IslandManager { public void updateFlight(Player player) { // The player can fly in other worlds if they are in creative or have another // plugin's fly permission. - if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR || player.hasPermission("essentials.fly") || player.hasPermission("cmi.command.fly")) { - return; - } + // Merged this with final if block as OPs were not able to fly. // Residence support if (Bukkit.getServer().getPluginManager().getPlugin("Residence") != null) { @@ -1562,7 +1560,7 @@ public class IslandManager { boolean hasGlobalFlyPermission = player.hasPermission("fabledskyblock.*") || player.hasPermission("fabledskyblock.fly.*"); boolean hasOwnIslandFlyPermission = player.hasPermission("fabledskyblock.fly") && island.getRole(player) != null && island.getRole(player) != IslandRole.VISITOR; - if (hasGlobalFlyPermission || hasOwnIslandFlyPermission) { + if (hasGlobalFlyPermission || hasOwnIslandFlyPermission || player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR || player.hasPermission("essentials.fly") || player.hasPermission("cmi.command.fly")) { WorldManager worldManager = this.plugin.getWorldManager(); boolean canFlyInWorld = worldManager.isIslandWorld(player.getWorld()); Bukkit.getServer().getScheduler().runTask(this.plugin, () -> player.setAllowFlight(canFlyInWorld)); From 726acf28dd4196cad2357a860902eebd817e2341 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 12:26:27 +0100 Subject: [PATCH 20/41] Bump com.sk89q.worldedit:worldedit-bukkit from 7.2.18 to 7.2.20 (#29) Bumps com.sk89q.worldedit:worldedit-bukkit from 7.2.18 to 7.2.20. --- updated-dependencies: - dependency-name: com.sk89q.worldedit:worldedit-bukkit dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cafcea30..b8ffedeb 100644 --- a/pom.xml +++ b/pom.xml @@ -195,7 +195,7 @@ com.sk89q.worldedit worldedit-bukkit - 7.2.18 + 7.2.20 provided From d450049632af109464eaacacff23703b1c641d16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 12:26:35 +0100 Subject: [PATCH 21/41] Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2 (#28) Bumps [org.apache.maven.plugins:maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.5.1 to 3.5.2. - [Release notes](https://github.com/apache/maven-shade-plugin/releases) - [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.5.1...maven-shade-plugin-3.5.2) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-shade-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b8ffedeb..146b0b1d 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.1 + 3.5.2 From 9fe0fde5b2f58841077f3e5cb1f0fcead357d1af Mon Sep 17 00:00:00 2001 From: TeamHR Date: Sat, 2 Mar 2024 20:21:45 +0530 Subject: [PATCH 22/41] [Fixes] /is settings not saving for player islands as there is case mismatch. [Fixes] Operators/Players were not able to fly with Island Fly Upgrade --- pom.xml | 8 +++++--- .../com/craftaro/skyblock/api/island/IslandManager.java | 2 +- .../java/com/craftaro/skyblock/island/IslandManager.java | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index f74f932e..158df5ab 100644 --- a/pom.xml +++ b/pom.xml @@ -198,24 +198,26 @@ 7.2.18 provided - + com.mojang authlib 3.16.29 provided - + io.netty netty-all 4.1.107.Final + provided - + commons-lang commons-lang 2.6 + compile diff --git a/src/main/java/com/craftaro/skyblock/api/island/IslandManager.java b/src/main/java/com/craftaro/skyblock/api/island/IslandManager.java index f2a86400..f0e91f78 100644 --- a/src/main/java/com/craftaro/skyblock/api/island/IslandManager.java +++ b/src/main/java/com/craftaro/skyblock/api/island/IslandManager.java @@ -112,7 +112,7 @@ public class IslandManager { * @deprecated use {@link #updateFlight(Player)} instead */ @Deprecated - public void giveUpgrades(Player player, Island island) { + public void giveUgrades(Player player, Island island) { Preconditions.checkArgument(player != null, "Cannot give upgrades to null player"); Preconditions.checkArgument(island != null, "Cannot give upgrades to null island"); diff --git a/src/main/java/com/craftaro/skyblock/island/IslandManager.java b/src/main/java/com/craftaro/skyblock/island/IslandManager.java index 2581eb8e..9348830b 100644 --- a/src/main/java/com/craftaro/skyblock/island/IslandManager.java +++ b/src/main/java/com/craftaro/skyblock/island/IslandManager.java @@ -1530,7 +1530,7 @@ public class IslandManager { public void updateFlight(Player player) { // The player can fly in other worlds if they are in creative or have another // plugin's fly permission. - // Merged this with final if block as OPs were not able to fly. + // Residence support if (Bukkit.getServer().getPluginManager().getPlugin("Residence") != null) { From 798f53c148a08a43cf24c97752c957689cb68591 Mon Sep 17 00:00:00 2001 From: TeamHR <92500115+TeamHRLive@users.noreply.github.com> Date: Mon, 4 Mar 2024 00:00:05 +0530 Subject: [PATCH 23/41] fix: Leaderbord showing broken skulls (#31) [Fixed] Leaderboard showing wrong skulls. Using SkullUtils to fetch Skull and applying skin. --- .../craftaro/skyblock/menus/Leaderboard.java | 28 +++++++++++-------- .../skyblock/playerdata/PlayerData.java | 1 + .../playerdata/PlayerDataManager.java | 1 + 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java b/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java index e6e09c5a..a325d59a 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java +++ b/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java @@ -1,8 +1,5 @@ package com.craftaro.skyblock.menus; -import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; -import com.craftaro.third_party.com.cryptomorin.xseries.XSound; -import com.craftaro.core.utils.ItemUtils; import com.craftaro.core.utils.NumberUtils; import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.placeholder.Placeholder; @@ -11,6 +8,9 @@ import com.craftaro.skyblock.sound.SoundManager; import com.craftaro.skyblock.utils.item.nInventoryUtil; import com.craftaro.skyblock.utils.player.OfflinePlayer; import com.craftaro.skyblock.visit.Visit; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; +import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; +import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -18,6 +18,7 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.SkullMeta; import java.util.ArrayList; import java.util.List; @@ -246,17 +247,17 @@ public class Leaderboard { String playerName; String[] playerTexture; - Player targetPlayer = Bukkit.getServer().getPlayer(visit.getOwnerUUID()); + org.bukkit.OfflinePlayer targetPlayer = Bukkit.getServer().getOfflinePlayer(visit.getOwnerUUID()); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(visit.getOwnerUUID()); playerName = offlinePlayer.getName(); playerTexture = offlinePlayer.getTexture(); - } else { + } + else { playerName = targetPlayer.getName(); - - if (playerDataManager.hasPlayerData(targetPlayer)) { - playerTexture = playerDataManager.getPlayerData(targetPlayer).getTexture(); + if (playerDataManager.hasPlayerData(targetPlayer.getUniqueId())) { + playerTexture = playerDataManager.getPlayerData(targetPlayer.getUniqueId()).getTexture(); } else { playerTexture = new String[]{null, null}; } @@ -308,8 +309,9 @@ public class Leaderboard { } } + ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); nInv.addItem( - nInv.createItem(ItemUtils.getCustomHead(playerTexture[0], playerTexture[1]), + nInv.createItem(phead, configLoad.getString("Menu.Leaderboard.Leaderboard.Item.Island.Displayname") .replace("%owner", playerName) .replace("%position", "" + (leaderboard.getPosition() + 1)), @@ -327,9 +329,14 @@ public class Leaderboard { int[] itemSlots = new int[]{13, 21, 22, 23, 29, 31, 33, 37, 40, 43}; + for (int i = 0; i < itemSlots.length; i++) { if (!nInv.getItems().containsKey(itemSlots[i])) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead(questionMarkSkinTexture[0], questionMarkSkinTexture[1]), + ItemStack qhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta qskullMeta = (SkullMeta) qhead.getItemMeta(); + SkullUtils.setSkullBase64(qskullMeta,questionMarkSkinTexture[1],questionMarkSkinTexture[0]); + qhead.setItemMeta(qskullMeta); + nInv.addItem(nInv.createItem(qhead, configLoad.getString("Menu.Leaderboard.Leaderboard.Item.Empty.Displayname") .replace("%position", "" + (i + 1)), configLoad.getStringList("Menu.Leaderboard.Leaderboard.Item.Empty.Lore"), @@ -337,7 +344,6 @@ public class Leaderboard { itemSlots[i]); } } - nInv.setTitle(plugin.formatText(configLoad.getString("Menu.Leaderboard.Leaderboard.Title").replace("%leaderboard", viewer.getType().getFriendlyName()))); nInv.setRows(6); diff --git a/src/main/java/com/craftaro/skyblock/playerdata/PlayerData.java b/src/main/java/com/craftaro/skyblock/playerdata/PlayerData.java index 2bce42fc..cf3fabf8 100644 --- a/src/main/java/com/craftaro/skyblock/playerdata/PlayerData.java +++ b/src/main/java/com/craftaro/skyblock/playerdata/PlayerData.java @@ -12,6 +12,7 @@ import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; + import java.io.File; import java.io.IOException; import java.util.ArrayList; diff --git a/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java b/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java index 51f8da18..02bfc188 100644 --- a/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java +++ b/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java @@ -82,6 +82,7 @@ public class PlayerDataManager { } } + public void loadPlayerData(Player player) { if (this.plugin.getFileManager().isFileExist(new File(this.plugin.getDataFolder().toString() + "/player-data", player.getUniqueId().toString() + ".yml"))) { PlayerData playerData = new PlayerData(player); From b02e59467656913a0353f3d66ac72aae4c081537 Mon Sep 17 00:00:00 2001 From: TeamHR <92500115+TeamHRLive@users.noreply.github.com> Date: Mon, 4 Mar 2024 18:00:53 +0530 Subject: [PATCH 24/41] fix: Multiple GUI menus that displays player heads (#32) --- .../craftaro/skyblock/gui/coop/GuiCoop.java | 22 +++---- .../craftaro/skyblock/gui/wip/GuiBans.java | 9 +-- .../com/craftaro/skyblock/menus/Bans.java | 32 ++++++---- .../craftaro/skyblock/menus/Information.java | 60 ++++++++++++------- .../craftaro/skyblock/menus/Levelling.java | 22 +++++-- .../com/craftaro/skyblock/menus/Members.java | 30 ++++++---- .../craftaro/skyblock/menus/Ownership.java | 9 +-- .../com/craftaro/skyblock/menus/Visit.java | 36 +++++++---- .../com/craftaro/skyblock/menus/Visitors.java | 31 ++++++---- .../skyblock/menus/admin/Creator.java | 22 +++++-- .../skyblock/menus/admin/Generator.java | 22 +++++-- .../skyblock/menus/admin/Levelling.java | 22 +++++-- 12 files changed, 209 insertions(+), 108 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/gui/coop/GuiCoop.java b/src/main/java/com/craftaro/skyblock/gui/coop/GuiCoop.java index eb820da0..b1d4c32d 100644 --- a/src/main/java/com/craftaro/skyblock/gui/coop/GuiCoop.java +++ b/src/main/java/com/craftaro/skyblock/gui/coop/GuiCoop.java @@ -3,6 +3,7 @@ package com.craftaro.skyblock.gui.coop; import com.craftaro.core.gui.AnvilGui; import com.craftaro.core.gui.Gui; import com.craftaro.core.gui.GuiUtils; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -139,7 +140,7 @@ public class GuiCoop extends Gui { String targetPlayerName; String[] targetPlayerTexture; - Player targetPlayer = Bukkit.getServer().getPlayer(uuid); + org.bukkit.OfflinePlayer targetPlayer = Bukkit.getServer().getOfflinePlayer(uuid); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(uuid); @@ -148,26 +149,25 @@ public class GuiCoop extends Gui { } else { targetPlayerName = targetPlayer.getName(); - if (playerDataManager.hasPlayerData(targetPlayer)) { - targetPlayerTexture = playerDataManager.getPlayerData(targetPlayer).getTexture(); + if (playerDataManager.hasPlayerData(targetPlayer.getUniqueId())) { + targetPlayerTexture = playerDataManager.getPlayerData(targetPlayer.getUniqueId()).getTexture(); } else { targetPlayerTexture = new String[]{null, null}; } } - - ItemStack is = ItemUtils.getCustomHead(targetPlayerTexture[0], targetPlayerTexture[1]); - ItemMeta im = is.getItemMeta(); - if (im != null) { - im.setDisplayName(TextUtils.formatText(this.languageLoad.getString("Menu.Coop.Item.Coop.Displayname") + ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); + ItemMeta pheadmeta = phead.getItemMeta(); + if (pheadmeta != null) { + pheadmeta.setDisplayName(TextUtils.formatText(this.languageLoad.getString("Menu.Coop.Item.Coop.Displayname") .replace("%player", targetPlayerName == null ? "" : targetPlayerName) .replace("%type", type == IslandCoop.TEMP ? this.languageLoad.getString("Menu.Coop.Item.Word.Temp") : this.languageLoad.getString("Menu.Coop.Item.Word.Normal")))); - im.setLore(TextUtils.formatText(this.languageLoad.getStringList("Menu.Coop.Item.Coop.Lore"))); - is.setItemMeta(im); + pheadmeta.setLore(TextUtils.formatText(this.languageLoad.getStringList("Menu.Coop.Item.Coop.Lore"))); + phead.setItemMeta(pheadmeta); } - setButton(i, is, e -> { + setButton(i, phead, e -> { Bukkit.getServer().dispatchCommand(e.player, "island coop " + targetPlayerName); paint(); }); diff --git a/src/main/java/com/craftaro/skyblock/gui/wip/GuiBans.java b/src/main/java/com/craftaro/skyblock/gui/wip/GuiBans.java index 982c35f0..432b8dd8 100644 --- a/src/main/java/com/craftaro/skyblock/gui/wip/GuiBans.java +++ b/src/main/java/com/craftaro/skyblock/gui/wip/GuiBans.java @@ -2,6 +2,7 @@ package com.craftaro.skyblock.gui.wip; import com.craftaro.core.gui.Gui; import com.craftaro.core.gui.GuiUtils; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -102,7 +103,7 @@ public class GuiBans extends Gui { String targetPlayerName; String[] targetPlayerTexture; - Player targetPlayer = Bukkit.getServer().getPlayer(uuid); + org.bukkit.OfflinePlayer targetPlayer = Bukkit.getServer().getOfflinePlayer(uuid); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(uuid); @@ -111,14 +112,14 @@ public class GuiBans extends Gui { } else { targetPlayerName = targetPlayer.getName(); - if (this.playerDataManager.hasPlayerData(targetPlayer)) { - targetPlayerTexture = this.playerDataManager.getPlayerData(targetPlayer).getTexture(); + if (this.playerDataManager.hasPlayerData(targetPlayer.getUniqueId())) { + targetPlayerTexture = this.playerDataManager.getPlayerData(targetPlayer.getUniqueId()).getTexture(); } else { targetPlayerTexture = new String[]{null, null}; } } - ItemStack is = ItemUtils.getCustomHead(targetPlayerTexture[0], targetPlayerTexture[1]); + ItemStack is = SkullUtils.getSkull(targetPlayer.getUniqueId()); ItemMeta im = is.getItemMeta(); if (im != null) { im.setDisplayName(this.languageLoad.getString("Menu.Bans.Item.Ban.Displayname") diff --git a/src/main/java/com/craftaro/skyblock/menus/Bans.java b/src/main/java/com/craftaro/skyblock/menus/Bans.java index d077ef24..97c67daf 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Bans.java +++ b/src/main/java/com/craftaro/skyblock/menus/Bans.java @@ -1,6 +1,7 @@ package com.craftaro.skyblock.menus; import com.craftaro.core.gui.AnvilGui; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -22,6 +23,7 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.SkullMeta; import java.util.Set; import java.util.UUID; @@ -163,16 +165,24 @@ public class Bans { int playerMenuPage = playerData.getPage(MenuType.BANS), nextEndIndex = islandBans.size() - playerMenuPage * 36; if (playerMenuPage != 1) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k=", - "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ=="), + ItemStack Lhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta LskullMeta = (SkullMeta) Lhead.getItemMeta(); + SkullUtils.setSkullBase64(LskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ==", + "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k="); + Lhead.setItemMeta(LskullMeta); + nInv.addItem(nInv.createItem(Lhead, configLoad.getString("Menu.Bans.Item.Previous.Displayname"), null, null, null, null), 1); } if (!(nextEndIndex == 0 || nextEndIndex < 0)) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8=", - "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ=="), + ItemStack Rhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta RskullMeta = (SkullMeta) Rhead.getItemMeta(); + SkullUtils.setSkullBase64(RskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ==", + "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8="); + Rhead.setItemMeta(RskullMeta); + nInv.addItem(nInv.createItem(Rhead, configLoad.getString("Menu.Bans.Item.Next.Displayname"), null, null, null, null), 7); } @@ -193,7 +203,7 @@ public class Bans { String targetPlayerName; String[] targetPlayerTexture; - Player targetPlayer = Bukkit.getServer().getPlayer(targetPlayerUUID); + org.bukkit.OfflinePlayer targetPlayer = Bukkit.getServer().getOfflinePlayer(targetPlayerUUID); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(targetPlayerUUID); @@ -202,15 +212,15 @@ public class Bans { } else { targetPlayerName = targetPlayer.getName(); - if (playerDataManager.hasPlayerData(targetPlayer)) { - targetPlayerTexture = playerDataManager.getPlayerData(targetPlayer).getTexture(); + if (playerDataManager.hasPlayerData(targetPlayer.getUniqueId())) { + targetPlayerTexture = playerDataManager.getPlayerData(targetPlayer.getUniqueId()).getTexture(); } else { targetPlayerTexture = new String[]{null, null}; } } - + ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); nInv.addItem( - nInv.createItem(ItemUtils.getCustomHead(targetPlayerTexture[0], targetPlayerTexture[1]), + nInv.createItem(phead, plugin.formatText( configLoad.getString("Menu.Bans.Item.Ban.Displayname") .replace("%player", targetPlayerName == null ? "" : targetPlayerName)), diff --git a/src/main/java/com/craftaro/skyblock/menus/Information.java b/src/main/java/com/craftaro/skyblock/menus/Information.java index b853760c..a2dc1107 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Information.java +++ b/src/main/java/com/craftaro/skyblock/menus/Information.java @@ -1,5 +1,6 @@ package com.craftaro.skyblock.menus; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -23,6 +24,7 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.SkullMeta; import java.util.ArrayList; import java.util.List; @@ -97,7 +99,7 @@ public class Information { Visit visit = island.getVisit(); String islandOwnerName = ""; - Player targetPlayer = Bukkit.getServer().getPlayer(viewer.getOwner()); + org.bukkit.OfflinePlayer targetPlayer = Bukkit.getServer().getOfflinePlayer(viewer.getOwner()); if (targetPlayer == null) { islandOwnerName = new OfflinePlayer(viewer.getOwner()).getName(); @@ -341,17 +343,25 @@ public class Information { nextEndIndex = displayedMembers.size() - playerMenuPage * 36; if (playerMenuPage != 1) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k=", - "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ=="), + ItemStack Lhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta LskullMeta = (SkullMeta) Lhead.getItemMeta(); + SkullUtils.setSkullBase64(LskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ==", + "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k="); + Lhead.setItemMeta(LskullMeta); + nInv.addItem(nInv.createItem(Lhead, configLoad.getString("Menu.Information.Members.Item.Previous.Displayname"), null, null, null, null), 1); } if (!(nextEndIndex == 0 || nextEndIndex < 0)) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8=", - "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ=="), + ItemStack Rhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta RskullMeta = (SkullMeta) Rhead.getItemMeta(); + SkullUtils.setSkullBase64(RskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ==", + "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8="); + Rhead.setItemMeta(RskullMeta); + nInv.addItem(nInv.createItem(Rhead, configLoad.getString("Menu.Information.Members.Item.Next.Displayname"), null, null, null, null), 7); } @@ -369,7 +379,7 @@ public class Information { String[] playerTexture; String playerName, islandRole; - targetPlayer = Bukkit.getServer().getPlayer(playerUUID); + targetPlayer = Bukkit.getServer().getOfflinePlayer(playerUUID); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(playerUUID); @@ -377,7 +387,7 @@ public class Information { playerTexture = offlinePlayer.getTexture(); } else { playerName = targetPlayer.getName(); - playerData = plugin.getPlayerDataManager().getPlayerData(targetPlayer); + playerData = plugin.getPlayerDataManager().getPlayerData(targetPlayer.getUniqueId()); playerTexture = playerData.getTexture(); } @@ -388,9 +398,9 @@ public class Information { } else { islandRole = configLoad.getString("Menu.Information.Members.Item.Member.Word.Owner"); } - + ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); nInv.addItem( - nInv.createItem(ItemUtils.getCustomHead(playerTexture[0], playerTexture[1]), + nInv.createItem(phead, configLoad.getString("Menu.Information.Members.Item.Member.Displayname") .replace("%player", playerName), configLoad.getStringList("Menu.Information.Members.Item.Member.Lore"), @@ -484,17 +494,25 @@ public class Information { nextEndIndex = displayedVisitors.size() - playerMenuPage * 36; if (playerMenuPage != 1) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k=", - "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ=="), + ItemStack Lhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta LskullMeta = (SkullMeta) Lhead.getItemMeta(); + SkullUtils.setSkullBase64(LskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ==", + "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k="); + Lhead.setItemMeta(LskullMeta); + nInv.addItem(nInv.createItem(Lhead, configLoad.getString("Menu.Information.Visitors.Item.Previous.Displayname"), null, null, null, null), 1); } if (!(nextEndIndex == 0 || nextEndIndex < 0)) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8=", - "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ=="), + ItemStack Rhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta RskullMeta = (SkullMeta) Rhead.getItemMeta(); + SkullUtils.setSkullBase64(RskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ==", + "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8="); + Rhead.setItemMeta(RskullMeta); + nInv.addItem(nInv.createItem(Rhead, configLoad.getString("Menu.Information.Visitors.Item.Next.Displayname"), null, null, null, null), 7); } @@ -512,7 +530,7 @@ public class Information { String[] playerTexture; String playerName; - targetPlayer = Bukkit.getServer().getPlayer(playerUUID); + //org.bukkit.OfflinePlayer targetPlayer = Bukkit.getServer().getOfflinePlayer(playerUUID); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(playerUUID); @@ -520,12 +538,12 @@ public class Information { playerTexture = offlinePlayer.getTexture(); } else { playerName = targetPlayer.getName(); - playerData = plugin.getPlayerDataManager().getPlayerData(targetPlayer); + playerData = plugin.getPlayerDataManager().getPlayerData(targetPlayer.getUniqueId()); playerTexture = playerData.getTexture(); } - + ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); nInv.addItem( - nInv.createItem(ItemUtils.getCustomHead(playerTexture[0], playerTexture[1]), + nInv.createItem(phead, configLoad.getString("Menu.Information.Visitors.Item.Visitor.Displayname") .replace("%player", playerName), null, null, null, null), diff --git a/src/main/java/com/craftaro/skyblock/menus/Levelling.java b/src/main/java/com/craftaro/skyblock/menus/Levelling.java index d9a3a020..4bca397f 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Levelling.java +++ b/src/main/java/com/craftaro/skyblock/menus/Levelling.java @@ -2,6 +2,7 @@ package com.craftaro.skyblock.menus; import com.craftaro.core.compatibility.CompatibleMaterial; import com.craftaro.core.compatibility.ServerVersion; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -31,6 +32,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.SkullMeta; import java.util.LinkedHashMap; import java.util.List; @@ -223,16 +225,24 @@ public class Levelling { nInv.addItem(nInv.createItem(XMaterial.BLACK_STAINED_GLASS_PANE.parseItem(), configLoad.getString("Menu.Levelling.Item.Barrier.Displayname"), null, null, null, null), 9, 10, 11, 12, 13, 14, 15, 16, 17); if (playerMenuPage != 1) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k=", - "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ=="), + ItemStack Lhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta LskullMeta = (SkullMeta) Lhead.getItemMeta(); + SkullUtils.setSkullBase64(LskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ==", + "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k="); + Lhead.setItemMeta(LskullMeta); + nInv.addItem(nInv.createItem(Lhead, configLoad.getString("Menu.Levelling.Item.Previous.Displayname"), null, null, null, null), 1); } if (!(nextEndIndex == 0 || nextEndIndex < 0)) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8=", - "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ=="), + ItemStack Rhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta RskullMeta = (SkullMeta) Rhead.getItemMeta(); + SkullUtils.setSkullBase64(RskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ==", + "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8="); + Rhead.setItemMeta(RskullMeta); + nInv.addItem(nInv.createItem(Rhead, configLoad.getString("Menu.Levelling.Item.Next.Displayname"), null, null, null, null), 7); } diff --git a/src/main/java/com/craftaro/skyblock/menus/Members.java b/src/main/java/com/craftaro/skyblock/menus/Members.java index f7fcb49b..c29e0be2 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Members.java +++ b/src/main/java/com/craftaro/skyblock/menus/Members.java @@ -1,5 +1,6 @@ package com.craftaro.skyblock.menus; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -25,6 +26,7 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.SkullMeta; import java.io.File; import java.text.ParseException; @@ -351,16 +353,24 @@ public class Members { 9, 10, 11, 12, 13, 14, 15, 16, 17); if (playerMenuPage != 1) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k=", - "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ=="), + ItemStack Lhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta LskullMeta = (SkullMeta) Lhead.getItemMeta(); + SkullUtils.setSkullBase64(LskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ==", + "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k="); + Lhead.setItemMeta(LskullMeta); + nInv.addItem(nInv.createItem(Lhead, configLoad.getString("Menu.Members.Item.Previous.Displayname"), null, null, null, null), 1); } if (!(nextEndIndex == 0 || nextEndIndex < 0)) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8=", - "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ=="), + ItemStack Rhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta RskullMeta = (SkullMeta) Rhead.getItemMeta(); + SkullUtils.setSkullBase64(RskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ==", + "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8="); + Rhead.setItemMeta(RskullMeta); + nInv.addItem(nInv.createItem(Rhead, configLoad.getString("Menu.Members.Item.Next.Displayname"), null, null, null, null), 7); } @@ -388,7 +398,7 @@ public class Members { int islandPlaytime; - Player targetPlayer = Bukkit.getServer().getPlayer(playerUUID); + org.bukkit.OfflinePlayer targetPlayer = Bukkit.getServer().getOfflinePlayer(playerUUID); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(playerUUID); @@ -409,7 +419,7 @@ public class Members { } else { playerName = targetPlayer.getName(); - playerData = plugin.getPlayerDataManager().getPlayerData(targetPlayer); + playerData = plugin.getPlayerDataManager().getPlayerData(targetPlayer.getUniqueId()); playerTexture = playerData.getTexture(); islandPlaytime = playerData.getPlaytime(); playTimeDurationTime = NumberUtil.getDuration(islandPlaytime); @@ -561,9 +571,9 @@ public class Members { } } } - + ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); nInv.addItem( - nInv.createItem(ItemUtils.getCustomHead(playerTexture[0], playerTexture[1]), + nInv.createItem(phead, configLoad.getString("Menu.Members.Item.Member.Displayname").replace("%player", playerName), itemLore, diff --git a/src/main/java/com/craftaro/skyblock/menus/Ownership.java b/src/main/java/com/craftaro/skyblock/menus/Ownership.java index 2d37dd1e..9dc7464f 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Ownership.java +++ b/src/main/java/com/craftaro/skyblock/menus/Ownership.java @@ -1,6 +1,7 @@ package com.craftaro.skyblock.menus; import com.craftaro.core.gui.AnvilGui; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -214,7 +215,7 @@ public class Ownership { String originalOwnerName, ownershipPassword = island.getPassword(); String[] playerTexture; - Player targetPlayer = Bukkit.getServer().getPlayer(island.getOriginalOwnerUUID()); + org.bukkit.OfflinePlayer targetPlayer = Bukkit.getServer().getPlayer(island.getOriginalOwnerUUID()); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(originalOwnerUUID); @@ -222,12 +223,12 @@ public class Ownership { playerTexture = offlinePlayer.getTexture(); } else { originalOwnerName = targetPlayer.getName(); - playerTexture = playerDataManager.getPlayerData(targetPlayer).getTexture(); + playerTexture = playerDataManager.getPlayerData(targetPlayer.getUniqueId()).getTexture(); } - + ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); nInv.addItem(nInv.createItem(XMaterial.OAK_FENCE_GATE.parseItem(), configLoad.getString("Menu.Ownership.Item.Exit.Displayname"), null, null, null, null), 0); - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead(playerTexture[0], playerTexture[1]), + nInv.addItem(nInv.createItem(phead, configLoad.getString("Menu.Ownership.Item.Original.Displayname"), configLoad.getStringList("Menu.Ownership.Item.Original.Lore"), new Placeholder[]{new Placeholder("%player", originalOwnerName)}, null, null), 1); diff --git a/src/main/java/com/craftaro/skyblock/menus/Visit.java b/src/main/java/com/craftaro/skyblock/menus/Visit.java index 85eba13e..dcbf0953 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Visit.java +++ b/src/main/java/com/craftaro/skyblock/menus/Visit.java @@ -1,5 +1,6 @@ package com.craftaro.skyblock.menus; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -27,6 +28,7 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.SkullMeta; import java.util.ArrayList; import java.util.List; @@ -353,16 +355,24 @@ public class Visit { 9, 10, 11, 12, 13, 14, 15, 16, 17); if (playerMenuPage != 1) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k=", - "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ=="), + ItemStack Lhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta LskullMeta = (SkullMeta) Lhead.getItemMeta(); + SkullUtils.setSkullBase64(LskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ==", + "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k="); + Lhead.setItemMeta(LskullMeta); + nInv.addItem(nInv.createItem(Lhead, configLoad.getString("Menu.Visit.Item.Previous.Displayname"), null, null, null, null), 1); } if (!(nextEndIndex == 0 || nextEndIndex < 0)) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8=", - "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ=="), + ItemStack Rhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta RskullMeta = (SkullMeta) Rhead.getItemMeta(); + SkullUtils.setSkullBase64(RskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ==", + "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8="); + Rhead.setItemMeta(RskullMeta); + nInv.addItem(nInv.createItem(Rhead, configLoad.getString("Menu.Visit.Item.Next.Displayname"), null, null, null, null), 7); } @@ -382,7 +392,7 @@ public class Visit { inventorySlot++; com.craftaro.skyblock.visit.Visit visit = visitIslands.get(index); - Player targetPlayer = Bukkit.getServer().getPlayer(visit.getOwnerUUID()); + org.bukkit.OfflinePlayer targetPlayer = Bukkit.getServer().getOfflinePlayer(visit.getOwnerUUID()); String targetPlayerName; String[] targetPlayerTexture; @@ -394,8 +404,8 @@ public class Visit { } else { targetPlayerName = targetPlayer.getName(); - if (playerDataManager.hasPlayerData(targetPlayer)) { - targetPlayerTexture = playerDataManager.getPlayerData(targetPlayer).getTexture(); + if (playerDataManager.hasPlayerData(targetPlayer.getUniqueId())) { + targetPlayerTexture = playerDataManager.getPlayerData(targetPlayer.getUniqueId()).getTexture(); } else { targetPlayerTexture = new String[]{null, null}; } @@ -466,8 +476,8 @@ public class Visit { "Menu.Visit.Item.Island.Vote.Enabled.Signature.Disabled.Visitor.Lore")); } } - - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead(targetPlayerTexture[0], targetPlayerTexture[1]), + ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); + nInv.addItem(nInv.createItem(phead, configLoad.getString("Menu.Visit.Item.Island.Displayname").replace("%player", targetPlayerName), itemLore, @@ -502,8 +512,8 @@ public class Visit { itemLore.addAll(configLoad .getStringList("Menu.Visit.Item.Island.Vote.Disabled.Signature.Disabled.Lore")); } - - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead(targetPlayerTexture[0], targetPlayerTexture[1]), + ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); + nInv.addItem(nInv.createItem(phead, configLoad.getString("Menu.Visit.Item.Island.Displayname").replace("%player", targetPlayerName), itemLore, diff --git a/src/main/java/com/craftaro/skyblock/menus/Visitors.java b/src/main/java/com/craftaro/skyblock/menus/Visitors.java index f32c8495..ff5a8d71 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Visitors.java +++ b/src/main/java/com/craftaro/skyblock/menus/Visitors.java @@ -1,5 +1,6 @@ package com.craftaro.skyblock.menus; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -17,10 +18,12 @@ import com.craftaro.skyblock.utils.item.nInventoryUtil; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; +import org.bukkit.OfflinePlayer; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.SkullMeta; import java.util.ArrayList; import java.util.List; @@ -186,16 +189,24 @@ public class Visitors { int playerMenuPage = playerData.getPage(MenuType.VISITORS), nextEndIndex = sortedIslandVisitors.size() - playerMenuPage * 36; if (playerMenuPage != 1) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k=", - "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ=="), + ItemStack Lhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta LskullMeta = (SkullMeta) Lhead.getItemMeta(); + SkullUtils.setSkullBase64(LskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ==", + "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k="); + Lhead.setItemMeta(LskullMeta); + nInv.addItem(nInv.createItem(Lhead, configLoad.getString("Menu.Visitors.Item.Previous.Displayname"), null, null, null, null), 1); } if (!(nextEndIndex == 0 || nextEndIndex < 0)) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8=", - "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ=="), + ItemStack Rhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta RskullMeta = (SkullMeta) Rhead.getItemMeta(); + SkullUtils.setSkullBase64(RskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ==", + "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8="); + Rhead.setItemMeta(RskullMeta); + nInv.addItem(nInv.createItem(Rhead, configLoad.getString("Menu.Visitors.Item.Next.Displayname"), null, null, null, null), 7); } @@ -218,8 +229,8 @@ public class Visitors { if (islandVisitors.size() > index) { inventorySlot++; - Player targetPlayer = Bukkit.getServer().getPlayer((UUID) islandVisitors.toArray()[index]); - PlayerData targetPlayerData = playerDataManager.getPlayerData(targetPlayer); + OfflinePlayer targetPlayer = Bukkit.getServer().getPlayer((UUID) islandVisitors.toArray()[index]); + PlayerData targetPlayerData = playerDataManager.getPlayerData(targetPlayer.getUniqueId()); String[] targetPlayerTexture = targetPlayerData.getTexture(); String islandVisitTimeFormatted; @@ -271,9 +282,9 @@ public class Visitors { "Menu.Visitors.Item.Visitor.Kick.NoPermission.Ban.NoPermission.Lore")); } } - + ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); nInv.addItem( - nInv.createItem(ItemUtils.getCustomHead(targetPlayerTexture[0], targetPlayerTexture[1]), + nInv.createItem(phead, ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Visitors.Item.Visitor.Displayname") .replace("%player", targetPlayer.getName())), diff --git a/src/main/java/com/craftaro/skyblock/menus/admin/Creator.java b/src/main/java/com/craftaro/skyblock/menus/admin/Creator.java index 3fd820d9..ca46baf2 100644 --- a/src/main/java/com/craftaro/skyblock/menus/admin/Creator.java +++ b/src/main/java/com/craftaro/skyblock/menus/admin/Creator.java @@ -3,6 +3,7 @@ package com.craftaro.skyblock.menus.admin; import com.craftaro.core.compatibility.CompatibleMaterial; import com.craftaro.core.compatibility.ServerVersion; import com.craftaro.core.gui.AnvilGui; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -30,6 +31,7 @@ import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.SkullMeta; import java.io.File; import java.io.IOException; @@ -78,17 +80,25 @@ public class Creator implements Listener { int playerMenuPage = playerData.getPage(MenuType.ADMIN_CREATOR), nextEndIndex = structures.size() - playerMenuPage * 36; if (playerMenuPage != 1) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k=", - "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ=="), + ItemStack Lhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta LskullMeta = (SkullMeta) Lhead.getItemMeta(); + SkullUtils.setSkullBase64(LskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ==", + "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k="); + Lhead.setItemMeta(LskullMeta); + nInv.addItem(nInv.createItem(Lhead, configLoad.getString("Menu.Admin.Creator.Browse.Item.Previous.Displayname"), null, null, null, null), 1); } if (!(nextEndIndex == 0 || nextEndIndex < 0)) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8=", - "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ=="), + ItemStack Rhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta RskullMeta = (SkullMeta) Rhead.getItemMeta(); + SkullUtils.setSkullBase64(RskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ==", + "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8="); + Rhead.setItemMeta(RskullMeta); + nInv.addItem(nInv.createItem(Rhead, configLoad.getString("Menu.Admin.Creator.Browse.Item.Next.Displayname"), null, null, null, null), 7); } diff --git a/src/main/java/com/craftaro/skyblock/menus/admin/Generator.java b/src/main/java/com/craftaro/skyblock/menus/admin/Generator.java index e4b4fcc1..1420598c 100644 --- a/src/main/java/com/craftaro/skyblock/menus/admin/Generator.java +++ b/src/main/java/com/craftaro/skyblock/menus/admin/Generator.java @@ -3,6 +3,7 @@ package com.craftaro.skyblock.menus.admin; import com.craftaro.core.compatibility.CompatibleMaterial; import com.craftaro.core.compatibility.ServerVersion; import com.craftaro.core.gui.AnvilGui; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -30,6 +31,7 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.SkullMeta; import java.io.File; import java.io.IOException; @@ -78,17 +80,25 @@ public class Generator implements Listener { int playerMenuPage = playerData.getPage(MenuType.ADMIN_GENERATOR), nextEndIndex = generators.size() - playerMenuPage * 36; if (playerMenuPage != 1) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k=", - "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ=="), + ItemStack Lhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta LskullMeta = (SkullMeta) Lhead.getItemMeta(); + SkullUtils.setSkullBase64(LskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ==", + "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k="); + Lhead.setItemMeta(LskullMeta); + nInv.addItem(nInv.createItem(Lhead, configLoad.getString("Menu.Admin.Generator.Browse.Item.Previous.Displayname"), null, null, null, null), 1); } if (!(nextEndIndex == 0 || nextEndIndex < 0)) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8=", - "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ=="), + ItemStack Rhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta RskullMeta = (SkullMeta) Rhead.getItemMeta(); + SkullUtils.setSkullBase64(RskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ==", + "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8="); + Rhead.setItemMeta(RskullMeta); + nInv.addItem(nInv.createItem(Rhead, configLoad.getString("Menu.Admin.Generator.Browse.Item.Next.Displayname"), null, null, null, null), 7); } diff --git a/src/main/java/com/craftaro/skyblock/menus/admin/Levelling.java b/src/main/java/com/craftaro/skyblock/menus/admin/Levelling.java index 4e5f9192..7cd344cf 100644 --- a/src/main/java/com/craftaro/skyblock/menus/admin/Levelling.java +++ b/src/main/java/com/craftaro/skyblock/menus/admin/Levelling.java @@ -3,6 +3,7 @@ package com.craftaro.skyblock.menus.admin; import com.craftaro.core.compatibility.CompatibleMaterial; import com.craftaro.core.compatibility.ServerVersion; import com.craftaro.core.gui.AnvilGui; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.ItemUtils; @@ -30,6 +31,7 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.SkullMeta; import java.io.File; import java.io.IOException; @@ -103,16 +105,24 @@ public class Levelling implements Listener { int playerMenuPage = playerData.getPage(MenuType.ADMIN_LEVELLING), nextEndIndex = levellingMaterials.size() - playerMenuPage * 36; if (playerMenuPage != 1) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k=", - "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ=="), + ItemStack Lhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta LskullMeta = (SkullMeta) Lhead.getItemMeta(); + SkullUtils.setSkullBase64(LskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTU3NTE5MTYwNjksInByb2ZpbGVJZCI6ImE2OGYwYjY0OGQxNDQwMDBhOTVmNGI5YmExNGY4ZGY5IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dMZWZ0Iiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zZWJmOTA3NDk0YTkzNWU5NTViZmNhZGFiODFiZWFmYjkwZmI5YmU0OWM3MDI2YmE5N2Q3OThkNWYxYTIzIn19fQ==", + "ToR1w9ZV7zpzCiLBhoaJH3uixs5mAlMhNz42oaRRvrG4HRua5hC6oyyOPfn2HKdSseYA9b1be14fjNRQbSJRvXF3mlvt5/zct4sm+cPVmX8K5kbM2vfwHJgCnfjtPkzT8sqqg6YFdT35mAZGqb9/xY/wDSNSu/S3k2WgmHrJKirszaBZrZfnVnqITUOgM9TmixhcJn2obeqICv6tl7/Wyk/1W62wXlXGm9+WjS+8rRNB+vYxqKR3XmH2lhAiyVGbADsjjGtBVUTWjq+aPw670SjXkoii0YE8sqzUlMMGEkXdXl9fvGtnWKk3APSseuTsjedr7yq+AkXFVDqqkqcUuXwmZl2EjC2WRRbhmYdbtY5nEfqh5+MiBrGdR/JqdEUL4yRutyRTw8mSUAI6X2oSVge7EdM/8f4HwLf33EO4pTocTqAkNbpt6Z54asLe5Y12jSXbvd2dFsgeJbrslK7e4uy/TK8CXf0BP3KLU20QELYrjz9I70gtj9lJ9xwjdx4/xJtxDtrxfC4Afmpu+GNYA/mifpyP3GDeBB5CqN7btIvEWyVvRNH7ppAqZIPqYJ7dSDd2RFuhAId5Yq98GUTBn+eRzeigBvSi1bFkkEgldfghOoK5WhsQtQbXuBBXITMME3NaWCN6zG7DxspS6ew/rZ8E809Xe0ArllquIZ0sP+k="); + Lhead.setItemMeta(LskullMeta); + nInv.addItem(nInv.createItem(Lhead, configLoad.getString("Menu.Admin.Levelling.Item.Previous.Displayname"), null, null, null, null), 1); } if (!(nextEndIndex == 0 || nextEndIndex < 0)) { - nInv.addItem(nInv.createItem(ItemUtils.getCustomHead( - "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8=", - "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ=="), + ItemStack Rhead = XMaterial.PLAYER_HEAD.parseItem(); + SkullMeta RskullMeta = (SkullMeta) Rhead.getItemMeta(); + SkullUtils.setSkullBase64(RskullMeta, + "eyJ0aW1lc3RhbXAiOjE0OTM4NjgxMDA2NzMsInByb2ZpbGVJZCI6IjUwYzg1MTBiNWVhMDRkNjBiZTlhN2Q1NDJkNmNkMTU2IiwicHJvZmlsZU5hbWUiOiJNSEZfQXJyb3dSaWdodCIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWI2ZjFhMjViNmJjMTk5OTQ2NDcyYWVkYjM3MDUyMjU4NGZmNmY0ZTgzMjIxZTU5NDZiZDJlNDFiNWNhMTNiIn19fQ==", + "wZPrsmxckJn4/ybw/iXoMWgAe+1titw3hjhmf7bfg9vtOl0f/J6YLNMOI0OTvqeRKzSQVCxqNOij6k2iM32ZRInCQyblDIFmFadQxryEJDJJPVs7rXR6LRXlN8ON2VDGtboRTL7LwMGpzsrdPNt0oYDJLpR0huEeZKc1+g4W13Y4YM5FUgEs8HvMcg4aaGokSbvrYRRcEh3LR1lVmgxtbiUIr2gZkR3jnwdmZaIw/Ujw28+Et2pDMVCf96E5vC0aNY0KHTdMYheT6hwgw0VAZS2VnJg+Gz4JCl4eQmN2fs4dUBELIW2Rdnp4U1Eb+ZL8DvTV7ofBeZupknqPOyoKIjpInDml9BB2/EkD3zxFtW6AWocRphn03Z203navBkR6ztCMz0BgbmQU/m8VL/s8o4cxOn+2ppjrlj0p8AQxEsBdHozrBi8kNOGf1j97SDHxnvVAF3X8XDso+MthRx5pbEqpxmLyKKgFh25pJE7UaMSnzH2lc7aAZiax67MFw55pDtgfpl+Nlum4r7CK2w5Xob2QTCovVhu78/6SV7qM2Lhlwx/Sjqcl8rn5UIoyM49QE5Iyf1tk+xHXkIvY0m7q358oXsfca4eKmxMe6DFRjUDo1VuWxdg9iVjn22flqz1LD1FhGlPoqv0k4jX5Q733LwtPPI6VOTK+QzqrmiuR6e8="); + Rhead.setItemMeta(RskullMeta); + nInv.addItem(nInv.createItem(Rhead, configLoad.getString("Menu.Admin.Levelling.Item.Next.Displayname"), null, null, null, null), 7); } From 9ba7647f53f300dfe22a62b9b5b23f7f6fa5a793 Mon Sep 17 00:00:00 2001 From: Brianna OKeefe Date: Thu, 14 Mar 2024 18:23:15 -0500 Subject: [PATCH 25/41] Fixed some nesting issues. --- .../scoreboard/ScoreboardManager.java | 109 +++++++++--------- .../craftaro/skyblock/tasks/HologramTask.java | 3 +- .../skyblock/tasks/MobNetherWaterTask.java | 83 ++++++------- 3 files changed, 89 insertions(+), 106 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/scoreboard/ScoreboardManager.java b/src/main/java/com/craftaro/skyblock/scoreboard/ScoreboardManager.java index 646e7a5c..ffd2f3a3 100644 --- a/src/main/java/com/craftaro/skyblock/scoreboard/ScoreboardManager.java +++ b/src/main/java/com/craftaro/skyblock/scoreboard/ScoreboardManager.java @@ -65,78 +65,79 @@ public class ScoreboardManager extends Manager { } public void updatePlayerScoreboardType(Player player) { - if (this.enabled) { - PlayerDataManager playerDataManager = this.plugin.getPlayerDataManager(); - IslandManager islandManager = this.plugin.getIslandManager(); + if (!this.enabled) + return; - PlayerData playerData = playerDataManager.getPlayerData(player); - Island island = islandManager.getIsland(player); + PlayerDataManager playerDataManager = this.plugin.getPlayerDataManager(); + IslandManager islandManager = this.plugin.getIslandManager(); - if (playerData.isScoreboard()) { - ScoreboardType type; - if (island != null) { - Visit islandVisit = island.getVisit(); - boolean hasVisitors = (islandVisit != null && - islandVisit.getVisitors() != null && - islandVisit.getVisitors().size() > 1); - boolean hasMembers = (islandVisit != null && - islandVisit.getMembers() > 1); + PlayerData playerData = playerDataManager.getPlayerData(player); + Island island = islandManager.getIsland(player); - if (hasMembers) { - if (hasVisitors) { - type = ScoreboardType.ISLAND_TEAM_VISITORS; - } else { - type = ScoreboardType.ISLAND_TEAM_EMPTY; - } - } else { - if (hasVisitors) { - type = ScoreboardType.ISLAND_SOLO_VISITORS; - } else { - type = ScoreboardType.ISLAND_SOLO_EMPTY; - } - } + if (!playerData.isScoreboard()) + return; + + ScoreboardType type; + if (island != null) { + Visit islandVisit = island.getVisit(); + boolean hasVisitors = (islandVisit != null && + islandVisit.getVisitors() != null && + islandVisit.getVisitors().size() > 1); + boolean hasMembers = (islandVisit != null && + islandVisit.getMembers() > 1); + + if (hasMembers) { + if (hasVisitors) { + type = ScoreboardType.ISLAND_TEAM_VISITORS; } else { - type = ScoreboardType.NO_ISLAND; + type = ScoreboardType.ISLAND_TEAM_EMPTY; } - synchronized (player) { - setPlayerScoreboard(player, type); + } else { + if (hasVisitors) { + type = ScoreboardType.ISLAND_SOLO_VISITORS; + } else { + type = ScoreboardType.ISLAND_SOLO_EMPTY; } } + } else { + type = ScoreboardType.NO_ISLAND; + } + synchronized (player) { + setPlayerScoreboard(player, type); } } public void setPlayerScoreboard(Player player, ScoreboardType type) { - if (this.enabled) { - for (Driver driver : this.drivers) { - driver.unregisterHolder(player); - if (driver.getBoardType() == type) { - driver.registerHolder(new Holder(this.plugin, driver, player)); - } - } + if (!enabled) + return; + + for (Driver driver : drivers) { + driver.unregisterHolder(player); + if (driver.getBoardType() == type) + driver.registerHolder(new Holder(plugin, driver, player)); } } public void unregisterPlayer(Player player) { - if (this.enabled) { - for (Driver driver : this.drivers) { - driver.unregisterHolder(player); - } - player.setScoreboard(this.emptyScoreboard); - } + if (!enabled) + return; + + for (Driver driver : drivers) + driver.unregisterHolder(player); + player.setScoreboard(emptyScoreboard); } public void addDisabledPlayer(Player player) { if (this.enabled) { this.disabledPlayers.add(player); - Bukkit.getScheduler().runTask(this.plugin, () -> this.unregisterPlayer(player)); + Bukkit.getScheduler().runTask(plugin, () -> unregisterPlayer(player)); } } public void removeDisabledPlayer(Player player) { - if (this.enabled) { + if (this.enabled) this.disabledPlayers.remove(player); - } } public boolean isPlayerDisabled(Player player) { @@ -144,25 +145,25 @@ public class ScoreboardManager extends Manager { } private void newDriver(ScoreboardType board) { - FileManager fileManager = this.plugin.getFileManager(); + FileManager fileManager = plugin.getFileManager(); FileConfiguration configload = fileManager.getConfig( - new File(this.plugin.getDataFolder(), "config.yml")).getFileConfiguration(); + new File(plugin.getDataFolder(), "config.yml")).getFileConfiguration(); - Driver driver = new Driver(this.plugin, board); + Driver driver = new Driver(plugin, board); if (configload.getBoolean("Island.Scoreboard.Async", true)) { - driver.runTaskTimerAsynchronously(this.plugin, 1L, 1L); + driver.runTaskTimerAsynchronously(plugin, 1L, 1L); } else { - driver.runTaskTimer(this.plugin, 1L, 1L); + driver.runTaskTimer(plugin, 1L, 1L); } - this.drivers.add(driver); + drivers.add(driver); } public void clearDrivers() { - if (this.enabled) { + if (enabled) { for (Driver driver : this.drivers) { driver.cancel(); } - this.drivers.clear(); + drivers.clear(); } } diff --git a/src/main/java/com/craftaro/skyblock/tasks/HologramTask.java b/src/main/java/com/craftaro/skyblock/tasks/HologramTask.java index 84279028..d3bcc1b5 100644 --- a/src/main/java/com/craftaro/skyblock/tasks/HologramTask.java +++ b/src/main/java/com/craftaro/skyblock/tasks/HologramTask.java @@ -46,9 +46,8 @@ public class HologramTask extends BukkitRunnable { public void run() { for (HologramType hologramTypeList : HologramType.values()) { if (hologramTypeList == HologramType.VOTES) { - if (!plugin.getConfiguration().getBoolean("Island.Visitor.Vote")) { + if (!plugin.getConfiguration().getBoolean("Island.Visitor.Vote")) continue; - } } spawnHologram(hologramTypeList); } diff --git a/src/main/java/com/craftaro/skyblock/tasks/MobNetherWaterTask.java b/src/main/java/com/craftaro/skyblock/tasks/MobNetherWaterTask.java index 502dfa6d..4d56fa2e 100644 --- a/src/main/java/com/craftaro/skyblock/tasks/MobNetherWaterTask.java +++ b/src/main/java/com/craftaro/skyblock/tasks/MobNetherWaterTask.java @@ -1,27 +1,16 @@ package com.craftaro.skyblock.tasks; import com.craftaro.core.compatibility.ServerVersion; -import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.island.IslandWorld; +import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import org.bukkit.Bukkit; import org.bukkit.Effect; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.entity.Blaze; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Ghast; -import org.bukkit.entity.Hoglin; -import org.bukkit.entity.MagmaCube; -import org.bukkit.entity.PigZombie; -import org.bukkit.entity.Piglin; -import org.bukkit.entity.Skeleton; -import org.bukkit.entity.Strider; -import org.bukkit.entity.Wither; -import org.bukkit.entity.Zoglin; +import org.bukkit.entity.*; import org.bukkit.scheduler.BukkitRunnable; public class MobNetherWaterTask extends BukkitRunnable { @@ -44,49 +33,43 @@ public class MobNetherWaterTask extends BukkitRunnable { @Override public void run() { - if (plugin.getConfiguration().getBoolean("Island.Nether.WaterDisappearWithNetherMobs", false)) { - for (World world : Bukkit.getServer().getWorlds()) { - if (plugin.getWorldManager().isIslandWorld(world) && plugin.getWorldManager().getIslandWorld(world) == IslandWorld.NETHER) { - for (Entity ent : world.getEntities()) { - boolean witherSkeleton; - if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_11)) { - witherSkeleton = ent.getType() == EntityType.WITHER_SKELETON; - } else { - witherSkeleton = ent instanceof Skeleton && ((Skeleton) ent).getSkeletonType() == Skeleton.SkeletonType.WITHER; - } - if ((((ent instanceof Blaze || ent instanceof MagmaCube) || ent instanceof Wither) || ent instanceof Ghast) || witherSkeleton) { - Block block = ent.getLocation().getBlock(); - removeWater(world, block); - removeWater(world, block.getRelative(BlockFace.UP)); - } else { - if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_16)) { - if (((ent instanceof Piglin || ent instanceof Hoglin) || ent instanceof Strider) || ent instanceof Zoglin) { - Block block = ent.getLocation().getBlock(); - removeWater(world, block); - removeWater(world, block.getRelative(BlockFace.UP)); - } - } else { - if (ent instanceof PigZombie) { - Block block = ent.getLocation().getBlock(); - removeWater(world, block); - removeWater(world, block.getRelative(BlockFace.UP)); - } - } - } - } - } - } + if (!plugin.getConfiguration().getBoolean("Island.Nether.WaterDisappearWithNetherMobs", false)) + return; + + for (World world : Bukkit.getServer().getWorlds()) { + if (!plugin.getWorldManager().isIslandWorld(world) || plugin.getWorldManager().getIslandWorld(world) != IslandWorld.NETHER) + continue; + + for (Entity ent : world.getEntities()) + if (isNetherMob(ent)) + removeWaterAround(world, ent.getLocation().getBlock()); } } - private void removeWater(World world, Block block) { - if (block.getType() == Material.WATER) { - block.setType(Material.AIR, true); - XSound.BLOCK_FIRE_EXTINGUISH.play(block.getLocation()); - world.playEffect(block.getLocation(), Effect.SMOKE, 1); + private boolean isNetherMob(Entity ent) { + if (ent instanceof Blaze || ent instanceof MagmaCube || ent instanceof Wither || ent instanceof Ghast) + return true; + + if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_11)) { + return ent.getType() == EntityType.WITHER_SKELETON; + } else { + return ent instanceof Skeleton && ((Skeleton) ent).getSkeletonType() == Skeleton.SkeletonType.WITHER; } } + private void removeWaterAround(World world, Block block) { + removeWater(world, block); + removeWater(world, block.getRelative(BlockFace.UP)); + } + + private void removeWater(World world, Block block) { + if (block.getType() != Material.WATER) + return; + block.setType(Material.AIR, true); + XSound.BLOCK_FIRE_EXTINGUISH.play(block.getLocation()); + world.playEffect(block.getLocation(), Effect.SMOKE, 1); + } + public void onDisable() { } } From cc27a5744cc430cbd41080a97c848a0d0f7f8951 Mon Sep 17 00:00:00 2001 From: Brianna O'Keefe Date: Thu, 14 Mar 2024 18:26:07 -0500 Subject: [PATCH 26/41] Change default world heights. --- .../com/craftaro/skyblock/blockscanner/BlockScanner.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java b/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java index 23c94777..716a6b72 100644 --- a/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java +++ b/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java @@ -9,10 +9,7 @@ import com.craftaro.skyblock.island.IslandEnvironment; import com.craftaro.skyblock.world.WorldManager; import com.google.common.collect.Lists; import io.papermc.lib.PaperLib; -import org.bukkit.Bukkit; -import org.bukkit.ChunkSnapshot; -import org.bukkit.Location; -import org.bukkit.World; +import org.bukkit.*; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.scheduler.BukkitRunnable; @@ -115,7 +112,7 @@ public final class BlockScanner extends BukkitRunnable { int startY; if (ignoreY) { - startY = 255; + startY = world.getMaxHeight(); } else { startY = !ignoreLiquidsY && liquidSection.getBoolean("Enable") && !config.getBoolean("Island.Levelling.ScanLiquid") ? liquidSection.getInt("Height") + 1 : 0; } @@ -151,7 +148,7 @@ public final class BlockScanner extends BukkitRunnable { if (this.island != null) { Location islandLocation = this.island.getLocation(worldManager.getIslandWorld(world), IslandEnvironment.ISLAND); - Location minLocation = new Location(world, islandLocation.getBlockX() - this.island.getRadius(), 0, islandLocation.getBlockZ() - this.island.getRadius()); + Location minLocation = new Location(world, islandLocation.getBlockX() - this.island.getRadius(), world.getMinHeight(), islandLocation.getBlockZ() - this.island.getRadius()); Location maxLocation = new Location(world, islandLocation.getBlockX() + this.island.getRadius(), world.getMaxHeight(), islandLocation.getBlockZ() + this.island.getRadius()); int minX = Math.min(maxLocation.getBlockX(), minLocation.getBlockX()); From a75a4eae2d62352b319dd5eaa3e44f78e8f1ce96 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Wed, 20 Mar 2024 12:34:00 +0100 Subject: [PATCH 27/41] Small internal code change for CustomCrops compatibility --- .../java/com/craftaro/skyblock/api/island/Island.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/api/island/Island.java b/src/main/java/com/craftaro/skyblock/api/island/Island.java index a96fbeb7..476e307c 100644 --- a/src/main/java/com/craftaro/skyblock/api/island/Island.java +++ b/src/main/java/com/craftaro/skyblock/api/island/Island.java @@ -255,18 +255,22 @@ public class Island { } /** - * @return The IslandRole of a player + * @return The IslandRole of a player or Visitor if not found */ public IslandRole getRole(OfflinePlayer player) { Preconditions.checkArgument(player != null, "Cannot get role for null player"); + if (isCoopPlayer(player.getUniqueId())) { + return IslandRole.COOP; + } + for (com.craftaro.skyblock.island.IslandRole role : com.craftaro.skyblock.island.IslandRole.values()) { if (this.handle.hasRole(role, player.getUniqueId())) { return APIUtil.fromImplementation(role); } } - return null; + return IslandRole.VISITOR; } /** From 2b3d640a22f3490a3b3f62f37e6cf6f465485347 Mon Sep 17 00:00:00 2001 From: ceze88 Date: Wed, 20 Mar 2024 12:34:09 +0100 Subject: [PATCH 28/41] Release v3.0.5 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7f8e3f82..edf6cadc 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.craftaro FabledSkyBlock - 3.0.4 + 3.0.5 FabledSkyBlock Bring your server's SkyBlock experience to the next level with the ability to fine-tune island settings, create custom islands, view leaderboards, and much more From c35002eb4d04232e55d490f0b22478c7264b577a Mon Sep 17 00:00:00 2001 From: TeamHR Date: Sun, 3 Mar 2024 21:24:27 +0530 Subject: [PATCH 29/41] [Fixes] Leaderboard Skull not loading and showing black skulls. --- .../craftaro/skyblock/menus/Leaderboard.java | 1 + .../playerdata/PlayerDataManager.java | 29 ++++++++----------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java b/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java index a325d59a..aac4519b 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java +++ b/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java @@ -308,6 +308,7 @@ public class Leaderboard { playerTexture = steveSkinTexture; } } + ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); nInv.addItem( diff --git a/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java b/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java index 02bfc188..4ee2a4df 100644 --- a/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java +++ b/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java @@ -3,27 +3,22 @@ package com.craftaro.skyblock.playerdata; import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.ban.BanManager; import com.craftaro.skyblock.config.FileManager; -import com.craftaro.skyblock.island.Island; -import com.craftaro.skyblock.island.IslandLocation; -import com.craftaro.skyblock.island.IslandManager; -import com.craftaro.skyblock.island.IslandRole; -import com.craftaro.skyblock.island.IslandStatus; -import com.craftaro.skyblock.island.IslandWorld; +import com.craftaro.skyblock.island.*; import com.craftaro.skyblock.message.MessageManager; import com.craftaro.skyblock.scoreboard.ScoreboardManager; import com.craftaro.skyblock.utils.player.OfflinePlayer; import com.craftaro.skyblock.utils.world.LocationUtil; import com.craftaro.skyblock.visit.Visit; import com.craftaro.skyblock.world.WorldManager; -import com.mojang.authlib.GameProfile; -import com.mojang.authlib.properties.Property; +import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; import java.io.File; import java.io.IOException; -import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -58,21 +53,21 @@ public class PlayerDataManager { FileConfiguration configLoad = config.getFileConfiguration(); String[] playerTexture; - + String something = null; try { - Object entityPlayer = player.getClass().getMethod("getHandle").invoke(player); - Method getProfileMethod = entityPlayer.getClass().getMethod("getProfile"); - GameProfile gameProfile = (GameProfile) getProfileMethod.invoke(entityPlayer); - Property property = gameProfile.getProperties().get("textures").iterator().next(); - playerTexture = new String[]{property.getSignature(), property.getValue()}; + ItemStack skullItem = SkullUtils.getSkull(player.getUniqueId()); + ItemMeta skullMeta = skullItem.getItemMeta(); + something = SkullUtils.getSkinValue(skullMeta); + System.out.println(something); } catch (Exception e) { + e.printStackTrace(); playerTexture = new String[]{ "K9P4tCIENYbNpDuEuuY0shs1x7iIvwXi4jUUVsATJfwsAIZGS+9OZ5T2HB0tWBoxRvZNi73Vr+syRdvTLUWPusVXIg+2fhXmQoaNEtnQvQVGQpjdQP0TkZtYG8PbvRxE6Z75ddq+DVx/65OSNHLWIB/D+Rg4vINh4ukXNYttn9QvauDHh1aW7/IkIb1Bc0tLcQyqxZQ3mdglxJfgIerqnlA++Lt7TxaLdag4y1NhdZyd3OhklF5B0+B9zw/qP8QCzsZU7VzJIcds1+wDWKiMUO7+60OSrIwgE9FPamxOQDFoDvz5BOULQEeNx7iFMB+eBYsapCXpZx0zf1bduppBUbbVC9wVhto/J4tc0iNyUq06/esHUUB5MHzdJ0Y6IZJAD/xIw15OLCUH2ntvs8V9/cy5/n8u3JqPUM2zhUGeQ2p9FubUGk4Q928L56l3omRpKV+5QYTrvF+AxFkuj2hcfGQG3VE2iYZO6omXe7nRPpbJlHkMKhE8Xvd1HP4PKpgivSkHBoZ92QEUAmRzZydJkp8CNomQrZJf+MtPiNsl/Q5RQM+8CQThg3+4uWptUfP5dDFWOgTnMdA0nIODyrjpp+bvIJnsohraIKJ7ZDnj4tIp4ObTNKDFC/8j8JHz4VCrtr45mbnzvB2DcK8EIB3JYT7ElJTHnc5BKMyLy5SKzuw=", "eyJ0aW1lc3RhbXAiOjE1MjkyNTg0MTE4NDksInByb2ZpbGVJZCI6Ijg2NjdiYTcxYjg1YTQwMDRhZjU0NDU3YTk3MzRlZWQ3IiwicHJvZmlsZU5hbWUiOiJTdGV2ZSIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGMxYzc3Y2U4ZTU0OTI1YWI1ODEyNTQ0NmVjNTNiMGNkZDNkMGNhM2RiMjczZWI5MDhkNTQ4Mjc4N2VmNDAxNiJ9LCJDQVBFIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjc2N2Q0ODMyNWVhNTMyNDU2MTQwNmI4YzgyYWJiZDRlMjc1NWYxMTE1M2NkODVhYjA1NDVjYzIifX19"}; } - configLoad.set("Texture.Signature", playerTexture[0]); - configLoad.set("Texture.Value", playerTexture[1]); + configLoad.set("Texture.Signature", ""); + configLoad.set("Texture.Value", something); configLoad.set("Statistics.Island.Playtime", 0); try { From 0f51665bc3382b0c94cc9df044a5809d793f0a05 Mon Sep 17 00:00:00 2001 From: TeamHR Date: Sun, 3 Mar 2024 22:46:18 +0530 Subject: [PATCH 30/41] [Fixes] Leaderboard Skull not loading and showing black skulls. [CleanUp] Cleaned Debug Messages --- .../craftaro/skyblock/menus/Leaderboard.java | 1 - .../playerdata/PlayerDataManager.java | 29 +++++++++++-------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java b/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java index aac4519b..a325d59a 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java +++ b/src/main/java/com/craftaro/skyblock/menus/Leaderboard.java @@ -308,7 +308,6 @@ public class Leaderboard { playerTexture = steveSkinTexture; } } - ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); nInv.addItem( diff --git a/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java b/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java index 4ee2a4df..02bfc188 100644 --- a/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java +++ b/src/main/java/com/craftaro/skyblock/playerdata/PlayerDataManager.java @@ -3,22 +3,27 @@ package com.craftaro.skyblock.playerdata; import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.ban.BanManager; import com.craftaro.skyblock.config.FileManager; -import com.craftaro.skyblock.island.*; +import com.craftaro.skyblock.island.Island; +import com.craftaro.skyblock.island.IslandLocation; +import com.craftaro.skyblock.island.IslandManager; +import com.craftaro.skyblock.island.IslandRole; +import com.craftaro.skyblock.island.IslandStatus; +import com.craftaro.skyblock.island.IslandWorld; import com.craftaro.skyblock.message.MessageManager; import com.craftaro.skyblock.scoreboard.ScoreboardManager; import com.craftaro.skyblock.utils.player.OfflinePlayer; import com.craftaro.skyblock.utils.world.LocationUtil; import com.craftaro.skyblock.visit.Visit; import com.craftaro.skyblock.world.WorldManager; -import com.craftaro.third_party.com.cryptomorin.xseries.SkullUtils; +import com.mojang.authlib.GameProfile; +import com.mojang.authlib.properties.Property; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; import java.io.File; import java.io.IOException; +import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -53,21 +58,21 @@ public class PlayerDataManager { FileConfiguration configLoad = config.getFileConfiguration(); String[] playerTexture; - String something = null; + try { - ItemStack skullItem = SkullUtils.getSkull(player.getUniqueId()); - ItemMeta skullMeta = skullItem.getItemMeta(); - something = SkullUtils.getSkinValue(skullMeta); - System.out.println(something); + Object entityPlayer = player.getClass().getMethod("getHandle").invoke(player); + Method getProfileMethod = entityPlayer.getClass().getMethod("getProfile"); + GameProfile gameProfile = (GameProfile) getProfileMethod.invoke(entityPlayer); + Property property = gameProfile.getProperties().get("textures").iterator().next(); + playerTexture = new String[]{property.getSignature(), property.getValue()}; } catch (Exception e) { - e.printStackTrace(); playerTexture = new String[]{ "K9P4tCIENYbNpDuEuuY0shs1x7iIvwXi4jUUVsATJfwsAIZGS+9OZ5T2HB0tWBoxRvZNi73Vr+syRdvTLUWPusVXIg+2fhXmQoaNEtnQvQVGQpjdQP0TkZtYG8PbvRxE6Z75ddq+DVx/65OSNHLWIB/D+Rg4vINh4ukXNYttn9QvauDHh1aW7/IkIb1Bc0tLcQyqxZQ3mdglxJfgIerqnlA++Lt7TxaLdag4y1NhdZyd3OhklF5B0+B9zw/qP8QCzsZU7VzJIcds1+wDWKiMUO7+60OSrIwgE9FPamxOQDFoDvz5BOULQEeNx7iFMB+eBYsapCXpZx0zf1bduppBUbbVC9wVhto/J4tc0iNyUq06/esHUUB5MHzdJ0Y6IZJAD/xIw15OLCUH2ntvs8V9/cy5/n8u3JqPUM2zhUGeQ2p9FubUGk4Q928L56l3omRpKV+5QYTrvF+AxFkuj2hcfGQG3VE2iYZO6omXe7nRPpbJlHkMKhE8Xvd1HP4PKpgivSkHBoZ92QEUAmRzZydJkp8CNomQrZJf+MtPiNsl/Q5RQM+8CQThg3+4uWptUfP5dDFWOgTnMdA0nIODyrjpp+bvIJnsohraIKJ7ZDnj4tIp4ObTNKDFC/8j8JHz4VCrtr45mbnzvB2DcK8EIB3JYT7ElJTHnc5BKMyLy5SKzuw=", "eyJ0aW1lc3RhbXAiOjE1MjkyNTg0MTE4NDksInByb2ZpbGVJZCI6Ijg2NjdiYTcxYjg1YTQwMDRhZjU0NDU3YTk3MzRlZWQ3IiwicHJvZmlsZU5hbWUiOiJTdGV2ZSIsInNpZ25hdHVyZVJlcXVpcmVkIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGMxYzc3Y2U4ZTU0OTI1YWI1ODEyNTQ0NmVjNTNiMGNkZDNkMGNhM2RiMjczZWI5MDhkNTQ4Mjc4N2VmNDAxNiJ9LCJDQVBFIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjc2N2Q0ODMyNWVhNTMyNDU2MTQwNmI4YzgyYWJiZDRlMjc1NWYxMTE1M2NkODVhYjA1NDVjYzIifX19"}; } - configLoad.set("Texture.Signature", ""); - configLoad.set("Texture.Value", something); + configLoad.set("Texture.Signature", playerTexture[0]); + configLoad.set("Texture.Value", playerTexture[1]); configLoad.set("Statistics.Island.Playtime", 0); try { From 373d5267d4acdb082be1f35c31d22b4c8948299d Mon Sep 17 00:00:00 2001 From: TeamHR Date: Mon, 25 Mar 2024 23:08:29 +0530 Subject: [PATCH 31/41] [Fixed] /is members Was throwing NPE for Players --- .../java/com/craftaro/skyblock/menus/Members.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/menus/Members.java b/src/main/java/com/craftaro/skyblock/menus/Members.java index c29e0be2..f99b3396 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Members.java +++ b/src/main/java/com/craftaro/skyblock/menus/Members.java @@ -398,12 +398,12 @@ public class Members { int islandPlaytime; - org.bukkit.OfflinePlayer targetPlayer = Bukkit.getServer().getOfflinePlayer(playerUUID); + Player targetPlayer = Bukkit.getServer().getPlayer(playerUUID); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(playerUUID); playerName = offlinePlayer.getName(); - playerTexture = offlinePlayer.getTexture(); + //playerTexture = offlinePlayer.getTexture(); islandPlaytime = offlinePlayer.getPlaytime(); playTimeDurationTime = NumberUtil.getDuration(Integer.valueOf(islandPlaytime)); @@ -419,8 +419,8 @@ public class Members { } else { playerName = targetPlayer.getName(); - playerData = plugin.getPlayerDataManager().getPlayerData(targetPlayer.getUniqueId()); - playerTexture = playerData.getTexture(); + playerData = plugin.getPlayerDataManager().getPlayerData(targetPlayer); + //playerTexture = playerData.getTexture(); islandPlaytime = playerData.getPlaytime(); playTimeDurationTime = NumberUtil.getDuration(islandPlaytime); @@ -571,7 +571,8 @@ public class Members { } } } - ItemStack phead = SkullUtils.getSkull(targetPlayer.getUniqueId()); + + ItemStack phead = SkullUtils.getSkull(Bukkit.getPlayerUniqueId(playerName)); nInv.addItem( nInv.createItem(phead, configLoad.getString("Menu.Members.Item.Member.Displayname").replace("%player", From 389b9087fdd76b01c24e970aa5de8f9bb4c9dc57 Mon Sep 17 00:00:00 2001 From: TeamHR Date: Tue, 26 Mar 2024 16:43:25 +0530 Subject: [PATCH 32/41] [Fixed] Island Scan MinY Level fixed. Instead of 0 it will now fetch from World.MinHeight. --- .../java/com/craftaro/skyblock/blockscanner/BlockScanner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java b/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java index 716a6b72..82dd1923 100644 --- a/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java +++ b/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java @@ -114,7 +114,7 @@ public final class BlockScanner extends BukkitRunnable { if (ignoreY) { startY = world.getMaxHeight(); } else { - startY = !ignoreLiquidsY && liquidSection.getBoolean("Enable") && !config.getBoolean("Island.Levelling.ScanLiquid") ? liquidSection.getInt("Height") + 1 : 0; + startY = !ignoreLiquidsY && liquidSection.getBoolean("Enable") && !config.getBoolean("Island.Levelling.ScanLiquid") ? liquidSection.getInt("Height") + 1 : world.getMinHeight(); } for (List sub : parts) { From 2a2886e9ae06db9d3a88e6f0f6d39d2bf9d43ccf Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 27 Mar 2024 19:27:30 +0100 Subject: [PATCH 33/41] fix: Replace incorrect player lookups using Bukkit#getPlayer with -Exact #34 --- .../command/commands/admin/AddUpgradeCommand.java | 2 +- .../skyblock/command/commands/admin/AdminBank.java | 10 +++++----- .../skyblock/command/commands/admin/DeleteCommand.java | 2 +- .../skyblock/command/commands/admin/OwnerCommand.java | 2 +- .../command/commands/admin/RemoveUpgradeCommand.java | 2 +- .../command/commands/admin/SetAlwaysLoadedCommand.java | 2 +- .../command/commands/admin/SetBiomeCommand.java | 2 +- .../skyblock/command/commands/admin/SetMaxMembers.java | 2 +- .../command/commands/admin/SetSizeCommand.java | 2 +- .../skyblock/command/commands/island/BanCommand.java | 2 +- .../command/commands/island/CancelCommand.java | 2 +- .../command/commands/island/CurrentCommand.java | 2 +- .../command/commands/island/DemoteCommand.java | 2 +- .../command/commands/island/InformationCommand.java | 2 +- .../command/commands/island/InviteCommand.java | 2 +- .../skyblock/command/commands/island/KickCommand.java | 2 +- .../skyblock/command/commands/island/LevelCommand.java | 2 +- .../skyblock/command/commands/island/OwnerCommand.java | 2 +- .../command/commands/island/PromoteCommand.java | 2 +- .../skyblock/command/commands/island/UnbanCommand.java | 2 +- .../skyblock/command/commands/island/VoteCommand.java | 2 +- src/main/java/com/craftaro/skyblock/menus/Members.java | 2 +- src/main/java/com/craftaro/skyblock/menus/Visit.java | 2 +- 23 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/command/commands/admin/AddUpgradeCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/admin/AddUpgradeCommand.java index 0f7c5551..49404033 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/admin/AddUpgradeCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/admin/AddUpgradeCommand.java @@ -50,7 +50,7 @@ public class AddUpgradeCommand extends SubCommand { FileConfiguration configLoad = config.getFileConfiguration(); if (args.length == 2) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID islandOwnerUUID; String targetPlayerName; diff --git a/src/main/java/com/craftaro/skyblock/command/commands/admin/AdminBank.java b/src/main/java/com/craftaro/skyblock/command/commands/admin/AdminBank.java index ec9ae402..b7bd5013 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/admin/AdminBank.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/admin/AdminBank.java @@ -78,7 +78,7 @@ public class AdminBank extends SubCommand { return; case "deposit": if (args.length >= 3) { - islandManager.getIslandByOwner(Bukkit.getOfflinePlayer(Bukkit.getPlayer(args[1]).getUniqueId())).addToBank(Double.parseDouble(args[2])); + islandManager.getIslandByOwner(Bukkit.getOfflinePlayer(Bukkit.getPlayerExact(args[1]).getUniqueId())).addToBank(Double.parseDouble(args[2])); messageManager.sendMessage(player, configLoad.getString("Command.Island.Admin.Bank.SuccesDeposit.Message").replace("%player%", args[1]).replace("%ammount%", EconomyManager.formatEconomy(Double.parseDouble(args[2])))); } else { messageManager.sendMessage(player, configLoad.getString("Command.Island.Admin.Bank.ByConsole.Message")); @@ -86,7 +86,7 @@ public class AdminBank extends SubCommand { return; case "withdraw": if (args.length >= 3) { - islandManager.getIslandByOwner(Bukkit.getOfflinePlayer(Bukkit.getPlayer(args[1]).getUniqueId())).removeFromBank(Double.parseDouble(args[2])); + islandManager.getIslandByOwner(Bukkit.getOfflinePlayer(Bukkit.getPlayerExact(args[1]).getUniqueId())).removeFromBank(Double.parseDouble(args[2])); messageManager.sendMessage(player, configLoad.getString("Command.Island.Admin.Bank.SuccesWithdraw.Message").replace("%player%", args[1]).replace("%ammount%", EconomyManager.formatEconomy(Double.parseDouble(args[2])))); } else { messageManager.sendMessage(player, configLoad.getString("Command.Island.Admin.Bank.ByConsole.Message")); @@ -94,7 +94,7 @@ public class AdminBank extends SubCommand { return; case "open": if (args.length == 2) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[1]); + Player targetPlayer = Bukkit.getPlayerExact(args[1]); UUID islandOwnerUUID; if (targetPlayer == null) { @@ -146,7 +146,7 @@ public class AdminBank extends SubCommand { return; case "deposit": if (args.length >= 3) { - islandManager.getIslandByOwner(Bukkit.getOfflinePlayer(Bukkit.getPlayer(args[1]).getUniqueId())).addToBank(Double.parseDouble(args[2])); + islandManager.getIslandByOwner(Bukkit.getOfflinePlayer(Bukkit.getPlayerExact(args[1]).getUniqueId())).addToBank(Double.parseDouble(args[2])); messageManager.sendMessage(sender, configLoad.getString("Command.Island.Admin.Bank.SuccesDeposit.Message").replace("%player%", args[1]).replace("%ammount%", EconomyManager.formatEconomy(Double.parseDouble(args[2])))); } else { messageManager.sendMessage(sender, configLoad.getString("Command.Island.Admin.Bank.ByConsole.Message")); @@ -154,7 +154,7 @@ public class AdminBank extends SubCommand { return; case "withdraw": if (args.length >= 3) { - islandManager.getIslandByOwner(Bukkit.getOfflinePlayer(Bukkit.getPlayer(args[1]).getUniqueId())).removeFromBank(Double.parseDouble(args[2])); + islandManager.getIslandByOwner(Bukkit.getOfflinePlayer(Bukkit.getPlayerExact(args[1]).getUniqueId())).removeFromBank(Double.parseDouble(args[2])); messageManager.sendMessage(sender, configLoad.getString("Command.Island.Admin.Bank.SuccesWithdraw.Message").replace("%player%", args[1]).replace("%ammount%", EconomyManager.formatEconomy(Double.parseDouble(args[2])))); } else { messageManager.sendMessage(sender, configLoad.getString("Command.Island.Admin.Bank.ByConsole.Message")); diff --git a/src/main/java/com/craftaro/skyblock/command/commands/admin/DeleteCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/admin/DeleteCommand.java index c6dd4f9d..d2a8cf7c 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/admin/DeleteCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/admin/DeleteCommand.java @@ -54,7 +54,7 @@ public class DeleteCommand extends SubCommand { } if (args.length == 1) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID targetPlayerUUID; String targetPlayerName; diff --git a/src/main/java/com/craftaro/skyblock/command/commands/admin/OwnerCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/admin/OwnerCommand.java index cc350ed9..539eb0e7 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/admin/OwnerCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/admin/OwnerCommand.java @@ -43,7 +43,7 @@ public class OwnerCommand extends SubCommand { FileConfiguration configLoad = config.getFileConfiguration(); if (args.length == 1) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID targetPlayerUUID, islandOwnerUUID; String targetPlayerName, islandOwnerName; diff --git a/src/main/java/com/craftaro/skyblock/command/commands/admin/RemoveUpgradeCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/admin/RemoveUpgradeCommand.java index 4fd99096..3c465af1 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/admin/RemoveUpgradeCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/admin/RemoveUpgradeCommand.java @@ -49,7 +49,7 @@ public class RemoveUpgradeCommand extends SubCommand { FileConfiguration configLoad = config.getFileConfiguration(); if (args.length == 2) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID islandOwnerUUID; String targetPlayerName; diff --git a/src/main/java/com/craftaro/skyblock/command/commands/admin/SetAlwaysLoadedCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/admin/SetAlwaysLoadedCommand.java index 64ced271..6f478f35 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/admin/SetAlwaysLoadedCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/admin/SetAlwaysLoadedCommand.java @@ -51,7 +51,7 @@ public class SetAlwaysLoadedCommand extends SubCommand { SoundManager soundManager = this.plugin.getSoundManager(); if (args.length == 1) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID islandOwnerUUID; if (targetPlayer == null) { diff --git a/src/main/java/com/craftaro/skyblock/command/commands/admin/SetBiomeCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/admin/SetBiomeCommand.java index d042df99..774872d6 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/admin/SetBiomeCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/admin/SetBiomeCommand.java @@ -76,7 +76,7 @@ public class SetBiomeCommand extends SubCommand { } if (biome != null) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID islandOwnerUUID; String targetPlayerName; diff --git a/src/main/java/com/craftaro/skyblock/command/commands/admin/SetMaxMembers.java b/src/main/java/com/craftaro/skyblock/command/commands/admin/SetMaxMembers.java index 40584c95..d2fad362 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/admin/SetMaxMembers.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/admin/SetMaxMembers.java @@ -50,7 +50,7 @@ public class SetMaxMembers extends SubCommand { if (args.length == 2) { if (args[1].matches("[0-9]+")) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID islandOwnerUUID; String targetPlayerName; diff --git a/src/main/java/com/craftaro/skyblock/command/commands/admin/SetSizeCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/admin/SetSizeCommand.java index 7084cdb5..2c2599fb 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/admin/SetSizeCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/admin/SetSizeCommand.java @@ -50,7 +50,7 @@ public class SetSizeCommand extends SubCommand { if (args.length == 2) { if (args[1].matches("[0-9]+")) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID islandOwnerUUID; String targetPlayerName; diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/BanCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/BanCommand.java index add6f25a..449fc1ab 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/BanCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/BanCommand.java @@ -47,7 +47,7 @@ public class BanCommand extends SubCommand { } else if (this.plugin.getConfiguration().getBoolean("Island.Visitor.Banning")) { if (island.hasRole(IslandRole.OWNER, player.getUniqueId()) || (island.hasRole(IslandRole.OPERATOR, player.getUniqueId()) && permissionManager.hasPermission(island, "Ban", IslandRole.OPERATOR))) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID targetPlayerUUID; String targetPlayerName; diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/CancelCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/CancelCommand.java index 839bf06d..eaf6bc9c 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/CancelCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/CancelCommand.java @@ -42,7 +42,7 @@ public class CancelCommand extends SubCommand { } else if (island.hasRole(IslandRole.OWNER, player.getUniqueId()) || island.hasRole(IslandRole.OPERATOR, player.getUniqueId())) { String playerName = args[0]; - Player targetPlayer = Bukkit.getServer().getPlayer(playerName); + Player targetPlayer = Bukkit.getPlayerExact(playerName); if (targetPlayer == null) { messageManager.sendMessage(player, configLoad.getString("Command.Island.Cancel.Offline.Message")); diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/CurrentCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/CurrentCommand.java index 1744cb0c..5f4c87d5 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/CurrentCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/CurrentCommand.java @@ -33,7 +33,7 @@ public class CurrentCommand extends SubCommand { if (args.length > 0) { if (!args[0].equalsIgnoreCase(player.getName())) { if (args.length == 1) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); if (targetPlayer == null) { messageManager.sendMessage(player, diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/DemoteCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/DemoteCommand.java index 317a2b72..3d41c82a 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/DemoteCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/DemoteCommand.java @@ -40,7 +40,7 @@ public class DemoteCommand extends SubCommand { messageManager.sendMessage(player, configLoad.getString("Command.Island.Demote.Owner.Message")); soundManager.playSound(player, XSound.BLOCK_ANVIL_LAND); } else if (island.hasRole(IslandRole.OWNER, player.getUniqueId())) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(args[0]); diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/InformationCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/InformationCommand.java index a23a353f..2fe536de 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/InformationCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/InformationCommand.java @@ -38,7 +38,7 @@ public class InformationCommand extends SubCommand { UUID islandOwnerUUID = null; if (args.length == 1) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); if (targetPlayer == null) { OfflinePlayer targetOfflinePlayer = new OfflinePlayer(args[0]); diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/InviteCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/InviteCommand.java index da5f7dc4..40f1daef 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/InviteCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/InviteCommand.java @@ -64,7 +64,7 @@ public class InviteCommand extends SubCommand { configLoad.getString("Command.Island.Invite.Yourself.Message")); soundManager.playSound(player, XSound.BLOCK_ANVIL_LAND); } else { - Player targetPlayer = Bukkit.getServer().getPlayer(playerName); + Player targetPlayer = Bukkit.getPlayerExact(playerName); if (targetPlayer == null) { messageManager.sendMessage(player, diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/KickCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/KickCommand.java index e305f122..20f78eb2 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/KickCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/KickCommand.java @@ -59,7 +59,7 @@ public class KickCommand extends SubCommand { UUID targetPlayerUUID = null; String targetPlayerName = null; - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); Set islandMembers = island.getRole(IslandRole.MEMBER), islandOperators = island.getRole(IslandRole.OPERATOR), islandVisitors = islandManager.getVisitorsAtIsland(island); diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/LevelCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/LevelCommand.java index d33ad7e2..b6b37717 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/LevelCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/LevelCommand.java @@ -47,7 +47,7 @@ public class LevelCommand extends SubCommand { FileConfiguration configLoad = config.getFileConfiguration(); if (args.length == 1) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID islandOwnerUUID; String targetPlayerName; diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/OwnerCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/OwnerCommand.java index a0f48f33..a785b63e 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/OwnerCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/OwnerCommand.java @@ -73,7 +73,7 @@ public class OwnerCommand extends SubCommand { UUID targetPlayerUUID; String targetPlayerName; - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(args[0]); diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/PromoteCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/PromoteCommand.java index b501c74b..dd278fb6 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/PromoteCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/PromoteCommand.java @@ -53,7 +53,7 @@ public class PromoteCommand extends SubCommand { soundManager.playSound(player, XSound.ENTITY_VILLAGER_NO); return; } - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); if (targetPlayer == null) { OfflinePlayer offlinePlayer = new OfflinePlayer(args[0]); diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/UnbanCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/UnbanCommand.java index 985747e7..e0b8f347 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/UnbanCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/UnbanCommand.java @@ -45,7 +45,7 @@ public class UnbanCommand extends SubCommand { if (island.hasRole(IslandRole.OWNER, player.getUniqueId()) || (island.hasRole(IslandRole.OPERATOR, player.getUniqueId()) && this.plugin.getPermissionManager().hasPermission(island, "Unban", IslandRole.OPERATOR))) { - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID targetPlayerUUID; String targetPlayerName; diff --git a/src/main/java/com/craftaro/skyblock/command/commands/island/VoteCommand.java b/src/main/java/com/craftaro/skyblock/command/commands/island/VoteCommand.java index e8cacb8e..7ecc714d 100644 --- a/src/main/java/com/craftaro/skyblock/command/commands/island/VoteCommand.java +++ b/src/main/java/com/craftaro/skyblock/command/commands/island/VoteCommand.java @@ -51,7 +51,7 @@ public class VoteCommand extends SubCommand { return; } - Player targetPlayer = Bukkit.getServer().getPlayer(args[0]); + Player targetPlayer = Bukkit.getPlayerExact(args[0]); UUID islandOwnerUUID; String targetPlayerName; diff --git a/src/main/java/com/craftaro/skyblock/menus/Members.java b/src/main/java/com/craftaro/skyblock/menus/Members.java index f99b3396..35eabc56 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Members.java +++ b/src/main/java/com/craftaro/skyblock/menus/Members.java @@ -150,7 +150,7 @@ public class Members { String playerName = ChatColor.stripColor(is.getItemMeta().getDisplayName()); UUID playerUUID; - Player targetPlayer = Bukkit.getServer().getPlayer(playerName); + Player targetPlayer = Bukkit.getPlayerExact(playerName); if (targetPlayer == null) { playerUUID = new OfflinePlayer(playerName).getUUID(); diff --git a/src/main/java/com/craftaro/skyblock/menus/Visit.java b/src/main/java/com/craftaro/skyblock/menus/Visit.java index dcbf0953..7d735acf 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Visit.java +++ b/src/main/java/com/craftaro/skyblock/menus/Visit.java @@ -135,7 +135,7 @@ public class Visit { String targetPlayerName = ChatColor.stripColor(is.getItemMeta().getDisplayName()); UUID targetPlayerUUID; - Player targetPlayer = Bukkit.getServer().getPlayer(targetPlayerName); + Player targetPlayer = Bukkit.getPlayerExact(targetPlayerName); if (targetPlayer == null) { targetPlayerUUID = new OfflinePlayer(targetPlayerName).getUniqueId(); From 211e6a0fcb3a5cb8bde21b9a5ba429874883b0c9 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 27 Mar 2024 19:32:44 +0100 Subject: [PATCH 34/41] fix: Fix NullPointerException when using portals --- .../java/com/craftaro/skyblock/island/IslandManager.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/island/IslandManager.java b/src/main/java/com/craftaro/skyblock/island/IslandManager.java index 9348830b..64afc526 100644 --- a/src/main/java/com/craftaro/skyblock/island/IslandManager.java +++ b/src/main/java/com/craftaro/skyblock/island/IslandManager.java @@ -1509,9 +1509,10 @@ public class IslandManager { Bukkit.getScheduler().runTask(this.plugin, () -> { if (configLoad.getBoolean("Island.WorldBorder.Enable") && island.isBorder()) { - SWorldBorder.send(player, island.getBorderColor(), island.getSize(), - island.getLocation(worldManager.getIslandWorld(player.getWorld()), - IslandEnvironment.ISLAND).clone().add(increment, 0, increment)); + Location islandLocation = island.getLocation(worldManager.getIslandWorld(player.getWorld()), IslandEnvironment.ISLAND); + if (islandLocation != null) { + SWorldBorder.send(player, island.getBorderColor(), island.getSize(), islandLocation.clone().add(increment, 0, increment)); + } } else { SWorldBorder.send(player, null, 1.4999992E7D, new org.bukkit.Location(player.getWorld(), 0, 0, 0)); } From e9642ad0ccef1294cdc176427df83fe8ffed0f33 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 27 Mar 2024 19:41:04 +0100 Subject: [PATCH 35/41] fix: Replace usage of deprecated SWorldBorder with new NmsWorldBorder SWorldBorder will be removed soon:tm: --- .../craftaro/skyblock/api/utils/APIUtil.java | 18 +++++++-------- .../com/craftaro/skyblock/island/Island.java | 16 ++++++------- .../skyblock/island/IslandManager.java | 14 +++++------ .../com/craftaro/skyblock/menus/Border.java | 23 +++++++++---------- 4 files changed, 35 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/api/utils/APIUtil.java b/src/main/java/com/craftaro/skyblock/api/utils/APIUtil.java index 1ea541a1..80781e97 100644 --- a/src/main/java/com/craftaro/skyblock/api/utils/APIUtil.java +++ b/src/main/java/com/craftaro/skyblock/api/utils/APIUtil.java @@ -1,6 +1,6 @@ package com.craftaro.skyblock.api.utils; -import com.craftaro.core.world.SWorldBorder; +import com.craftaro.core.nms.world.NmsWorldBorder; import com.craftaro.skyblock.api.island.IslandBorderColor; import com.craftaro.skyblock.api.island.IslandUpgrade; import com.craftaro.skyblock.api.island.IslandWorld; @@ -191,26 +191,26 @@ public final class APIUtil { return null; } - public static SWorldBorder.Color toImplementation(IslandBorderColor color) { + public static NmsWorldBorder.BorderColor toImplementation(IslandBorderColor color) { switch (color) { case BLUE: - return SWorldBorder.Color.Blue; + return NmsWorldBorder.BorderColor.BLUE; case GREEN: - return SWorldBorder.Color.Green; + return NmsWorldBorder.BorderColor.GREEN; case RED: - return SWorldBorder.Color.Red; + return NmsWorldBorder.BorderColor.RED; } return null; } - public static IslandBorderColor fromImplementation(SWorldBorder.Color color) { + public static IslandBorderColor fromImplementation(NmsWorldBorder.BorderColor color) { switch (color) { - case Blue: + case BLUE: return IslandBorderColor.BLUE; - case Green: + case GREEN: return IslandBorderColor.GREEN; - case Red: + case RED: return IslandBorderColor.RED; } diff --git a/src/main/java/com/craftaro/skyblock/island/Island.java b/src/main/java/com/craftaro/skyblock/island/Island.java index 3907cdd1..0866d0ef 100644 --- a/src/main/java/com/craftaro/skyblock/island/Island.java +++ b/src/main/java/com/craftaro/skyblock/island/Island.java @@ -1,10 +1,10 @@ package com.craftaro.skyblock.island; import com.craftaro.core.compatibility.CompatibleBiome; +import com.craftaro.core.nms.world.NmsWorldBorder; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.craftaro.core.utils.NumberUtils; import com.craftaro.core.utils.PlayerUtils; -import com.craftaro.core.world.SWorldBorder; import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.api.event.island.IslandBiomeChangeEvent; import com.craftaro.skyblock.api.event.island.IslandLocationChangeEvent; @@ -150,7 +150,7 @@ public class Island { if (configLoad.getString("Border") == null) { configLoad.set("Border.Enable", mainConfigLoad.getBoolean("Island.WorldBorder.Default", false)); - configLoad.set("Border.Color", SWorldBorder.Color.Blue.name()); + configLoad.set("Border.Color", NmsWorldBorder.BorderColor.BLUE.name()); } if (configLoad.getString("Members") != null) { @@ -246,7 +246,7 @@ public class Island { configLoad.set("UUID", this.islandUUID.toString()); configLoad.set("Visitor.Status", mainConfigLoad.getString("Island.Visitor.Status").toUpperCase()); configLoad.set("Border.Enable", mainConfigLoad.getBoolean("Island.WorldBorder.Default", false)); - configLoad.set("Border.Color", SWorldBorder.Color.Blue.name()); + configLoad.set("Border.Color", NmsWorldBorder.BorderColor.BLUE.name()); configLoad.set("Biome.Type", mainConfigLoad.getString("Island.Biome.Default.Type").toUpperCase()); configLoad.set("Weather.Synchronised", mainConfigLoad.getBoolean("Island.Weather.Default.Synchronised")); // TODO: Synchronized configLoad.set("Weather.Time", mainConfigLoad.getInt("Island.Weather.Default.Time")); @@ -449,13 +449,13 @@ public class Island { .getFileConfiguration().set("Border.Enable", border); } - public SWorldBorder.Color getBorderColor() { - return SWorldBorder.Color.valueOf(this.plugin.getFileManager().getConfig( - new File(new File(this.plugin.getDataFolder(), "island-data"), this.ownerUUID.toString() + ".yml")) - .getFileConfiguration().getString("Border.Color")); + public NmsWorldBorder.BorderColor getBorderColor() { + String colorString = this.plugin.getFileManager().getConfig(new File(new File(this.plugin.getDataFolder(), "island-data"), this.ownerUUID.toString() + ".yml")) + .getFileConfiguration().getString("Border.Color"); + return NmsWorldBorder.BorderColor.valueOf(colorString.toUpperCase()); } - public void setBorderColor(SWorldBorder.Color color) { + public void setBorderColor(NmsWorldBorder.BorderColor color) { this.plugin.getFileManager().getConfig( new File(new File(this.plugin.getDataFolder(), "island-data"), this.ownerUUID.toString() + ".yml")) .getFileConfiguration().set("Border.Color", color.name()); diff --git a/src/main/java/com/craftaro/skyblock/island/IslandManager.java b/src/main/java/com/craftaro/skyblock/island/IslandManager.java index 64afc526..071d7f4a 100644 --- a/src/main/java/com/craftaro/skyblock/island/IslandManager.java +++ b/src/main/java/com/craftaro/skyblock/island/IslandManager.java @@ -6,9 +6,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence; import com.craftaro.core.compatibility.CompatibleBiome; import com.craftaro.core.compatibility.CompatibleMaterial; import com.craftaro.core.compatibility.ServerVersion; -import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; -import com.craftaro.third_party.com.cryptomorin.xseries.XSound; -import com.craftaro.core.world.SWorldBorder; +import com.craftaro.core.nms.Nms; import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.api.event.island.IslandCreateEvent; import com.craftaro.skyblock.api.event.island.IslandDeleteEvent; @@ -43,6 +41,8 @@ import com.craftaro.skyblock.utils.world.LocationUtil; import com.craftaro.skyblock.utils.world.block.BlockDegreesType; import com.craftaro.skyblock.visit.VisitManager; import com.craftaro.skyblock.world.WorldManager; +import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; +import com.craftaro.third_party.com.cryptomorin.xseries.XSound; import com.eatthepath.uuid.FastUUID; import com.google.common.base.Preconditions; import io.papermc.lib.PaperLib; @@ -1511,10 +1511,10 @@ public class IslandManager { if (configLoad.getBoolean("Island.WorldBorder.Enable") && island.isBorder()) { Location islandLocation = island.getLocation(worldManager.getIslandWorld(player.getWorld()), IslandEnvironment.ISLAND); if (islandLocation != null) { - SWorldBorder.send(player, island.getBorderColor(), island.getSize(), islandLocation.clone().add(increment, 0, increment)); + Nms.getImplementations().getWorldBorder().send(player, island.getBorderColor(), island.getSize(), islandLocation.clone().add(increment, 0, increment)); } } else { - SWorldBorder.send(player, null, 1.4999992E7D, new org.bukkit.Location(player.getWorld(), 0, 0, 0)); + Nms.getImplementations().getWorldBorder().send(player, null, 1.4999992E7D, new org.bukkit.Location(player.getWorld(), 0, 0, 0)); } }); } @@ -1666,7 +1666,7 @@ public class IslandManager { if (worldList != IslandWorld.NETHER || ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13)) { Bukkit.getScheduler().runTask(this.plugin, () -> { for (Player all : getPlayersAtIsland(island)) { - SWorldBorder.send(all, island.getBorderColor(), island.getSize(), island.getLocation(worldManager.getIslandWorld(all.getWorld()), IslandEnvironment.ISLAND).clone().add(increment, 0, increment)); + Nms.getImplementations().getWorldBorder().send(all, island.getBorderColor(), island.getSize(), island.getLocation(worldManager.getIslandWorld(all.getWorld()), IslandEnvironment.ISLAND).clone().add(increment, 0, increment)); } }); } @@ -1678,7 +1678,7 @@ public class IslandManager { if (worldList != IslandWorld.NETHER || ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13)) { Bukkit.getScheduler().runTask(this.plugin, () -> { for (Player all : getPlayersAtIsland(island)) { - SWorldBorder.send(all, null, 1.4999992E7D, new Location(all.getWorld(), 0, 0, 0)); + Nms.getImplementations().getWorldBorder().send(all, null, 1.4999992E7D, new Location(all.getWorld(), 0, 0, 0)); } }); } diff --git a/src/main/java/com/craftaro/skyblock/menus/Border.java b/src/main/java/com/craftaro/skyblock/menus/Border.java index a40b710d..af16420e 100644 --- a/src/main/java/com/craftaro/skyblock/menus/Border.java +++ b/src/main/java/com/craftaro/skyblock/menus/Border.java @@ -1,8 +1,8 @@ package com.craftaro.skyblock.menus; +import com.craftaro.core.nms.world.NmsWorldBorder; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.third_party.com.cryptomorin.xseries.XSound; -import com.craftaro.core.world.SWorldBorder; import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.island.Island; import com.craftaro.skyblock.island.IslandManager; @@ -82,13 +82,13 @@ public class Border { .equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color", configLoad.getString("Menu.Border.Item.Word.Blue")))))) { - if (island.getBorderColor() == SWorldBorder.Color.Blue) { + if (island.getBorderColor() == NmsWorldBorder.BorderColor.BLUE) { soundManager.playSound(player, XSound.ENTITY_CHICKEN_EGG); event.setWillClose(false); event.setWillDestroy(false); } else { - island.setBorderColor(SWorldBorder.Color.Blue); + island.setBorderColor(NmsWorldBorder.BorderColor.BLUE); islandManager.updateBorder(island); soundManager.playSound(player, XSound.BLOCK_WOODEN_BUTTON_CLICK_ON); @@ -100,13 +100,13 @@ public class Border { .equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color", configLoad.getString("Menu.Border.Item.Word.Green")))))) { - if (island.getBorderColor() == SWorldBorder.Color.Green) { + if (island.getBorderColor() == NmsWorldBorder.BorderColor.GREEN) { soundManager.playSound(player, XSound.ENTITY_CHICKEN_EGG); event.setWillClose(false); event.setWillDestroy(false); } else { - island.setBorderColor(SWorldBorder.Color.Green); + island.setBorderColor(NmsWorldBorder.BorderColor.GREEN); islandManager.updateBorder(island); soundManager.playSound(player, XSound.BLOCK_WOODEN_BUTTON_CLICK_ON); @@ -118,13 +118,13 @@ public class Border { .equals(ChatColor.translateAlternateColorCodes('&', configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color", configLoad.getString("Menu.Border.Item.Word.Red")))))) { - if (island.getBorderColor() == SWorldBorder.Color.Red) { + if (island.getBorderColor() == NmsWorldBorder.BorderColor.RED) { soundManager.playSound(player, XSound.ENTITY_CHICKEN_EGG); event.setWillClose(false); event.setWillDestroy(false); } else { - island.setBorderColor(SWorldBorder.Color.Red); + island.setBorderColor(NmsWorldBorder.BorderColor.RED); islandManager.updateBorder(island); soundManager.playSound(player, XSound.BLOCK_WOODEN_BUTTON_CLICK_ON); @@ -139,7 +139,7 @@ public class Border { nInv.addItem(nInv.createItem(XMaterial.OAK_FENCE_GATE.parseItem(), configLoad.getString("Menu.Border.Item.Exit.Displayname"), null, null, null, null), 0); - SWorldBorder.Color borderColor = island.getBorderColor(); + NmsWorldBorder.BorderColor borderColor = island.getBorderColor(); String borderToggle; if (island.isBorder()) { @@ -152,9 +152,8 @@ public class Border { configLoad.getString("Menu.Border.Item.Toggle.Displayname"), configLoad.getStringList("Menu.Border.Item.Toggle.Lore"), new Placeholder[]{new Placeholder("%toggle", borderToggle)}, null, null), 1); - if (player.hasPermission("fabledskyblock.island.border.blue")) { - if (borderColor == SWorldBorder.Color.Blue) { + if (borderColor == NmsWorldBorder.BorderColor.BLUE) { nInv.addItem(nInv.createItem(XMaterial.LIGHT_BLUE_DYE.parseItem(), configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color", configLoad.getString("Menu.Border.Item.Word.Blue")), @@ -174,7 +173,7 @@ public class Border { "", null, null, null, null), 2); } if (player.hasPermission("fabledskyblock.island.border.green")) { - if (borderColor == SWorldBorder.Color.Green) { + if (borderColor == NmsWorldBorder.BorderColor.GREEN) { nInv.addItem(nInv.createItem(XMaterial.LIME_DYE.parseItem(), configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color", configLoad.getString("Menu.Border.Item.Word.Green")), @@ -196,7 +195,7 @@ public class Border { "", null, null, null, null), 3); } if (player.hasPermission("fabledskyblock.island.border.red")) { - if (borderColor == SWorldBorder.Color.Red) { + if (borderColor == NmsWorldBorder.BorderColor.RED) { nInv.addItem(nInv.createItem(XMaterial.RED_DYE.parseItem(), configLoad.getString("Menu.Border.Item.Color.Displayname").replace("%color", configLoad.getString("Menu.Border.Item.Word.Red")), From 7d86423744332e5dc7158facf101ee31d96a0b34 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 27 Mar 2024 19:47:18 +0100 Subject: [PATCH 36/41] fix: Wrap World#getMinHeight with fallback for older Minecraft versions The method did not exist *back then* and we still want to support Spigot 1.8.8 --- .../skyblock/blockscanner/BlockScanner.java | 5 +++-- .../craftaro/skyblock/utils/world/WorldUtil.java | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/craftaro/skyblock/utils/world/WorldUtil.java diff --git a/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java b/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java index 82dd1923..5f59f0e8 100644 --- a/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java +++ b/src/main/java/com/craftaro/skyblock/blockscanner/BlockScanner.java @@ -2,6 +2,7 @@ package com.craftaro.skyblock.blockscanner; import com.craftaro.core.compatibility.CompatibleMaterial; import com.craftaro.core.compatibility.ServerVersion; +import com.craftaro.skyblock.utils.world.WorldUtil; import com.craftaro.third_party.com.cryptomorin.xseries.XMaterial; import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.island.Island; @@ -114,7 +115,7 @@ public final class BlockScanner extends BukkitRunnable { if (ignoreY) { startY = world.getMaxHeight(); } else { - startY = !ignoreLiquidsY && liquidSection.getBoolean("Enable") && !config.getBoolean("Island.Levelling.ScanLiquid") ? liquidSection.getInt("Height") + 1 : world.getMinHeight(); + startY = !ignoreLiquidsY && liquidSection.getBoolean("Enable") && !config.getBoolean("Island.Levelling.ScanLiquid") ? liquidSection.getInt("Height") + 1 : WorldUtil.getMinHeight(world); } for (List sub : parts) { @@ -148,7 +149,7 @@ public final class BlockScanner extends BukkitRunnable { if (this.island != null) { Location islandLocation = this.island.getLocation(worldManager.getIslandWorld(world), IslandEnvironment.ISLAND); - Location minLocation = new Location(world, islandLocation.getBlockX() - this.island.getRadius(), world.getMinHeight(), islandLocation.getBlockZ() - this.island.getRadius()); + Location minLocation = new Location(world, islandLocation.getBlockX() - this.island.getRadius(), WorldUtil.getMinHeight(world), islandLocation.getBlockZ() - this.island.getRadius()); Location maxLocation = new Location(world, islandLocation.getBlockX() + this.island.getRadius(), world.getMaxHeight(), islandLocation.getBlockZ() + this.island.getRadius()); int minX = Math.min(maxLocation.getBlockX(), minLocation.getBlockX()); diff --git a/src/main/java/com/craftaro/skyblock/utils/world/WorldUtil.java b/src/main/java/com/craftaro/skyblock/utils/world/WorldUtil.java new file mode 100644 index 00000000..33bbd7d5 --- /dev/null +++ b/src/main/java/com/craftaro/skyblock/utils/world/WorldUtil.java @@ -0,0 +1,16 @@ +package com.craftaro.skyblock.utils.world; + +import org.bukkit.World; + +public final class WorldUtil { + private WorldUtil() { + } + + public static int getMinHeight(World world) { + try { + return world.getMinHeight(); + } catch (NoSuchMethodError e) { + return 0; + } + } +} From 68a4dc5c094dda5bf6954bf3d69b59230e5ec340 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Apr 2024 14:38:32 +0200 Subject: [PATCH 37/41] Bump io.netty:netty-all from 4.1.107.Final to 4.1.108.Final (#38) Bumps [io.netty:netty-all](https://github.com/netty/netty) from 4.1.107.Final to 4.1.108.Final. - [Commits](https://github.com/netty/netty/compare/netty-4.1.107.Final...netty-4.1.108.Final) --- updated-dependencies: - dependency-name: io.netty:netty-all dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index edf6cadc..6d4f1644 100644 --- a/pom.xml +++ b/pom.xml @@ -209,7 +209,7 @@ io.netty netty-all - 4.1.107.Final + 4.1.108.Final provided From 018e26c1b0fd5a4cfb07528be0814b73883f9e37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Apr 2024 21:06:14 +0200 Subject: [PATCH 38/41] Bump com.sk89q.worldedit:worldedit-bukkit from 7.2.20 to 7.3.0 (#37) Bumps com.sk89q.worldedit:worldedit-bukkit from 7.2.20 to 7.3.0. --- updated-dependencies: - dependency-name: com.sk89q.worldedit:worldedit-bukkit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6d4f1644..97e2aef6 100644 --- a/pom.xml +++ b/pom.xml @@ -195,7 +195,7 @@ com.sk89q.worldedit worldedit-bukkit - 7.2.20 + 7.3.0 provided From 4dffd7e2a8c82d4e91bb88183b2991408f236713 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Sat, 6 Apr 2024 21:11:13 +0200 Subject: [PATCH 39/41] fix: Fix ConcurrentModificationException on PlayerData-Storage (#39) --- .../com/craftaro/skyblock/bank/BankManager.java | 9 +++++++-- .../skyblock/confirmation/ConfirmationTask.java | 12 +++++++++--- .../craftaro/skyblock/island/IslandManager.java | 16 +++++++++------- .../com/craftaro/skyblock/visit/VisitTask.java | 12 +++++++++--- 4 files changed, 34 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/craftaro/skyblock/bank/BankManager.java b/src/main/java/com/craftaro/skyblock/bank/BankManager.java index d00e2b00..1c4a2bd4 100644 --- a/src/main/java/com/craftaro/skyblock/bank/BankManager.java +++ b/src/main/java/com/craftaro/skyblock/bank/BankManager.java @@ -5,6 +5,7 @@ import com.craftaro.core.hooks.economies.Economy; import com.craftaro.skyblock.SkyBlock; import com.craftaro.skyblock.config.FileManager; import com.craftaro.skyblock.island.Island; +import com.craftaro.skyblock.playerdata.PlayerData; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; @@ -12,6 +13,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.UUID; public class BankManager { @@ -71,8 +73,11 @@ public class BankManager { } private void loadTransactions() { - for (UUID uid : SkyBlock.getInstance().getPlayerDataManager().getPlayerData().keySet()) { - this.log.put(uid, SkyBlock.getInstance().getPlayerDataManager().getPlayerData().get(uid).getTransactions()); + Map playerDataStorage = SkyBlock.getInstance().getPlayerDataManager().getPlayerData(); + synchronized (playerDataStorage) { + for (UUID uid : playerDataStorage.keySet()) { + this.log.put(uid, playerDataStorage.get(uid).getTransactions()); + } } } diff --git a/src/main/java/com/craftaro/skyblock/confirmation/ConfirmationTask.java b/src/main/java/com/craftaro/skyblock/confirmation/ConfirmationTask.java index 296b1b02..3e84d47f 100644 --- a/src/main/java/com/craftaro/skyblock/confirmation/ConfirmationTask.java +++ b/src/main/java/com/craftaro/skyblock/confirmation/ConfirmationTask.java @@ -4,6 +4,9 @@ import com.craftaro.skyblock.playerdata.PlayerData; import com.craftaro.skyblock.playerdata.PlayerDataManager; import org.bukkit.scheduler.BukkitRunnable; +import java.util.Map; +import java.util.UUID; + public class ConfirmationTask extends BukkitRunnable { private final PlayerDataManager playerDataManager; @@ -13,9 +16,12 @@ public class ConfirmationTask extends BukkitRunnable { @Override public void run() { - for (PlayerData playerData : this.playerDataManager.getPlayerData().values()) { - if (playerData.getConfirmationTime() > 0) { - playerData.setConfirmationTime(playerData.getConfirmationTime() - 1); + Map playerDataStorage = this.playerDataManager.getPlayerData(); + synchronized (playerDataStorage) { + for (PlayerData playerData : playerDataStorage.values()) { + if (playerData.getConfirmationTime() > 0) { + playerData.setConfirmationTime(playerData.getConfirmationTime() - 1); + } } } } diff --git a/src/main/java/com/craftaro/skyblock/island/IslandManager.java b/src/main/java/com/craftaro/skyblock/island/IslandManager.java index 071d7f4a..37c01ed9 100644 --- a/src/main/java/com/craftaro/skyblock/island/IslandManager.java +++ b/src/main/java/com/craftaro/skyblock/island/IslandManager.java @@ -1189,14 +1189,16 @@ public class IslandManager { Map playerDataStorage = this.plugin.getPlayerDataManager().getPlayerData(); Set islandVisitors = new HashSet<>(); - for (UUID playerDataStorageList : playerDataStorage.keySet()) { - PlayerData playerData = playerDataStorage.get(playerDataStorageList); - UUID islandOwnerUUID = playerData.getIsland(); + synchronized (playerDataStorage) { + for (UUID playerDataStorageList : playerDataStorage.keySet()) { + PlayerData playerData = playerDataStorage.get(playerDataStorageList); + UUID islandOwnerUUID = playerData.getIsland(); - if (islandOwnerUUID != null && islandOwnerUUID.equals(island.getOwnerUUID())) { - if (playerData.getOwner() == null || !playerData.getOwner().equals(island.getOwnerUUID())) { - if (Bukkit.getServer().getPlayer(playerDataStorageList) != null) { - islandVisitors.add(playerDataStorageList); + if (islandOwnerUUID != null && islandOwnerUUID.equals(island.getOwnerUUID())) { + if (playerData.getOwner() == null || !playerData.getOwner().equals(island.getOwnerUUID())) { + if (Bukkit.getServer().getPlayer(playerDataStorageList) != null) { + islandVisitors.add(playerDataStorageList); + } } } } diff --git a/src/main/java/com/craftaro/skyblock/visit/VisitTask.java b/src/main/java/com/craftaro/skyblock/visit/VisitTask.java index b933dc5a..1ec0bc34 100644 --- a/src/main/java/com/craftaro/skyblock/visit/VisitTask.java +++ b/src/main/java/com/craftaro/skyblock/visit/VisitTask.java @@ -4,6 +4,9 @@ import com.craftaro.skyblock.playerdata.PlayerData; import com.craftaro.skyblock.playerdata.PlayerDataManager; import org.bukkit.scheduler.BukkitRunnable; +import java.util.Map; +import java.util.UUID; + public class VisitTask extends BukkitRunnable { private final PlayerDataManager playerDataManager; @@ -13,9 +16,12 @@ public class VisitTask extends BukkitRunnable { @Override public void run() { - for (PlayerData playerData : this.playerDataManager.getPlayerData().values()) { - if (playerData.getIsland() != null) { - playerData.setVisitTime(playerData.getVisitTime() + 1); + Map playerDataStorage = this.playerDataManager.getPlayerData(); + synchronized (playerDataStorage) { + for (PlayerData playerData : playerDataStorage.values()) { + if (playerData.getIsland() != null) { + playerData.setVisitTime(playerData.getVisitTime() + 1); + } } } } From ff12fda7d2ed965f265b0b9e3a96663fc0a9fdce Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Sat, 6 Apr 2024 21:12:07 +0200 Subject: [PATCH 40/41] Revert "Bump com.sk89q.worldedit:worldedit-bukkit from 7.2.20 to 7.3.0 (#37)" This reverts commit 018e26c1b0fd5a4cfb07528be0814b73883f9e37. Apparently 7.3 now requires java language features newer than Java 8... We can't upgrade right now --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 97e2aef6..6d4f1644 100644 --- a/pom.xml +++ b/pom.xml @@ -195,7 +195,7 @@ com.sk89q.worldedit worldedit-bukkit - 7.3.0 + 7.2.20 provided From 4c4b6fe6dd5dff2bcd78d0e006ce3e8b7246e33c Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Sat, 6 Apr 2024 21:13:57 +0200 Subject: [PATCH 41/41] Release v3.0.6 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6d4f1644..01542659 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.craftaro FabledSkyBlock - 3.0.5 + 3.0.6 FabledSkyBlock Bring your server's SkyBlock experience to the next level with the ability to fine-tune island settings, create custom islands, view leaderboards, and much more