Помогите Как добавить в свой рейепт крафта свои предметы

Skeletonfirework

Ньюби
Баллы
1
Помогите, как добавить в свой крафт предмет которого нет в ванильном майнкрафте, то есть предмет который был создан с помощью метода:

ItemStack item = new ItemStack(Material.STICK);
ItemMeta meta = item.getItemMeta();

Метод крафта:
ShapedRecipe s = new ShapedRecipe(item);
S.shape(new String[] {"A ", "A ", "A "});
S.setIngredient('A', Material.STICK);
Bukkit.getserver().addRecipe(s):

Как в выделеной строке в пункте выбора материала добавить свой предмет, например предмет item?
 
Код:
    public static void addRecipe(Plugin plugin, ItemStack stack, ItemStack[] istack) {
        ShapedRecipe rc = new ShapedRecipe(new NamespacedKey(plugin, UUID.randomUUID().toString()), stack);
        rc.shape("012", "345", "678");
        for (int i = 0; i < 9; i++) {
            if (istack[i] != null && istack[i].getType() != Material.AIR)
                rc.setIngredient(String.valueOf(i).toCharArray()[0], istack[i].getType());
        }
        Bukkit.getServer().addRecipe(rc);
    }
 
Чем это круче?

Код:
        for (char c = '0'; c < '9'; c++) {
            if (istack[c-'0'] != null && istack[c-'0'].getType() != Material.AIR)
                rc.setIngredient(c, istack[c-'0'].getType());
        }
Нет костыльного преобразования цифры в char - String.valueOf(i).toCharArray()[0]
 
Что за костыли, вместо
for (int i = 0; i < 9; i++)
можно прогнать
for (char c = '0'; c < '9'; c++)
> Читаешь книжку про Java
> Создаешь сайт, ставишь шаблон из паблика, из портфолио только прочитанные книжки по Java
> Все вокруг теперь пользуют костыли
> Даже если видишь i++, кричишь, что это костыли, ведь есть ++i
 
> Читаешь книжку про Java
> Создаешь сайт, ставишь шаблон из паблика, из портфолио только прочитанные книжки по Java
> Все вокруг теперь пользуют костыли
> Даже если видишь i++, кричишь, что это костыли, ведь есть ++i
К чему ты это написал?
 
Как сайт и ост. относится к этому?

Высер тут только твой виден, я за чистоту кода.
По твоему цикл по char - это чистый код? МОжет ты еще в плюсах будешь к элементам массива через i[array] обращаться?
 
Типо круче костыльное преобразования чара в инт?
В каком месте char преобразовывается в int? char это численный тип, его можно инкрементить, он не будет преобразовываться при этом в int.
 
И что же тебя смущает в цикле из чаров?)
Во время чтения это похоже на магию. А никто не любит читать магию, всем нужен понятный код. Первый варик никак не является костылем, просто потому, что он подробнее и понятнее при беглом чтении. Так что оставь свой низкий флекс при себе.
 
Во время чтения это похоже на магию. А никто не любит читать магию, всем нужен понятный код. Первый варик никак не является костылем, просто потому, что он подробнее и понятнее при беглом чтении. Так что оставь свой низкий флекс при себе.
Чет бред написал, никакой магии там нет, нормально се читается, это уже твои комплексы. Даже если там интовый for, то преобразование через String.valueOf(i).toCharArray()[0] это все равно костыль, нужно использовать
Character.digit(i, 10).
 
Чет бред написал, никакой магии там нет, нормально се читается, это уже твои комплексы. Даже если там интовый for, то преобразование через String.valueOf(i).toCharArray()[0] это все равно костыль, нужно использовать
Character.digit(i, 10).
А это варик. Так короче. Сяпки.

Код:
    public static void addRecipe(Plugin plugin, ItemStack stack, ItemStack[] istack) {
        ShapedRecipe rc = new ShapedRecipe(new NamespacedKey(plugin, UUID.randomUUID().toString()), stack);
        rc.shape("012", "345", "678");
        for (int i = 0; i < 9; i++) {
            if (istack[i] != null && istack[i].getType() != Material.AIR)
                rc.setIngredient(Character.forDigit(i, 10), istack[i].getType());
        }
        Bukkit.getServer().addRecipe(rc);
    }
 
А это варик. Так короче. Сяпки.

Код:
    public static void addRecipe(Plugin plugin, ItemStack stack, ItemStack[] istack) {
        ShapedRecipe rc = new ShapedRecipe(new NamespacedKey(plugin, UUID.randomUUID().toString()), stack);
        rc.shape("012", "345", "678");
        for (int i = 0; i < 9; i++) {
            if (istack[i] != null && istack[i].getType() != Material.AIR)
                rc.setIngredient(Character.forDigit(i, 10), istack[i].getType());
        }
        Bukkit.getServer().addRecipe(rc);
    }
Ну да, forDigit, digit это наоборот из чара в инт.
 
Назад
Верх