"> Foro - [Tutorial] Cómo crear recetas de crafteo personalizadas. en Desarrollo de Plugins - Page 1 of 1
Junio 14, 2021, 04:45:03 am
Visitante


Autor Tema:  [Tutorial] Cómo crear recetas de crafteo personalizadas.  (Leído 4896 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Agosto 16, 2015, 11:36:05 pm

Eliaseeg




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Probamos por lógica, pero ideamos por intuición.
  • Actividad

  • 0%
  • Logros

Más información

Holoo \o/.

Pues, desde hace unos meses que no he posteado algo en este foro así que pensé en hacer un tutorial sobre cómo hacer recetas personalizadas para todas aquellas personas que vienen empezando y/o tienen la curiosidad de saber cómo se hace una receta de un objeto.

Quiero destacar para empezar que NO se añade el item al juego en sí, en realidad sólo crea otra manera distinta de craftear X objeto, entonces, en caso de que quieras hacer un nuevo item en el juego, te sugiero hacer un resource pack editando algún objeto que nadie use y/o pueda conseguir. Un ejemplo claro es el huevo de dragón, puedes cambiar la textura y ponerlo como un nuevo objeto utilizando tus propias recetas de crafteo.



La mesa de crafteo nos da 9 slots para craftear cualquier tipo de item, esto lo tenemos claro desde un principio ya. Nuestro sistema podría utilizar el crafteo del inventario o la mesa de crafteo dependiendo la cantidad de slots que ocupemos en nuestra receta.





Código: [Seleccionar]
@Override
public void onEnable() {
    ItemStack ironChest = new ItemStack(Material.CHEST);
    ShapedRecipe recipe = new ShapedRecipe(new ItemStack(ironChest));

Hasta aquí todo comprensible ¿no? Registramos los eventos en el onEnable y creamos una variable ItemStack con el nombre ironChest que será el item que se crafteará con nuestra receta, en este caso yo escogí que se le diera un cofre después de hacer nuestra receta que detallaré después.


Código: [Seleccionar]
ShapedRecipe recipe = new ShapedRecipe(new ItemStack(ironChest));
recipe.shape(new String[] {"PPP", "POP", "PPP"});
recipe.setIngredient('P', Material.IRON_INGOT);
recipe.setIngredient('O', Material.CHEST);
Bukkit.getServer().addRecipe(recipe);

Aquí es donde empieza el rollo. Creamos una nueva receta con el ItemStack que habiamos definido previamente, después viene el lío de la combinación de las recetas. Explicaré a detalle cómo funciona.

[Receta].shape recibe como argumento un Array de 3 Strings, el cual es una lista de las 3 combinaciones de la receta que queramos para el objeto, dentro del String vienen los identificadores, los cuales definimos abajo con el [Receta].setIngredient, donde colocamos el identificador como primer argumento y el Material como segundo argumento. La forma en la que funcionan las recetas e identificadores es la siguiente:




Vemos que al principio se cumple la condición, que es PPP, también en la segunda que es POP, y la tercera que es PPP y esos son los identificadores. Con esto ya estaría la receta, la cual es el segundo argumento que le dimos al identificador, en nuestro caso debería quedar así:




Y eso básicamente sería todo. Para las personas que son vagas y quieran saber cuál es el código completo... Aquí esta:
Código: [Seleccionar]
package com.eliaseeg.craftingRecipe;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.ShapedRecipe;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
 
public class main extends JavaPlugin {
    public ItemStack ironChest;
 
    @Override
    public void onEnable() {    
        ItemStack ironChest = new ItemStack(Material.CHEST);    
        ShapedRecipe recipe = new ShapedRecipe(new ItemStack(ironChest));
        recipe.shape(new String[] {"PPP", "POP", "PPP"});
        recipe.setIngredient('P', Material.IRON_INGOT);
        recipe.setIngredient('O', Material.CHEST);
        Bukkit.getServer().addRecipe(recipe);
    }
    
    @Override
    public void onDisable() {
        getServer().clearRecipes();
    }
}

Tutorial 100% hecho por mi, espero que se haya entendido perfectamente y que puedan hacer cosas chulas con este sistema de recetas. Un saludo, adiós :].

Linkback: https://minecraftmin.net/index.php?topic=11059.0
« Última modificación: Agosto 16, 2015, 11:39:52 pm por Eliaseeg »


Respuesta #1 Septiembre 13, 2015, 04:23:01 am

gaelito




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    MinecraftMin, el mejor foro Español!
  • Actividad

  • 0%
  • Logros

Más información

Interesante. Tendo una duda. Se pueden hacer recetas en las que las posiciones de los objectos no sean importantes?
MinVip en MinPlay.




Respuesta #2 Septiembre 16, 2015, 01:21:05 am

Eliaseeg




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Probamos por lógica, pero ideamos por intuición.
  • Actividad

  • 0%
  • Logros

Más información

De poder se puede, pero deberías hacer otra receta por cada crafteo y es algo más tedioso y un poco sucio para el código fuente.


Respuesta #3 Septiembre 29, 2015, 07:28:58 pm

Workod




  • Desconectado

  • *

    • *
    • *
    • *
  • Actividad

  • 0%
  • Logros

Más información

Spoiler para ocultar:

Como tengo poca o nula idea sobre esto... ¿En qué tipo de servidores funciona?
Bukkit, Spigot, Sponge...

Ya da igual, leyendo el código ví "Bukkit" así que fuck off




Mi mayor post: https://goo.gl/dQEx9M  ||  Skype: ljavaa  || Ex-Redactor y Ex-Colaborador Oficial  || Co-fundador de MysticMakers ||  Amante de la informática y los videojuegos  ||  ¡No dudes en mandarme MP si necesitas ayuda!

Spoiler para Cosas Random:





Respuesta #4 Octubre 01, 2015, 05:59:27 pm

Eliaseeg




  • Desconectado

  • *

    • *
    • *
    • *
  • Mensaje personal
    Probamos por lógica, pero ideamos por intuición.
  • Actividad

  • 0%
  • Logros

Más información

Spoiler para ocultar:

Como tengo poca o nula idea sobre esto... ¿En qué tipo de servidores funciona?
Bukkit, Spigot, Sponge...

Ya da igual, leyendo el código ví "Bukkit" así que fuck off
El tutorial lo hice teniendo en mente Spigot, pero como Spigot es como un fork de Bukkit, debería funcionar también en servidores Bukkit. Sponge no tengo mucha idea si son nuevos métodos o no, así que no te puedo responder esa duda.





Share via delicious Share via digg Share via facebook Share via furl Share via linkedin Share via myspace Share via reddit Share via stumble Share via technorati Share via twitter

xx
Me gustaría saber como crear plugins.

Iniciado por Plubio007

3 Respuestas
2059 Vistas
Último mensaje Julio 11, 2014, 11:33:15 pm
por Frekit
xx
Crear nuevo proyecto en NeatBeans | Pt. 1

Iniciado por ChikenGamer

11 Respuestas
4758 Vistas
Último mensaje Junio 15, 2014, 09:19:56 am
por Bluxter
xx
Nesecito A Alguien que sepa crear y programar plugins

Iniciado por Walrex_125

1 Respuestas
2736 Vistas
Último mensaje Marzo 21, 2018, 01:30:17 am
por AlexBanPer
xx
Crear nuevo proyecto en NeatBeans | Primer plugin "Hola mundo!" | Pt. 2

Iniciado por ChikenGamer

8 Respuestas
3802 Vistas
Último mensaje Junio 15, 2014, 01:54:18 pm
por Alfomega