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

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Dexel, 28 май 2017.

?

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

Голосование закрыто 4 июн 2017.
  1. Да — это нужно русскому сообществу разработчиков.

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

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

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

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

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

    0 голосов
    0,0%
Можно выбрать сразу несколько вариантов.
  1. Автор темы
    Dexel

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

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

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

    Переменные
    Давайте начнём. В общей сложности нам понадобится 3 переменных в методе onEnable().
    Код:
    // Наша собственная переменная, которую мы будем изменять.
    ItemStack item = new ItemStack(Material.DIAMOND_SWORD);
    
    // Meta алмазного меча, где мы можем изменить имя и параметры предмета.
    ItemMeta meta = item.getItemMeta();
    
    // Мы проинициализируем следующую переменную после того, как сменим параметры меча
    Здесь мы модифицируем параметры меча, чтобы он отличался от обычных алмазных мечей.
    Код:
    // Давайте установим предмету название.
    // Вместо символа "§" вы можете использовать ChatColor.<цвет>
    meta.setDisplayName("§aИзумрудный меч");
    
    // Установить meta меча на изменённую meta.
    item.setItemMeta(meta);
    
    // Добавить любое зачарование, чтобы сделать изумрудный меч особенным
    // В этом случае мы добавляем зачарование, которое изменяет урон на пятый уровень
    // 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);


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

    Код:
       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'ов:

    Код:
    import org.bukkit.Material;
    import org.bukkit.enchantments.Enchantment;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.ShapedRecipe;
    import org.bukkit.inventory.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

    Просьба уведомить в ЛС о наличии смысловых ошибок/ошибок в переводе или опечаток.
     
    Последнее редактирование: 28 май 2017
  2. Хостинг MineCraft
    <
  3. Mr_RoboMan

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

    Баллы:
    123
    Идея хорошая, переводишь хорошо, НО:
    Раз уж делаешь, сделай отдельную тему, и в этой отдельной теме выкладывай посты-переводы,
    а в шапке - ссылки на посты переводы (как оглавление).
    Гораздо удобнее будет
     
  4. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    К чему велосипедить? Своё написать фантазии не хватило?
     
  5. Автор темы
    Dexel

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

    Баллы:
    76
    Skype:
    the_osirius
    После окончания перевода достаточного количества постов я создам тему, где соберу ссылки на переведённые темы.
     
  6. Mihael_i

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

    Баллы:
    66
    Имя в Minecraft:
    Mihael_i
    Отличная идея, переводи дальше!
     
  7. TheZefirrkka

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

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Полностью тебя поддерживаю, продолжай!
     

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