TS2_YouGame
Новичок
- Баллы
- 6
- Имя в Minecraft
- TS2_YourGame
Я делаю систему кулдауна предметам. С помощью Runnable, я делаю задержку, чтобы считать секунды. Всё работало хорошо, но я решил зайти в инвентарь вовремя кулдауна. Как итог, плагин перестал взаимодействовать именно с этим предметом, хотя какой-то предмет он всё ещё видит. Как мне это исправить?
Код:
public void reload(Player player, ItemStack item) {
ItemMeta meta = item.getItemMeta();
meta.getPersistentDataContainer().set(NamespacedKey.fromString("item_reload_left"), PersistentDataType.STRING, Integer.toString(reloadTime));
item.setItemMeta(meta);
String reloadMessage = SkillCardSystem.instance.getConfig().getString("reloading item");
String reloadCompletedMessage = SkillCardSystem.instance.getConfig().getString("reload item completed");
player.sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(SkillCardSystem.color(reloadMessage + Integer.toString(this.getReloadTime()))));
for (int i = this.getReloadTime(); i>0; i--) {
int finalI = i;
new DelayedTask(() -> {
meta.getPersistentDataContainer().set(NamespacedKey.fromString("item_reload_left"), PersistentDataType.STRING, Integer.toString(this.getReloadTime() - finalI));
item.setItemMeta(meta);
if (player.getInventory().getItemInMainHand().equals(item)) {
player.sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(SkillCardSystem.color(reloadMessage + Integer.toString(this.getReloadTime() - finalI))));
}
}, 20*i);
}
new DelayedTask(() -> {
meta.getPersistentDataContainer().set(NamespacedKey.fromString("item_reload_left"), PersistentDataType.STRING, "0");
item.setItemMeta(meta);
if (player.getInventory().getItemInMainHand().equals(item)) {
player.sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(SkillCardSystem.color(reloadCompletedMessage)));
}
}, 20*this.getReloadTime());
}