From 7aeb57452e7b324caa18fe5a4eaa88efcc6d8e75 Mon Sep 17 00:00:00 2001 From: Jaimss Date: Wed, 7 Oct 2020 16:48:45 -0400 Subject: [PATCH 1/4] add a null check for player --- .../com/extendedclip/papi/expansion/player/PlayerExpansion.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java b/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java index 216af82..eb1b464 100644 --- a/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java +++ b/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java @@ -140,6 +140,8 @@ public String onRequest(OfflinePlayer player, String identifier) { Player p = player.getPlayer(); + if (p == null) return ""; + if (identifier.startsWith("has_permission_")) { if (identifier.split("has_permission_").length > 1) { String perm = identifier.split("has_permission_")[1]; From 05727f2cc2b3c8712d08b07c0cf8c87446b71711 Mon Sep 17 00:00:00 2001 From: Jaimss Date: Wed, 7 Oct 2020 16:48:57 -0400 Subject: [PATCH 2/4] add recipes placeholders --- .../papi/expansion/player/PlayerExpansion.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java b/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java index eb1b464..4e3cfe4 100644 --- a/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java +++ b/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java @@ -173,7 +173,22 @@ public String onRequest(OfflinePlayer player, String identifier) { return "0"; } + if (identifier.startsWith("can_craft_")) { + if (identifier.split("can_craft_").length > 1) { + String recipeName = identifier.split("can_craft_")[1]; + try { + return bool(p.hasDiscoveredRecipe(NamespacedKey.minecraft(recipeName))); + } catch (IllegalArgumentException e) { + return "invalid recipe"; // could be false instead + } + } + return bool(false); + } + + switch (identifier) { + case "recipes": + return p.getDiscoveredRecipes().toString(); // sort of ugly (i dont see the use case either) case "has_empty_slot": return bool(p.getInventory().firstEmpty() > -1); case "empty_slots": From e0d55324af6f5d57337e39b7c514d177cb9e8c3d Mon Sep 17 00:00:00 2001 From: Jaimss Date: Wed, 7 Oct 2020 16:50:21 -0400 Subject: [PATCH 3/4] intellij optimized imports --- .../papi/expansion/player/PlayerExpansion.java | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java b/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java index 4e3cfe4..70ca2a9 100644 --- a/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java +++ b/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java @@ -24,11 +24,7 @@ import me.clip.placeholderapi.PlaceholderAPIPlugin; import me.clip.placeholderapi.expansion.Configurable; import me.clip.placeholderapi.expansion.PlaceholderExpansion; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.OfflinePlayer; -import org.bukkit.World; +import org.bukkit.*; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffectType; @@ -38,15 +34,7 @@ import java.util.Map; import java.util.Optional; -import static com.extendedclip.papi.expansion.player.PlayerUtil.format12; -import static com.extendedclip.papi.expansion.player.PlayerUtil.format24; -import static com.extendedclip.papi.expansion.player.PlayerUtil.getBiome; -import static com.extendedclip.papi.expansion.player.PlayerUtil.getCapitalizedBiome; -import static com.extendedclip.papi.expansion.player.PlayerUtil.getCardinalDirection; -import static com.extendedclip.papi.expansion.player.PlayerUtil.getEmptySlots; -import static com.extendedclip.papi.expansion.player.PlayerUtil.getTotalExperience; -import static com.extendedclip.papi.expansion.player.PlayerUtil.getXZDirection; -import static com.extendedclip.papi.expansion.player.PlayerUtil.itemInHand; +import static com.extendedclip.papi.expansion.player.PlayerUtil.*; public final class PlayerExpansion extends PlaceholderExpansion implements Configurable { From 6ab472508f1686edb0f10a6954ca2b886ea9c638 Mon Sep 17 00:00:00 2001 From: Jaimss Date: Wed, 7 Oct 2020 17:55:01 -0400 Subject: [PATCH 4/4] Update PlayerExpansion.java --- .../papi/expansion/player/PlayerExpansion.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java b/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java index 70ca2a9..ae99c56 100644 --- a/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java +++ b/src/main/java/com/extendedclip/papi/expansion/player/PlayerExpansion.java @@ -161,9 +161,9 @@ public String onRequest(OfflinePlayer player, String identifier) { return "0"; } - if (identifier.startsWith("can_craft_")) { - if (identifier.split("can_craft_").length > 1) { - String recipeName = identifier.split("can_craft_")[1]; + if (identifier.startsWith("has_unlocked_recipe_")) { + if (identifier.split("has_unlocked_recipe_").length > 1) { + String recipeName = identifier.split("has_unlocked_recipe_")[1]; try { return bool(p.hasDiscoveredRecipe(NamespacedKey.minecraft(recipeName))); } catch (IllegalArgumentException e) { @@ -175,7 +175,7 @@ public String onRequest(OfflinePlayer player, String identifier) { switch (identifier) { - case "recipes": + case "recipes_list": return p.getDiscoveredRecipes().toString(); // sort of ugly (i dont see the use case either) case "has_empty_slot": return bool(p.getInventory().firstEmpty() > -1);