Перейти к содержанию

Как создать первый свой плагин на ядро PaperMC 1.20.4?


Рекомендуемые сообщения

В теме 6 сообщений

Как создать плагин для серверов PaperMC (Minecraft) ? Сейчас вам расскажу.

Что вам надо скачать -

  1. Java
  2. Jdk 17
  3. Любой редактор кода (даже блокнот)
  4. Знание java
  5. Server paperMC 1.20.4

Давайте начнем.

Зайдите в Intel IDEA и создайте новый проект - Gradle, kotlin.

Подождите когда он скачается (Или забилдится). Если в "молотке" будет написано "Bild successful" то поставьте этот код в файл gradle (он открыт по умолчанию) -

plugins {
    id("java")
    id("com.github.johnrengelman.shadow") version "8.1.1"
}

group = "org.genamistik"
version = "1.0"

repositories {
    mavenCentral()
    maven {
        url = uri("https://repo.papermc.io/repository/maven-public/")
    }
}

dependencies {
    compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT")
    testImplementation(platform("org.junit:junit-bom:5.10.0"))
    testImplementation("org.junit.jupiter:junit-jupiter")
}

tasks.named<Test>("test") {
    useJUnitPlatform()
}

tasks.named<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar>("shadowJar") {
    archiveFileName.set("nameJar-${version}.jar")
}

tasks.named("build") {
    dependsOn(tasks.named("shadowJar"))
}

ВАЖНО - измените группу на вашу, в место "nameJar" название вашего выходного файла.

Что ж, напишем первый код на java -

package com.example; // Ваш пакет

import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {
    
    @Override
    public void onEnable() {
        getLogger().info("Плагин успешно запущен!");
        // Здесь инициализация вашего плагина
    }
    
    @Override
    public void onDisable() {
        getLogger().info("Плагин выключен");
    }
}

Что он делает? При запуске сервера от имени файла будет в логах писаться "[PluginName] Плагин успешно запущен". PS - возможны проблемы с кодировкой!

Но нам нужно файл yml "plugin.yml" -

name: YourPluginName
version: 1.0
main: com.example.Main
api-version: 1.20
description: Описание вашего плагина
author: Ваше имя

После, плагин должен работать.

Чтоб собрать плагин нужно написать в командную строку команды - 

  • ./gradlew build - соберет плагин и создаст shadow JAR

  • ./gradlew shadowJar - только создаст fat JAR с зависимостями

Собранный плагин будет находиться в build/libs/вашJarФайл-1.0.jar

Как создать команду?

для этого мы создадим команду /test

В наш главный класс напишем следующие -

@Override
public void onEnable() {
    getCommand("test").setExecutor((sender, command, label, args) -> {
        if (sender instanceof Player) {
            Player player = (Player) sender;
            player.sendMessage("Тестовая команда работает!");
            return true;
        }
        return false;
    });
}

PS - возможны проблемы с кодировкой!

После нам нужно добавить в plugin.xml

commands:
  test:
    description: Тестовая команда
    usage: /test

Пример слушателя событий

Добавим в наш класс (не в onEnable!) событие при котором если игрок зайдет в мир то ему выведет сообщение Добро пожаловать {ник игрока}! -

@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) { // PlayerJoinEvent - Зашел ли игрок
    event.setJoinMessage("Добро пожаловать, " + event.getPlayer().getName() + "!"); // вывод в чат
}

После зарегистрируйте его в onEnable()

getServer().getPluginManager().registerEvents(this, this);

После этого забилдите проект.

Как мне проверить работу плагина?

Для начало скачайте версию PaperMC 1.20.4

После напишите в командной строке - java -jar paper-1.20.4.jar

У вас в папке появится файл elua.txt, поставьте true за место false и напишите заново команду

После откройте файл server.properties и найдите online-mode и замените true -> false.

Поместите сой плагин в папку plugins

После напишите команду - "C:\Program Files\Java\jdk-17\bin\java.exe" -Xmx2G -jar paper-1.20.4-499.jar --nogui

Если в логах будет написано - "[PluginName] Плагин успешно запущен" то у вас он успешно запустился

После зайдите в майнкрафт 1.20.4 и создайте сервер с доменом - localhost:25565

И у вас все должно работать.

Удачной разработки плагинов!

Ссылка на комментарий
Поделиться на другие сайты

РЕбЯТА я забыл написать что - Создайте файл src/main/resources/plugin.yml с метаданными плагина!!! Извиняюсь что пишу это в коментариях

Ссылка на комментарий
Поделиться на другие сайты

у intelij idea есть плагин minecraft development, он автоматически создаст проект, но он недоступен на территории РФ и РБ (нужно будет обходить)

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Shomen сказал:

у intelij idea есть плагин minecraft development, он автоматически создаст проект, но он недоступен на территории РФ и РБ (нужно будет обходить)

Он забанен для РФ)

Даже проблемы с ВПН щас. Пусть немного учатся ручками это делать, как когда то было еще писали в eclipse.

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, TikovKa сказал:

Пусть немного учатся ручками это делать, как когда то было еще писали в eclipse.

для этого надо нормальный гайд, а не это

Ссылка на комментарий
Поделиться на другие сайты

29 минут назад, Shomen сказал:

для этого надо нормальный гайд, а не это

Спорить не буду, гайд более детальный нужен. Там есть и более тонкие настройки. Да и уж, помимо Gradle, возможности использовать стандартные утилиты самой IDEA или того же maven.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...