Кодирование плагина экономики для Minecraft 1.18.2 [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Кодирование плагина экономики для Minecraft 1.18.2 [дубликат]

Сообщение Anonymous »


Я получаю сообщение об ошибке:

Вызвано: java.lang.NoClassDefFoundError: net/milkbowl/vault/metrics/bukkit/Metrics$CustomChart

и из-за этого мой плагин не может декомпилироваться.

полный код ошибки

Не удалось загрузить «plugins\EvadedEconomy-v1.2.jar» в папку «plugins» org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: net/milkbowl/vault/metrics/bukkit/Metrics$CustomChart в org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:149) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?] в org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:394) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?] в org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:301) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?] в org.bukkit.craftbukkit.v1_18_R2.CraftServer.loadPlugins(CraftServer.java:407) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3498-Spigot-b081915-10ba1be] в net.minecraft.server.dedicated.DedicatedServer.e(DedicatedServer.java:232) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3498-Spigot-b081915-10ba1be] по адресу net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1007) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3498-Spigot-b081915-10ba1be] по адресу net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:304) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3498-Spigot-b081915-10ba1be] в java.lang.Thread.run(Thread.java:833) [?:?] Вызвано: java.lang.NoClassDefFoundError: net/milkbowl/vault/metrics/bukkit/Metrics$CustomChart в java.lang.Class.forName0(собственный метод) ~[?:?] в java.lang.Class.forName(Class.java:488) ~[?:?] в java.lang.Class.forName(Class.java:467) ~[?:?] в org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:67) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?] в org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:145) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?] ... еще 7 Вызвано: java.lang.ClassNotFoundException: net.milkbowl.vault.metrics.bukkit.Metrics$CustomChart в org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:147) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?] в org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:99) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?] в java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?] в java.lang.Class.forName0(собственный метод) ~[?:?] в java.lang.Class.forName(Class.java:488) ~[?:?] в java.lang.Class.forName(Class.java:467) ~[?:?] в org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:67) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?] в org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:145) ~[spigot-api-1.18.2-R0.1-SNAPSHOT.jar:?] ... еще 7 Основной класс

пакет main.java.me.lmaoloq.evadedeco; импортировать java.io.InputStreamReader; импортировать java.net.URL; импортировать java.net.URLConnection; импортировать java.util.concurrent.CompletableFuture; импортировать java.util.logging.Level; импортировать org.bukkit.plugin.ServicePriority; импортировать org.bukkit.plugin.java.JavaPlugin; импортировать org.json.simple.JSONArray; импортировать org.json.simple.JSONObject; импортировать org.json.simple.parser.JSONParser; импортировать org.json.simple.parser.ParseException; импортировать com.google.gson.JsonElement; импортировать com.google.gson.JsonObject; импортировать main.java.me.lmaoloq.evadedeco.command.CommandManager; импортировать main.java.me.lmaoloq.evadedeco.model.BankAccount; импортировать main.java.me.lmaoloq.evadedeco.storage.BankStorage; импортировать main.java.me.lmaoloq.evadedeco.storage.FileStorage; импортировать main.java.me.lmaoloq.evadedeco.storage.sql.MySqlStorage; импортировать main.java.me.lmaoloq.evadedeco.storage.sql.SqLiteStorage; импортировать net.milkbowl.vault.economy.Economy; импортировать net.milkbowl.vault.metrics.bukkit.Metrics; импортировать net.milkbowl.vault.metrics.bukkit.Metrics.SimplePie; публичный класс EvadedEco расширяет JavaPlugin { частное банковское хранилище; частный CompletableFuture checkUpdate() { CompletableFuture будущее = новый CompletableFuture(); getServer().getScheduler().runTaskAsynchronous(this, () -> { пытаться { getLogger().info("Проверка обновлений..."); URL URL = новый URL("https://api.spiget.org/v2/resources/819 ... eleaseDate"); URLConnection conn = url.openConnection(); conn.setRequestProperty("Агент пользователя", "EvadedEco/UpdateChecker"); Читатель InputStreamReader = новый InputStreamReader(conn.getInputStream()); Элемент JsonElement = JSONParser.parseReader(читатель); если (element.isJsonArray()) { Результат JsonObject = element.getAsJsonArray().get(0).getAsJsonObject(); Версия строки = result.get("name").getAsString(); if (!version.equals(getDescription().getVersion())) { getLogger().warning("Доступна версия " + версия + " EvadedEco. Вы используете версию " + getDescription().getVersion()); getLogger().warning("Загрузить здесь: " + getDescription().getWebsite()); } еще { getLogger().info("Вы используете последнюю версию (" + getDescription().getVersion() + ")"); } } еще { getLogger().severe("Не удалось проверить наличие обновлений: неожиданный результат: " + element.toString()); } } catch (исключение ex) { getLogger().log(Level.Severe, «Не удалось проверить наличие обновлений», ex); } окончательно { будущее.завершено (нуль); } }); вернуть будущее; } @Override общественный недействительный onLoad () { сохранитьКонфигурациюПо умолчанию(); String StorageType = getConfig().getString("тип_хранилища"); переключатель (storageType.toLowerCase()) { случай «sqlite»: хранилище = новый SqLiteStorage (это); перерыв; случай «mysql»: хранилище = новый MySqlStorage (это); перерыв; случай «плоский файл»: хранилище = новый FileStorage (это); перерыв; по умолчанию: getLogger().warning("Неверный тип хранилища: " + StorageType); getLogger().warning("Использование хранилища плоских файлов в качестве резервного варианта"); хранилище = новый FileStorage (это); } хранилище.getAccounts() .thenAccept(getBankManager()::loadAccounts) .исключительно(ex -> { getLogger().log(Level.Severe, «Не удалось загрузить банковские счета», ex); getLogger().log(Level.Severe, «Плагин будет отключен»); getServer().getPluginManager().disablePlugin(this); вернуть ноль; }); } @Override общественная недействительность onEnable () { if (getServer().getPluginManager().isPluginEnabled("Vault")) { Экономика Экономика = новая VaultEconomy(this); getServer().getServicesManager().register(Economy.class, Economic, this, ServicePriority.Normal); } Команда CommandManager = новый CommandManager(this); getCommand("деньги").setExecutor(команда); getCommand("деньги").setTabCompleter(команда); Метрики метрики = новые метрики(это); metrics.addCustomChart(new SimplePie("storage_type", () -> getStorage().getTypeName())); metrics.addCustomChart(new SimplePie("multi_world", () -> getConfig().getBoolean("мультимир") ? "Включено выключено")); проверить обновление(); } общественный BankManager getBankManager() { вернуть BankManager.get(это); } формат публичной строки (двойной баланс) { int decimalPlaces = getConfig().getInt("formatting.decimal-places"); Строковое значение = String.format("%,." + decimalPlaces + "f", баланс); Формат строки = getConfig().getString("formatting.format"); return format.replace("{value}", value).replace("{sign}", getConfig().getString("formatting.sign")); } общественное BankStorage getStorage () { возвратное хранение; } } Я попробовал перейти с import org.json.simple.parser.ParseException; на import com.google.gson.JSONParser, но это не устранило проблему для меня.

Мне нужна помощь в исправлении ошибки. Насколько я вижу, проблема связана с тем, что parseReader(InputStreamReader) не определен в JSONParser, но я не уверен, как это исправить. Я потратил около 30 минут на поиск исправления, но не смог его найти.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»