diff --git a/build.gradle b/build.gradle index 93e672a..0bb9b89 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group = 'me.redtea' -version = '1.1.1-STABLE' +version = '1.1.2-STABLE' repositories { mavenCentral() diff --git a/src/main/java/me/redtea/nodropx/NoDropX.java b/src/main/java/me/redtea/nodropx/NoDropX.java index 24d75cb..8fb77d1 100644 --- a/src/main/java/me/redtea/nodropx/NoDropX.java +++ b/src/main/java/me/redtea/nodropx/NoDropX.java @@ -54,7 +54,6 @@ import me.redtea.nodropx.service.material.ItemStackService; import me.redtea.nodropx.service.material.impl.ItemStackServiceImpl; import me.redtea.nodropx.service.nbt.NBTService; import me.redtea.nodropx.service.nbt.impl.FastNBTServiceImpl; -import me.redtea.nodropx.service.nbt.impl.Tr7zwNBTServiceImpl; import me.redtea.nodropx.service.nodrop.NoDropService; import me.redtea.nodropx.service.nodrop.impl.NoDropServiceImpl; import me.redtea.nodropx.service.respawn.RespawnService; diff --git a/src/main/java/me/redtea/nodropx/command/NoDropCommand.java b/src/main/java/me/redtea/nodropx/command/NoDropCommand.java index f685b44..d042396 100644 --- a/src/main/java/me/redtea/nodropx/command/NoDropCommand.java +++ b/src/main/java/me/redtea/nodropx/command/NoDropCommand.java @@ -22,6 +22,7 @@ import org.bukkit.Material; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -61,7 +62,10 @@ public class NoDropCommand { @Suggestion("allmaterials") final String material, @Optional final Integer amount) { try { - noDropAPI.giveNoDrop(player, material, amount == null || amount == 0 ? 1 : amount); + ItemStack item = noDropAPI.getNoDrop(material, amount == null || amount == 0 ? 1 : amount); + player.getInventory().addItem(item); + + messages.get("give.success") .replaceAll("%item%", material) .replaceAll("%player%", player.getName()) diff --git a/src/main/java/me/redtea/nodropx/model/materialprovider/impl/ItemsAdderProvider.java b/src/main/java/me/redtea/nodropx/model/materialprovider/impl/ItemsAdderProvider.java index 639b89e..1cf8269 100644 --- a/src/main/java/me/redtea/nodropx/model/materialprovider/impl/ItemsAdderProvider.java +++ b/src/main/java/me/redtea/nodropx/model/materialprovider/impl/ItemsAdderProvider.java @@ -14,7 +14,7 @@ public class ItemsAdderProvider implements ItemStackProvider { @Override public ItemStack get(String s) { CustomStack stack = CustomStack.getInstance(s); - return (stack != null) ? stack.getItemStack() : null; + return (stack != null) ? stack.getItemStack().clone() : null; } @Override diff --git a/src/main/java/me/redtea/nodropx/service/capasity/impl/CapacityServiceImpl.java b/src/main/java/me/redtea/nodropx/service/capasity/impl/CapacityServiceImpl.java index 8468778..71ab9e0 100644 --- a/src/main/java/me/redtea/nodropx/service/capasity/impl/CapacityServiceImpl.java +++ b/src/main/java/me/redtea/nodropx/service/capasity/impl/CapacityServiceImpl.java @@ -1,5 +1,6 @@ package me.redtea.nodropx.service.capasity.impl; +import beer.devs.fastnbt.nms.nbt.NItem; import me.redtea.nodropx.libs.carcadex.repo.Repo; import me.redtea.nodropx.libs.carcadex.repo.impl.yaml.YamlRepo; import me.redtea.nodropx.service.capasity.CapacityService; @@ -7,7 +8,9 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.Plugin; import java.io.File; -import java.util.*; +import java.util.Collections; +import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; public class CapacityServiceImpl implements CapacityService { @@ -25,9 +28,16 @@ public class CapacityServiceImpl implements CapacityService { @Override public List get(ItemStack item) { String key = item.getType().name(); - if(item.hasItemMeta() && item.getItemMeta().hasCustomModelData()) { - key += "->" + item.getItemMeta().getCustomModelData(); + + if(NItem.hasNBT(item)) { + NItem nItem = NItem.of(item); + if(nItem.hasKey("itemsadder")) { + key = nItem.getCompound("itemsadder").getString("namespace") + ":" + nItem.getCompound("itemsadder").getString("id"); + } else if(item.hasItemMeta() && item.getItemMeta().hasCustomModelData()) { + key += "->" + item.getItemMeta().getCustomModelData(); + } } + Optional> result = capacityRepo.get(key); return result.orElse(Collections.emptyList()); } diff --git a/src/main/java/me/redtea/nodropx/service/nodrop/impl/NoDropServiceImpl.java b/src/main/java/me/redtea/nodropx/service/nodrop/impl/NoDropServiceImpl.java index 504fd7e..4727321 100644 --- a/src/main/java/me/redtea/nodropx/service/nodrop/impl/NoDropServiceImpl.java +++ b/src/main/java/me/redtea/nodropx/service/nodrop/impl/NoDropServiceImpl.java @@ -13,8 +13,8 @@ public class NoDropServiceImpl implements NoDropService { @Override public void setNoDrop(ItemStack item, boolean isNoDrop) { - nbtService.setBoolTag(item, "isNoDrop", true); cosmeticService.applyAll(item); + nbtService.setBoolTag(item, "isNoDrop", true); } @Override