Почему плагин Paper не удается загрузить?

Я разрабатываю свой собственный плагин для Minecraft, но он не загружается при запуске сервера, даже несмотря на отсутствие ошибок. Когда я пытаюсь выполнить загрузку через PlugManX, выдается сообщение о том, что файл является невалидным плагином. 

Вот содержимое моего файла plugin.yml:
```java
name: Plugin
version: '1.0.0'
main: me.name.Plugin.Plugin
api-version: '1.21'
prefix: Plugin
load: STARTUP
authors: [ name]
description: Plugin
```

А также главный файл плагина выглядит следующим образом:
```java
package me.name.Plugin;

import me.lime.noVanila.listeners.chat.MainChatListener;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.logging.Logger;

public final class Plugin extends JavaPlugin {

    private static Plugin instance;
    private final Logger log = this.getLogger();

    @Override
    public void onEnable() {
        log.info("Plugin is enabled!");
        Bukkit.getPluginManager().registerEvents(new MainChatListener(), this);
    }

    @Override
    public void onDisable() {
        log.info("Plugin is disabled!");
    }
}
```

Также у меня есть файл MainChatListener.java:
```java
package me.name.Plugin.listeners.chat;

import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextColor;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;

public class MainChatListener implements Listener {
    @EventHandler
    public void onChat(AsyncChatEvent event) {
        event.renderer((source, sourceDisplayName, message, viewer) ->
                Component.text(...)
        );
    }
}
```

Можете подсказать, что может быть не так и как исправить ситуацию?
  • 8 января 2025 г. 16:44
Ответы на вопрос 1
Давайте рассмотрим возможные причины, по которым ваш плагин для Paper может не загружаться. Ниже приведены несколько моментов, которые стоит проверить:

1. **Файл plugin.yml**:
   - Убедитесь, что путь к классу `main` указан правильно. В вашем случае путь должен соответствовать структуре пакетов. Убедитесь, что в разделе `main` указано именно `me.name.Plugin.Plugin`, и что класс `Plugin` действительно находится в пакете `me.name.Plugin`.
   - Проверьте правильность форматирования файла `plugin.yml`. В YAML пробелы имеют значение. Например, строки с массивами, как `authors` и `description`, должны быть правильно отформатированы. Попробуйте заменить `authors: [ name]` на `authors: [name]` (убрав пробелы).
   - По умолчанию `prefix` не является обязательным полем, но, если вы его используете в коде, убедитесь, что вы его нигде не забыли.

2. **Проблемы с зависимостями**:
   - В случае, если ваш плагин зависит от других плагинов, не забудьте указать их в `plugin.yml` с помощью `softdepend` или `depend`.

3. **Настройки окружения**:
   - Убедитесь, что вы используете правильную версию API, соответствующую версии сервера Paper, на котором вы тестируете плагин. Например, если у вас стоит `api-version: '1.21'`, убедитесь, что ваш сервер работает на версии 1.21.

4. **Проверка сборки плагина**:
   - Убедитесь, что ваш плагин корректно собирается. Вызов команды сборки (например, `gradle build` или `mvn package`, в зависимости от того, какой инструмент вы используете) должен завершаться без ошибок.
   - Проверьте, что JAR-файл плагина находится в папке `plugins` сервера и что он не поврежден (например, попробуйте открыть его с помощью архиватора).

5. **Логи сервера**:
   - Посмотрите логи сервера на наличие ошибок, связанных с загрузкой плагина. Логи могут находиться в папке `logs` вашего сервера. Если там есть ошибки, они могут дать подсказку о том, что пошло не так.

6. **Тестирование с другими плагинами**:
   - Попробуйте временно удалить другие плагины, чтобы убедиться, что проблема не связана с конфликтами или с установленными зависимостями.

Если после всех этих шагов ваш плагин все еще не работает, попробуйте минимизировать код, удалив несущественные части, чтобы найти причину проблемы. Также полезным может оказаться создание простейшего плагина с минимальным функционалом, чтобы проверить, работает ли процесс сборки и установки вообще.
Похожие вопросы