Fix ItemsAdder give, new capacity key

- fix '/nodrop give' command for giving itemsadder's items
now in capacity you may use itemsadder tag for key:
"namespace:id": [ 27, 28, 29]
This commit is contained in:
redtea committed 2025-12-11 01:06:45 +03:00
1 parent 48b3955add
commit af920884aa
6 files changed
+20 -7

No files matched your search

+1 -1
View File
@@ -5,7 +5,7 @@ plugins {
}
group = 'me.redtea'
version = '1.1.1-STABLE'
version = '1.1.2-STABLE'
repositories {
mavenCentral()
@@ -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;
@@ -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())
@@ -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
@@ -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<Integer> get(ItemStack item) {
String key = item.getType().name();
if(item.hasItemMeta() && item.getItemMeta().hasCustomModelData()) {
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<List<Integer>> result = capacityRepo.get(key);
return result.orElse(Collections.emptyList());
}
@@ -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