Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Стартап [ПЕРЕВОД] Пример рецепта

Переводить ли статьи со SpigotMC дальше?

  • Да — это нужно русскому сообществу разработчиков.

    5 голосов 50,0%
  • Да — статью на русском читать легче, чем на английском.

    3 голосов 30,0%
  • Нет — это уже неактуально и является "баяном".

    2 голосов 20,0%
  • Нет — подавляющее большинство разработчиков знают английский.

    2 голосов 20,0%
  • Да — другое.

    1 голосов 10,0%
  • Нет — другое.

    0 голосов 0,0%

  • Опрос закрыт .

Dexel

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
SiRiuS_OSiRiuS
СВОИ РЕЦЕПТЫ
Создание собственных рецептов и их регистрация при помощи Bukkit.
----------------------------------------------------------------------------------------
​
В этой теме мы покажем вам, как создавать рецепты для крафта своих предметов. Мы будем создавать изумрудный меч на основе алмазного.

Что вам понадобится
Сегодня нам понадобится класс, наследующий JavaPlugin, с наличием метода onEnable().

Переменные
Давайте начнём. В общей сложности нам понадобится 3 переменных в методе onEnable().
Java:
// Наша собственная переменная, которую мы будем изменять.
ItemStack item = new ItemStack(Material.DIAMOND_SWORD);

// Meta алмазного меча, где мы можем изменить имя и параметры предмета.
ItemMeta meta = item.getItemMeta();

// Мы проинициализируем следующую переменную после того, как сменим параметры меча
Здесь мы модифицируем параметры меча, чтобы он отличался от обычных алмазных мечей.
JavaScript:
// Давайте установим предмету название.
// Вместо символа "§" вы можете использовать ChatColor.<цвет>
meta.setDisplayName("§aИзумрудный меч");

// Установить meta меча на изменённую meta.
item.setItemMeta(meta);

// Добавить любое зачарование, чтобы сделать изумрудный меч особенным
// В этом случае мы добавляем зачарование, которое изменяет урон на пятый уровень
// 5 уровень представлен вторым параметром. Вы можете сменить его на всё, что совместимо с мечом
item.addEnchantment(Enchantment.DAMAGE_ALL, 5);
Создание рецепта
Отсюда начинается веселье. Здесь создаётся и используется наша третья переменная.
Java:
// Создаём переменную нашего рецепта
ShapedRecipe recipe = new ShapedRecipe(item);

// Здесь мы установим места. E и S могут обозначать что угодно, и символы могут быть любыми. Пробел означает отсутствие предмета в данной ячейке. Осторожно — чувствительно к регистру.
recipe.shape(" E ", " E ", " S ");

// Установим, что обозначают символы.
// E = Изумруд, S = Палка
recipe.setIngredient('E', Material.EMERALD);
recipe.setIngredient('S', Material.STICK);

// Наконец, добавим рецепт в рецепты Bukkit
Bukkit.addRecipe(recipe);

Всё готово!
Вот вы и завершили создание собственного рецепта.
Всё вместе должно выглядеть примерно так:

Java:
   public void onEnable() {
        // Наша собственная переменная, которую мы будем изменять.
        ItemStack item = new ItemStack(Material.DIAMOND_SWORD);

        // Meta алмазного меча, где мы можем изменить имя и параметры предмета.
        ItemMeta meta = item.getItemMeta();

        // Мы проинициализируем следующую переменную после того, как сменим параметры меча

        // Установим предмету название.
        // Вместо символа "§" вы можете использовать ChatColor.<цвет>
        meta.setDisplayName("§aИзумрудный меч");

        // Установить meta меча на изменённую meta.
        item.setItemMeta(meta);

        // Добаdить любое зачарование, чтобы сделать изумрудный меч особенным
        // В этом случае мы добавляем зачарование, которое изменяет урон на пятый уровень
        // 5 уровень представлен вторым параметром. Вы можете сменить его на всё, что совместимо с мечом
        item.addEnchantment(Enchantment.DAMAGE_ALL, 5);
      
        // Создаём переменную нашего рецепта
        ShapedRecipe recipe = new ShapedRecipe(item);

        // Здесь мы установим места. E и S могут обозначать что угодно, и символы могут быть любыми. Пробел означает отсутствие предмета в данной ячейке. Осторожно — чувствительно к регистру.
        recipe.shape(" E ", " E ", " S ");

        // Установим, что обозначают символы.
        // E = Изумруд, S = Палка
        recipe.setIngredient('E', Material.EMERALD);
        recipe.setIngredient('S', Material.STICK);

        // Наконец, добавим рецепт в рецепты Bukkit
        Bukkit.addRecipe(recipe);
    }
И убедитесь, что все ваши import'ы идут из org.bukkit.
Вот правильный список import'ов:

Java:
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.*********ventory.ItemStack;
import org.*********ventory.ShapedRecipe;
import org.*********ventory.meta.ItemMeta;
И убедитесь, что ваш главный класс с кодом внутри onEnable() наследует JavaPlugin из org.bukkit.plugin.java.javaPlugin;

Исходный ресурс взят из маленьких плагинов md-5 на GitHub:
https://github.com/md-5/SmallPlugin...word/src/main/java/net/md_5/EmeraldSword.java

Просьба уведомить в ЛС о наличии смысловых ошибок/ошибок в переводе или опечаток.
 
Последнее редактирование:
Идея хорошая, переводишь хорошо, НО:
Раз уж делаешь, сделай отдельную тему, и в этой отдельной теме выкладывай посты-переводы,
а в шапке - ссылки на посты переводы (как оглавление).
Гораздо удобнее будет
После окончания перевода достаточного количества постов я создам тему, где соберу ссылки на переведённые темы.
 
Отличная идея, переводи дальше!
 
а если "E" это любой вид досок и Material это брёвна типа "E"?
 

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

Назад
Верх