Before you accept the loan Payday loan Where does the money go

Bukkit : Creando un Plugin para Minecraft

Jun 24

MinecraftEn entradas anteriores hablamos acerca de Bukkit un modulo para el servidor de Minecraft que permite la creación de plugins los cuales pueden interactuar con los usuarios a través de comandos o escuchar eventos producidos dentro del mundo virtual.

En esta ocasión nos daremos a la tarea de desarrollar un plugin muy sencillo que escuche el comando hello y salude al avatar replicando hello <usuario>, esto con el fin de explorar los pasos y requerimientos para el desarrollo de plugins para Minecraft.

Prerequisitos :

  • Tener instalado el NetBeans 7.0
  • Acceso a Internet
  • Acceso a un servidor de Minecraft con Bukkit instalado

Pasos :

  • Descargar la librería de desarrollo para Bukkit
    • Ir al servidor Wiki de Bukkit
      http://wiki.bukkit.org/
    • Buscar el enlace y descargar el archivo
      Bukkit API - For Developers
    • La vesion al momento de escribir estos pasos se puede descargar asi :
      wget http://ci.bukkit.org/job/dev-Bukkit/lastSuccessfulBuild/artifact/target/bukkit-0.0.1-SNAPSHOT.jar
  • Abrir el NetBeans 7.0
  • Crear un proyecto Java, del tipo Java Class Library
  • Colocarle el nombre mchelloplugin
  • Para evitar problemas con el API de Bukkit copiaremos esta dentro del proyecto,
    para que no dependa del ambiente de desarrollo y siempre quede asociado al proyecto
  • Active la opcion
    Use Dedicated Folder for Storing Libraries
  • Verifique que en la caja de dialogo aparezca
    Libraries Folder: ./lib
  • Pulse el boton Finish
  • Vamos a Libraries en el arbol del proyecto
    Click derecho y seleccionamos Add Jar/Folder
  • Buscamos el archivo bukkit-0.0.1-SNAPSHOT.jar
    lo adicionamos con la opcion Copy Libraries to Folder
  • Ahora crearemos la clase Java que implementa el Plugin
  • Vamos a Source Packages
    Click derecho y New Java Class
  • Colocamos como Class Name
    HelloPlugin
  • Colocamos como Package
    mjs.minecraft.plugin.hello
  • Pulsamos el boton Finish
  • Reemplazamos el contenido del archivo por :
package mjs.minecraft.plugin.hello;

import java.util.logging.Logger;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

public class HelloPlugin extends JavaPlugin {

    public static final Logger log = Logger.getLogger("Minecraft");    

    @Override
    public void onDisable() {
        PluginManager pluginManager = getServer().getPluginManager();
        log.info("Hello plugin has been disabled.");
    }

    @Override
    public void onEnable() {
        log.info("Hello plugin has been enabled!");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command,
        String label, String[] args) {

        if(label.equals("hello")) {
            Player player = (Player) sender;
            player.sendMessage("Hello " + player.getDisplayName());
            return true;
        }

        return false;
    }
}
  • Vamos a Source Packages y al paquete
    <default package>
    Click derecho y New Empty File
  • Colocamos como File Name
    plugin.yml
  • Pulsamos el boton Finish
  • Reemplazamos el contenido del archivo por :
name: MHello
main: mjs.minecraft.plugin.hello.HelloPlugin
version: 0.1
author: Marlon J. Manrique
website: http://www.marlonj.com
description: Example command to say hello to the user 

commands:
 hello:
 description: Say hello to the user.
 usage: /<command>
  • En este momento ya tenemos los componentes necesarios para el Plugin
    El descriptor y la clase principal del mismo
  • Compilamos el proyecto, no deben salir errores (F6)
  • Construimos la solución (Build, F11)
  • Esto genera el directorio dist que dentro tiene el archivo mchelloplugin.jar
  • Debemos copiar este archivo al directorio plugins de nuestro servidor
  • Por ejemplo en nuestro ambiente de desarrollo
    scp /home/<usuario>/NetBeansProjects/mchelloplugin/dist/mchelloplugin.jar minecraft@<ipservidor>:/home/minecraft/server/plugins
  • Reiniciamos el servicio de McMyAdmin o el de Minecraft en el servidor
    si usamos mcmyadmin
    sudo service mcmyadmin restart
    si usamos minecraft
    sudo service minecraft restart
  • Ahora se puede listar el plugin dentro del administrador de McMyAdmin

LIsta de Plugins instalados en el servidor

  • Podemos entrar desde el visor de Minecraft a nuestro servidor y ejecutar el comando
    <pulsar la tecla t>
    /hello
    El servidor responde
    hello <usuario>

Probando el Comando desde el Visor

Descargar el archivo con el proyecto listo para NetBeans 7.0 (incluye el API de Bukkit y el codigo fuente del ejemplo) mchelloplugin

Enlaces :