1 урок от кросовка по bukkit api

1 урок от кросовка по bukkit api

krosov_ok

1. Открываем IntelliJ IDEA и создаём новый проект.  

  Видим начальный класс:

package ru.krosovok.krosovokplayerjoin;

import org.bukkit.plugin.java.JavaPlugin;

public final class KrosovokPlayerJoin extends JavaPlugin {

    @Override
    public void onEnable() {
        // Plugin startup logic

    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }
}


Задача:

Плагин должен:  

- Приветствовать игрока при входе на сервер сообщением "Добро пожаловать, [имя]!".  

- Выдавать 52 алмаза при входе.  


2. Что делаем:  

  - Создаём обработчик события PlayerJoinEvent для перехвата входа игрока.  

  - Пишем логику:  

   - Сообщение в чат: player.sendMessage("Добро пожаловать на сервер, " + player.getName() + "!");  

   - Создаём предмет: ItemStack diamonds = new ItemStack(Material.DIAMOND, 52);

   - Добавляем в инвентарь: player.getInventory().addItem(diamonds);

   - Уведомляем: player.sendMessage("Вы получили 52 алмаза!");  


3. Итоговый код:

package ru.krosovok.krosovokplayerjoin;

import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.event.Listener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.entity.Player;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;

public final class KrosovokPlayerJoin extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
        getLogger().info("Плагин приветствия игроков включен!");
    }

    @Override
    public void onDisable() {
        getLogger().info("Плагин приветствия игроков выключен!");
    }

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {
        Player player = event.getPlayer();
        player.sendMessage("Добро пожаловать на сервер, " + player.getName() + "!");
        
        ItemStack diamonds = new ItemStack(Material.DIAMOND, 52);

        player.getInventory().addItem(diamonds);
        player.sendMessage("Вы получили 52 алмаза в подарок!");
    }
}



Report Page