Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Туториал Первый плагин!

Тема в разделе "Sponge", создана пользователем Jourdan, 17 окт 2017.

?

Делать больше туториалов?

  1. Да

    5 голосов
    100,0%
  2. Нет

    0 голосов
    0,0%
  1. Автор темы
    Jourdan

    Jourdan Участник Пользователь

    Баллы:
    31
    Запускаем IDE и выбираем проект Maven
    [​IMG]
    Заполняем описание плагина:
    [​IMG]
    1. GroupId: ID группы плагина. Если у вас есть домен, то нужно написать домен в обратном порядке, например:
    • java.com - com.java
    • spongeapi.com - com.spongeapi
    Если нет домена, то можно использовать свой ник на github, например:
    • XakepSDK - com.github.xakepsdk
    • GreWeMa - com.github.grewema

    2. ArtifactId: Название плагина.
    3. Version: Версия
    Все 3 поля должны быть на английском!

    Далее нажмите next и finish. Создастся Maven проект с заданными данными.
    [​IMG]
    Как вы видите, в pom описании проекта записаны те данные, что мы указали. Их можно сменить в любой момент.

    Далее нужно подключить SpongeAPI и указать Java 8 минимальной версией.
    Код:
        <properties>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
        </properties>
       
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                </plugin>
            </plugins>
        </build>
    
        <repositories>
            <repository>
                <id>sponge</id>
                <url>https://repo.spongepowered.org/maven</url>
            </repository>
        </repositories>
    
        <dependencies>
            <dependency>
                <groupId>org.spongepowered</groupId>
                <artifactId>spongeapi</artifactId>
                <version>7.0.0-SNAPSHOT</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    
    7.0.0-SNAPSHOT - версия API.
    В конце статьи небольшой список версий.

    [​IMG]
    Как Вы видите, мы подключили репозиторий sponge в блоке "repositories" и подключили SpongeAPI в блоке "dependencies".
    Если бы SpongeAPI был в репозитории Maven Central, то нам не нужно было бы подключать сторонний репозиторий, а просто записать блок "dependency" в блоке "dependencies".

    Теперь нужно создать главный класс плагина.
    [​IMG]

    Главный класс создали, теперь напишем простенький плагин, который выведет "Hello World" в консоли во время запуска сервера.

    1. Нужно указать, что Sponge должен загружать наш главный класс как плагин, для этого нужно аннотировать главный класс аннотацией "@Plugin"
    [​IMG]
    1. id - обязательный параметр. Должен начинаться с латинской маленькой буквы. Разрешены латинские буквы, цифры и знак подчеркивания("_"). Все остальные параметры опциональные.
    2. name - название плагина.
    3. version - версия плагина.
    4. description - описание плагина
    5. url - ссылка на сайт плагина
    6. authors - авторы плагина

    Основа для плагина готова!

    Теперь можно вывести наше сообщение!
    Код:
        @Inject
        private Logger logger;
    
        @Listener
        public void onGameInit(GameInitializationEvent event) {
            logger.info("Hello World!");
        }
    
    [​IMG]

    Скомпилируем плагин, с помощью Maven:
    [​IMG]
    Жмем на "Package" и ждём, компиляция занимает на моем компьютере примерно 1 секунду. Первая компиляция может занять некоторое время, так как maven будет скачивать зависимости в локальный репозиторий.
    Если компиляция пройдет успешно, в выводе вы уведите что-то вроде:
    [​IMG]
    В папке проекта появится папка "target", там можно будет взять готовый jar плагина.
    [​IMG]

    Копируем "SimplePlugin-0.1-SNAPSHOT.jar" в папку с плагинами ("mods" по-умолчанию) и запускаем сервер!
    [​IMG]
    Третье сообщение - от нашего плагина!

    Но ведь это не интересно? Давайте выведем сообщение в чат, когда игрок зайдёт?

    Достаточно добавить еще один "@Listener" и всё!
    К примеру, мы выведем: Привет, "%username%" синим цветом? Проще пареной репы!
    Код:
        @Listener
        public void onPlayerJoin(ClientConnectionEvent.Join event, @Root Player player) {
            String msg = "Привет, " + player.getName();
            player.sendMessage(Text.builder(msg).color(TextColors.BLUE).build());
        }
    
    [​IMG]

    Как видите, всё работает!
    [​IMG]
    Исходники
    Источник

    Больше туториалов по SpongeAPI на русском языке Вы можете найти здесь: https://spongeapi.com/
     
  2. Mr Hosting
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Лойс за рипчик.
     
  4. demkom

    demkom Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    G_demkom_G
    Луек
     

Поделиться этой страницей