Hola! Este es uno de los primeros tutoriales sobre java que hare, solo los hago por estar aburrido sinceramente. Pero bueno. Para crear un plugin de spigot/bukkit, necesitaras lo siguiente:
- Eclipse Java IDE for Java developers (tiene que ser ese)
- Spigot 1.8.8, y la Javadoc de Spigot/bukkit. En mi caso usare la de Spigot
1- Crear un nuevo proyecto "Java Proyect". Ningun otro.
2- Una vez creado, vamos a darle click derecho, propiedades, nos vamos a Javadoc Location y pegamos esto:
https://hub.spigotmc.org/javadocs/spigot/overview-summary.html
Luego, nos vamos a Java Build Path y damos donde dice "Add External JARs" o algo asi por el estilo y seleccionamos el jar de Spigot descargado.
3- Creamos un paquete. El paquete no puede ser org.bukkit. ni nada de eso. Para hacerlo, damos click derecho en src y damos en New -> Package.
4- Seleccionamos el nombre del paquete. Lo adecuado seria algo asi: me.pabsgauna
5- Creamos una clase, solo que ahora esta vez debes de darle a src, le damos a el paquete q hemos creado.
6- Ahora si. Empezamos con lo dificil. Antes, explicare algunas cosas.
Los paquetes nunca los entendi muy bien pero yo los uso por cada clase. No me pregunten porque, pero lo que tengo en mi eclipse es un lio.
No lo explicare muy bien. obviamente si haria un video con voz, si se entenderia mucho mejor.
7- Lo primero que haremos sera poner alado de "public class <Nombre de la clase>" un "extends JavaPlugin". En eclipse cuando tengamos un error aparecera una cruz, en este caso, pasaremos el cursor encima y daremos en importar JavaPlugin. Con eso ya se arreglara.
8- Empezaremos con el mensaje de onLoad, onDisable y onEnable, para todo sera lo mismo.
public class Main extends JavaPlugin{
public void onEnable(){
La primera parte deberia quedar asi.
9- Luego, presionamos TAB para poner lo siguiente:
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateCodes('&', "Y el mensaje que deseas mandar."));
En caso de que aparezca algun error, importamos. Yo dejare una lista de imports de lo que siempre uso
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPlugin;
Si les aparece algo con un "!" o una advertencia mejor dicho, eliminan el import.
Para crear el onLoad y onDisable es lo mismo.
public void onDisable(){
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&2[&aTrollMe&2] &fTrollMe has been disabled! Enabled with version 1.1.0"));
}
--------------------------------------------------------
public void onLoad(){
Bukkit.getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', "&2[&aTrollMe&2] &fTrollMe is loading with version 1.1.0"));
}
Asi seria eso.
Ahora, si deseamos crear una config, daremos click derecho en el Java Proyect y daremos en New File. el nombre del archivo sera "config.yml" respetando la imprenta minuscula.
En la clase principal, donde dice onEnable, anadiremos esto, para que el plugin lea el archivo.
getConfig().options().copyDefaults(true);
saveConfig();
En caso de que no sean vagos, y que quieran hacer un archivo messages.yml y escribir mucho, o copiar y pegar o cosas asi BUENO YO QUE SE >:v. Para hacer el messages.yml yo lo hago asi, click derecho en Java Proyect, New File y messages.yml. Luego, al final de la clase principal pongo esto:
Código:
public FileConfiguration getMessages(){
if(messages == null){
reloadMessages();
}
return messages;
}
public void reloadMessages(){
if(messages == null){
messagesFile = new File(getDataFolder(),"messages.yml");
}
messages = YamlConfiguration.loadConfiguration(messagesFile);
Reader defConfigStream;
try{
defConfigStream = new InputStreamReader(this.getResource("messages.yml"),"UTF8");
if(defConfigStream != null){
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
messages.setDefaults(defConfig);
}
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}
}
public void saveMessages(){
try{
messages.save(messagesFile);
}catch(IOException e){
e.printStackTrace();
}
}
public void registerMessages(){
messagesFile = new File(this.getDataFolder(),"messages.yml");
if(!messagesFile.exists()){
this.getMessages().options().copyDefaults(true);
saveMessages();
}
}
}
Y bueno, en fin, esa seria la creacion de la clase principal. Se que me explico horrible, pero si copian y pegan, miran, analizan, piensan como esta hecho iran entendiendo. Yo aprendi asi. Tambien pueden buscar en yt si me explico para la mona gimenez :v.