Commit 43de2dd3 authored by Aria Sangarin's avatar Aria Sangarin 💛
Browse files

Breaker 3.3.1 - bl19's nbt bugfix

parent b8393e91
......@@ -5,6 +5,7 @@ import eu.asangarin.breaker.util.NBTUtil;
import io.lumine.mythic.bukkit.utils.config.LineConfig;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class NBTBooleanState extends BreakerState {
private String key;
......@@ -12,7 +13,9 @@ public class NBTBooleanState extends BreakerState {
@Override
public boolean isConditionMet(Player breaker, Block block) {
boolean value = NBTUtil.getBooleanValue(key, breaker.getInventory().getItemInMainHand());
ItemStack stack = breaker.getInventory().getItemInMainHand();
if(!NBTUtil.hasValue(key, stack)) return false;
boolean value = NBTUtil.getBooleanValue(key, stack);
return value == nbtValue;
}
......
......@@ -5,6 +5,7 @@ import eu.asangarin.breaker.util.NBTUtil;
import io.lumine.mythic.bukkit.utils.config.LineConfig;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class NBTStringState extends BreakerState {
private String key;
......@@ -12,7 +13,9 @@ public class NBTStringState extends BreakerState {
@Override
public boolean isConditionMet(Player breaker, Block block) {
String value = NBTUtil.getStringValue(key, breaker.getInventory().getItemInMainHand());
ItemStack stack = breaker.getInventory().getItemInMainHand();
if(!NBTUtil.hasValue(key, stack)) return false;
String value = NBTUtil.getStringValue(key, stack);
return value.equals(nbtValue);
}
......
......@@ -5,6 +5,7 @@ import eu.asangarin.breaker.util.NBTUtil;
import io.lumine.mythic.bukkit.utils.config.LineConfig;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class NBTValueState extends BreakerState {
private String key;
......@@ -12,7 +13,9 @@ public class NBTValueState extends BreakerState {
@Override
public boolean isConditionMet(Player breaker, Block block) {
int value = NBTUtil.getIntValue(key, breaker.getInventory().getItemInMainHand());
ItemStack stack = breaker.getInventory().getItemInMainHand();
if(!NBTUtil.hasValue(key, stack)) return false;
int value = NBTUtil.getIntValue(key, stack);
return value == nbtValue;
}
......
......@@ -23,25 +23,28 @@ public class NBTUtil {
return tag;
}
public static boolean hasValue(String key, ItemStack stack) {
String[] nodes = key.split("\\.");
String finalKey = nodes[nodes.length - 1];
return findDeepestTag(nodes, stack).containsKey(finalKey);
}
public static int getIntValue(String key, ItemStack stack) {
String[] nodes = key.split("\\.");
String finalKey = nodes[nodes.length - 1];
CompoundTag tag = findDeepestTag(nodes, stack);
return tag.getInt(finalKey);
return findDeepestTag(nodes, stack).getInt(finalKey);
}
public static String getStringValue(String key, ItemStack stack) {
String[] nodes = key.split("\\.");
String finalKey = nodes[nodes.length - 1];
CompoundTag tag = findDeepestTag(nodes, stack);
return tag.getString(finalKey);
return findDeepestTag(nodes, stack).getString(finalKey);
}
public static boolean getBooleanValue(String key, ItemStack stack) {
String[] nodes = key.split("\\.");
String finalKey = nodes[nodes.length - 1];
CompoundTag tag = findDeepestTag(nodes, stack);
return tag.getBoolean(finalKey);
return findDeepestTag(nodes, stack).getBoolean(finalKey);
}
private static Optional<CompoundTag> navigate(CompoundTag tag, String key) {
......
......@@ -31,7 +31,7 @@
</modules>
<properties>
<revision>3.3.0</revision>
<revision>3.3.1</revision>
<downloadSources>false</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment