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

Помогите Как добавить крафт [ShapedRecipe] setIngredient(char key, Material ingredient)

Тема в разделе "Разработка плагинов для новичков", создана пользователем Mr_RoboMan, 2 апр 2015.

  1. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Мне надо добавить определенный рецепт, ну я подумал добавить его в методе onEnable().
    Сделал вот такой код:
    Код:
        @Override
        public void onEnable()
        {
            logger.info(loggerPrefix + "Плагин успешно включен.");
            ItemStack itemCase = new ItemStack(Material.CHEST);
            itemCase.getItemMeta().addEnchant(Enchantment.DURABILITY, 1, true);
            itemCase.getItemMeta().setDisplayName(ChatColor.translateAlternateColorCodes('&', "&a&lОружейный кейс тиража &f&l#&1&l1"));
            ShapedRecipe recipeCase = new ShapedRecipe(itemCase);
            recipeCase.setIngredient() //Ну и щта мне тут делать?
        }
    
    Мне надо чтоб тот ItemStack крафтился так:
    PHP:
    Доска\Доска\Доска
    Доска
    \Жемчуг\Доска
    Доска
    \Доска\Доска
    Как так сделать?
     
    Последнее редактирование: 2 апр 2015
  2. Хостинг MineCraft
    <
  3. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    @marick0073 может Вы что-то посоветуете? Пробовал посмотреть сорцы вашего MyCraft но понял только про ShapedRecipes[DOUBLEPOST=1427992794,1427991114][/DOUBLEPOST]@serega6531
    @Den_Abr[DOUBLEPOST=1427992843][/DOUBLEPOST]@Bars[DOUBLEPOST=1427992925][/DOUBLEPOST]@CraftCoder
     
  4. CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Код:
    ItemStack pickaxe = new ItemStack(…);
    ShapedRecipe EmPickaxe = new ShapedRecipe(Pickaxe);
    EmPickaxe.shape("EEE", "0S0", "0S0");
    EmPickaxe.setIngredient('E', Material.EMERALD);
    EmPickaxe.setIngredient('S', Material.STICK);
    
     
  5. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Код:
    recipeCase.setIngredient('A', Material.WOOD);
    recipeCase.setIngredient('B', Material.ENDER_PEARL);
    recipeCase.shape(new String[]{"AAA", "ABA", "AAA"});
    getServer().addRecipe(recipeCase);
    
     
  6. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Ага, большое спасибо. В можно так сделать?
    recipeCase.shape("AAA", "ABA", "AAA");
     
  7. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Проверь, если не лень. Мне - лень. Приведенный мною пример - проверен, работоспособен.
     
  8. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Хотя из предыдущего примера сам понял что можно.[DOUBLEPOST=1428037264,1428037226][/DOUBLEPOST]
    Ну, учитывая что IDE сама предлагает такой вариант, думаю работать будет :D[DOUBLEPOST=1428037914][/DOUBLEPOST]Если я что-то понял, то жалуеться на setIngridient()... Что подскажете?
    HTML:
    [08:06:50] [Server thread/INFO]: Starting minecraft server version 1.7.2
    [08:06:50] [Server thread/WARN]: To start the server with more ram, launch it as "java -Xmx1024M -Xms1024M -jar minecraft_server.jar"
    [08:06:50] [Server thread/INFO]: Loading properties
    [08:06:50] [Server thread/INFO]: Default game type: SURVIVAL
    [08:06:50] [Server thread/INFO]: Generating keypair
    [08:06:51] [Server thread/INFO]: Starting Minecraft server on *:25565
    [08:06:52] [Server thread/INFO]: This server is running CraftBukkit version git-Bukkit-1.7.2-R0.3-b3020jnks (MC: 1.7.2) (Implementing API version 1.7.2-R0.3)
    [08:06:52] [Server thread/INFO]: [WarForFlag] Loading WarForFlag v1.0
    [08:06:52] [Server thread/INFO]: [MultiWorld] Loading MultiWorld v5.1.1
    [08:06:52] [Server thread/INFO]: [WorldEdit] Loading WorldEdit v5.6
    [08:06:52] [Server thread/INFO]: [VoxelSniper] Loading VoxelSniper v5.168.9-SNAPSHOT-jnks278
    [08:06:52] [Server thread/WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!
    [08:06:52] [Server thread/WARN]: The server will make no attempt to authenticate usernames. Beware.
    [08:06:52] [Server thread/WARN]: While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.
    [08:06:52] [Server thread/WARN]: To change this, set "online-mode" to "true" in the server.properties file.
    [08:06:52] [Server thread/INFO]: Preparing level "world"
    [08:06:52] [Server thread/INFO]: Preparing start region for level 0 (Seed: 8656177198364315023)
    [08:06:53] [Server thread/INFO]: Preparing spawn area: 40%
    [08:06:54] [Server thread/INFO]: Preparing spawn area: 77%
    [08:06:55] [Server thread/INFO]: Preparing start region for level 1 (Seed: 8656177198364315023)
    [08:06:55] [Server thread/INFO]: [WarForFlag] Enabling WarForFlag v1.0
    [08:06:55] [Server thread/INFO]: [RandomCase] Џ« ЈЁ гбЇҐи® ўЄ«озҐ.
    [08:06:55] [Server thread/ERROR]: Error occurred while enabling WarForFlag v1.0 (Is it up to date?)
    java.lang.IllegalArgumentException: Symbol does not appear in the shape:65
        at org.apache.commons.lang.Validate.isTrue(Validate.java:103) ~[Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at org.bukkit.inventory.ShapedRecipe.setIngredient(ShapedRecipe.java:103) ~[Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at org.bukkit.inventory.ShapedRecipe.setIngredient(ShapedRecipe.java:89) ~[Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at ua.roboman.plugin.RandomCase.onEnable(RandomCase.java:37) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:250) ~[Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:350) [Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:389) [Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugin(CraftServer.java:439) [Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.enablePlugins(CraftServer.java:375) [Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.m(MinecraftServer.java:342) [Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.g(MinecraftServer.java:319) [Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.a(MinecraftServer.java:275) [Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.DedicatedServer.init(DedicatedServer.java:175) [Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:424) [Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [Server.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    [08:06:55] [Server thread/INFO]: [MultiWorld] Enabling MultiWorld v5.1.1
    [08:06:55] [Server thread/INFO]: Preparing start region for level 2 (Seed: 4947981047443999486)
    [08:06:56] [Server thread/INFO]: Preparing start region for level 3 (Seed: 8656177198364315023)
    [08:06:57] [Server thread/INFO]: Preparing spawn area for world_nether, 40%
    [08:06:58] [Server thread/INFO]: Preparing spawn area for world_nether, 89%
    [08:06:59] [Server thread/INFO]: worlds.world
    [08:06:59] [Server thread/INFO]: worlds.world_Flat
    [08:06:59] [Server thread/INFO]: worlds.world_nether
    [08:06:59] [Server thread/INFO]: worlds.world_the_end
    [08:06:59] [Server thread/INFO]: [MultiWorld] v5.1.1 enabled.
    [08:06:59] [Server thread/INFO]: [WorldEdit] Enabling WorldEdit v5.6
    [08:06:59] [Server thread/INFO]: WEPIF: Using the Bukkit Permissions API.
    [08:06:59] [Server thread/INFO]: [VoxelSniper] Enabling VoxelSniper v5.168.9-SNAPSHOT-jnks278
    [08:06:59] [Server thread/INFO]: [VoxelSniper] Registered 75 Sniper Brushes with 149 handles.
    [08:06:59] [Server thread/INFO]: [VoxelSniper] Registered 61 LiteSniper Brushes with 124 handles.
    [08:06:59] [Server thread/INFO]: [VoxelSniper] Registered Sniper Listener.
    [08:06:59] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
    [08:07:00] [Server thread/INFO]: Done (7,690s)! For help, type "help" or "?"
    [08:07:02] [Thread-7/WARN]: Could not get information about this CraftBukkit version; perhaps you are running a custom one?: FileNotFoundException
    [08:07:09] [Thread-7/WARN]: Could not get latest artifact information: FileNotFoundException
    [08:08:20] [Server thread/INFO]: Mr_RoboMan[/127.0.0.1:64183] logged in with entity id 480 at ([world] -134.80745302520953, 66.0, 330.2991420774078)
    [08:09:40] [Server thread/INFO]: CONSOLE: Stopping the server..[m
    [08:09:40] [Server thread/INFO]: Stopping server
    [08:09:40] [Server thread/INFO]: [VoxelSniper] Disabling VoxelSniper v5.168.9-SNAPSHOT-jnks278
    [08:09:40] [Server thread/INFO]: [WorldEdit] Disabling WorldEdit v5.6
    [08:09:40] [Server thread/INFO]: [MultiWorld] Disabling MultiWorld v5.1.1
    [08:09:40] [Server thread/INFO]: [MultiWorld] Disabled.
    [08:09:40] [Server thread/INFO]: [WarForFlag] Disabling WarForFlag v1.0
    [08:09:40] [Server thread/INFO]: Saving players
    [08:09:40] [Server thread/INFO]: Mr_RoboMan lost connection: Server closed
    [08:09:40] [Server thread/INFO]: Mr_RoboMan left the game.
    [08:09:40] [Server thread/INFO]: Saving worlds
    [08:09:40] [Server thread/INFO]: Saving chunks for level 'world'/Overworld
    [08:09:42] [Server thread/INFO]: Saving chunks for level 'world_the_end'/The End
    [08:09:42] [Server thread/INFO]: Saving chunks for level 'world_Flat'/Overworld
    [08:09:43] [Server thread/INFO]: Saving chunks for level 'world_nether'/Nether
    [08:09:43] [Thread-4/INFO]: Stopping server
    [08:09:43] [Thread-4/INFO]: Saving players
    [08:09:43] [Thread-4/INFO]: Saving worlds
    [08:09:43] [Thread-4/INFO]: Saving chunks for level 'world'/Overworld
    
    [DOUBLEPOST=1428037946][/DOUBLEPOST]37 строчка:
    recipeCase.setIngredient('A', Material.WOOD);
     
    Последнее редактирование: 3 апр 2015
  9. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Я неправильно написал. Нужно поменять местами. Так:
    Код:
    recipeCase.shape(new String[]{"AAA", "ABA", "AAA"});
    recipeCase.setIngredient('A', Material.WOOD);
    recipeCase.setIngredient('B', Material.ENDER_PEARL);
    getServer().addRecipe(recipeCase);
    
     
  10. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Ага, спасибо немного заработало, только вот крафтиться обычный сундук... А в коде я ему и Lore указал и имя, и енчант... Что делать?
    Код:
        @Override
        public void onEnable()
        {
            logger.info(loggerPrefix + "Плагин успешно включен.");
            ItemStack itemCase = new ItemStack(Material.CHEST);
            itemCase.getItemMeta().addEnchant(Enchantment.DURABILITY, 1, true);
            itemCase.getItemMeta().setDisplayName(ChatColor.translateAlternateColorCodes('&', "&a&lОружейный кейс тиража &f&l#&1&l1"));
            ArrayList<String> lore = new ArrayList<String>();
            lore.add(ChatColor.translateAlternateColorCodes('&', "&a&lОружейный кейс тиража &f&l#&1&l1"));
            itemCase.getItemMeta().setLore(lore);
            ShapedRecipe recipeCase = new ShapedRecipe(itemCase);
            recipeCase.shape("AAA", "ABA", "AAA");
            recipeCase.setIngredient('A', Material.WOOD);
            recipeCase.setIngredient('B', Material.ENDER_PEARL);
            getServer().addRecipe(recipeCase);
        }
    
     
  11. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Ты неверно обрабатываешь стак изначально. Исправляй ошибки.
     
  12. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Не совсем понял..
     
  13. LaoTheLizard

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

    Баллы:
    103
    Skype:
    sgp_the_controller
    Результатом крафта ты задаешь некий стак, который перед этим ты создаешь и обрабатываешь, как тебе хочется. Проблема в том, что ты его создаешь не таким, каким он тебе нужен на выходе рецепта.
     
  14. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    RikkiLooh
    Имя в Minecraft:
    RubukkitDniwe
    После изменения свойств предмета их надо присвоить ему обратно (setItemMeta())
     
  15. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Совсем не понял... Мне чтоли ItemStack надо обрабатывать позже?
     
  16. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    Код:
    ItemStack itemCase = new ItemStack(Material.CHEST);
    ItemMeta meta = item.getItemMeta();
    meta.addEnchant(Enchantment.DURABILITY, 1, true);
    meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', "&a&lОружейный кейс тиража &f&l#&1&l1"));
    ArrayList<String> lore = new ArrayList<String>();
    lore.add(ChatColor.translateAlternateColorCodes('&', "&a&lОружейный кейс тиража &f&l#&1&l1"));
    meta.setLore(lore);
    itemCase.setItemMeta(meta);
    Вроде так.
     
  17. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Спасибо, теперь понял :D
     

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