ProGiple
Пользователь
- Сообщения
- 80
- Решения
- 1
- Другие ядра
- Purpur
Привет! Я недавно начал делать плагин на прокачку эндер-сундука, всё работает, все значения записывает в конфиг для каждого игрока, но я столкнулся с одной проблемой: в конфиге может быть прописано:
Но даже при таком случае, предметы, которые нужны для прокачки (т.е. нажимаешь на предмет - он забирает монеты и добавляет доп. слот в конфиг для игрока), они всё равно идут либо с нуля (т.е. все слоты закрыты с самого начала), либо с 9 (т.е. открыта одна строка)
Для расширения эндер-сундука до 6 строк я использую встроенную функцию в ядро Purpur
Всё работает, кроме расположения предметов. Даже если я прокачаю слот, он не появиться в эндер-сундуке, будет так же, как я говорил до этого
Прилагаю часть кода, отвечающую за это:
Буду благодарен вашей помощи!
YAML:
data:
nickname: 27
Для расширения эндер-сундука до 6 строк я использую встроенную функцию в ядро Purpur
Всё работает, кроме расположения предметов. Даже если я прокачаю слот, он не появиться в эндер-сундуке, будет так же, как я говорил до этого
Прилагаю часть кода, отвечающую за это:
Java:
@EventHandler
public void onOpen(InventoryOpenEvent event) {
Player player = (Player) event.getPlayer();
Inventory ender = player.getEnderChest();
int size = ender.getSize();
ItemStack itemt = new ItemStack(Material.valueOf(getConfig().getString("buy_slot.material")));
ItemMeta meta = itemt.getItemMeta();
player.updateInventory();
List<String> loretext = new ArrayList<>();
List<String> configLore = getConfig().getStringList("buy_slot.lore");
meta.setCustomModelData(987651);
meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(getConfig().getString("buy_slot.name"))));
for (String line : configLore) {
String coloredline = ChatColor.translateAlternateColorCodes('&', line);
loretext.add(coloredline);
}
meta.setLore(loretext);
itemt.setItemMeta(meta);
boolean hasPlayerValue = Objects.requireNonNull(getConfig().getConfigurationSection("data")).contains(player.getName());
if (!hasPlayerValue) {
upd("data." + player.getName(), 27);
reloadConfig();
}
int slots = getConfig().getInt("data." + player.getName());
if (size > 27) {
for (int i = slots; i < size; i++) {
ender.setItem(i, itemt);
}
player.updateInventory();
}
}
Буду благодарен вашей помощи!