diff --git a/src/main/java/com/songoda/epicheads/command/commands/CommandBase64.java b/src/main/java/com/songoda/epicheads/command/commands/CommandBase64.java index 6b3b71e..993fe89 100644 --- a/src/main/java/com/songoda/epicheads/command/commands/CommandBase64.java +++ b/src/main/java/com/songoda/epicheads/command/commands/CommandBase64.java @@ -27,6 +27,8 @@ public class CommandBase64 extends AbstractCommand { String encodededStr = Methods.getEncodedTexture(item); + if (encodededStr == null) return ReturnType.FAILURE; + player.sendMessage(instance.getReferences().getPrefix()); player.sendMessage(encodededStr); diff --git a/src/main/java/com/songoda/epicheads/command/commands/CommandUrl.java b/src/main/java/com/songoda/epicheads/command/commands/CommandUrl.java index 6c31fff..a2eb8fc 100644 --- a/src/main/java/com/songoda/epicheads/command/commands/CommandUrl.java +++ b/src/main/java/com/songoda/epicheads/command/commands/CommandUrl.java @@ -26,6 +26,9 @@ public class CommandUrl extends AbstractCommand { if (!item.hasItemMeta() || !(item.getItemMeta() instanceof SkullMeta)) return ReturnType.FAILURE; String encodededStr = Methods.getEncodedTexture(item); + + if (encodededStr == null) return ReturnType.FAILURE; + String url = Methods.getDecodedTexture(encodededStr); player.sendMessage(instance.getReferences().getPrefix()); diff --git a/src/main/java/com/songoda/epicheads/listeners/ItemListeners.java b/src/main/java/com/songoda/epicheads/listeners/ItemListeners.java index 5097f73..c6a5aec 100644 --- a/src/main/java/com/songoda/epicheads/listeners/ItemListeners.java +++ b/src/main/java/com/songoda/epicheads/listeners/ItemListeners.java @@ -34,6 +34,9 @@ public class ItemListeners implements Listener { event.getItem().removeMetadata("EHE", plugin); String encodededStr = Methods.getEncodedTexture(item); + + if (encodededStr == null) return; + String url = Methods.getDecodedTexture(encodededStr); if (url == null) return; diff --git a/src/main/java/com/songoda/epicheads/listeners/LoginListeners.java b/src/main/java/com/songoda/epicheads/listeners/LoginListeners.java index d71e064..1c80923 100644 --- a/src/main/java/com/songoda/epicheads/listeners/LoginListeners.java +++ b/src/main/java/com/songoda/epicheads/listeners/LoginListeners.java @@ -27,8 +27,10 @@ public class LoginListeners implements Listener { Player player = event.getPlayer(); String encodededStr = Methods.getEncodedTexture(player); - String url = Methods.getDecodedTexture(encodededStr); + if (encodededStr == null) return; + + String url = Methods.getDecodedTexture(encodededStr); String tagStr = "Player Heads"; diff --git a/src/main/java/com/songoda/epicheads/utils/Methods.java b/src/main/java/com/songoda/epicheads/utils/Methods.java index dbe2f02..b96aae3 100644 --- a/src/main/java/com/songoda/epicheads/utils/Methods.java +++ b/src/main/java/com/songoda/epicheads/utils/Methods.java @@ -15,10 +15,7 @@ import org.bukkit.inventory.meta.SkullMeta; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Base64; -import java.util.List; -import java.util.UUID; +import java.util.*; public class Methods { @@ -52,7 +49,11 @@ public class Methods { Field localField = localSkullMeta.getClass().getDeclaredField("profile"); localField.setAccessible(true); GameProfile profile = (GameProfile) localField.get(localSkullMeta); - Property property = profile.getProperties().get("textures").iterator().next(); + Iterator iterator = profile.getProperties().get("textures").iterator(); + + if (!iterator.hasNext()) return null; + + Property property = iterator.next(); return property.getValue(); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace();