Developer API
Utiliza la API de Paneles de Comandos para crear GUIs fácilmente para tu plugin o para interactuar con Paneles de Comandos.
Métodos de API
Introducción
Command Panels te permite añadirlo como dependencia para crear GUIs para tu plugin. Usando un Objeto Archivo (Recomendado) o una YamlConfiguration para el panel, puedes guardar un archivo YML dentro de tu plugin y luego usarlo para una GUI. El archivo que sería un archivo YML o el YamlConfiguration necesita seguir la misma sintaxis que cualquier otro panel. Su ubicación para almacenar el panel, sin embargo, no necesita estar en la carpeta de paneles, ya que en su lugar se ubicaría dentro del código de su propio plugin.
Si quisieras utilizar tu propio código cuando se hace clic en un elemento, utilizarías la etiqueta event= como un comando en el YAML del elemento, lo que haría que el elemento activara el evento PanelCommandEvent, lo que significa que sólo tienes que hacer un oyente para ese evento, y luego comprobar para asegurarte de que el mensaje es igual al que utilizaste en el elemento.
Después de inicializar la API utilizando la línea de código anterior, tendrá acceso a los siguientes métodos
Método
Devuelve
Descripción
api.isPanelOpen(Player p);
Boolean
Comprueba si un jugador tiene un panel abierto.
api.getOpenPanel(Player p, PanelPosition position);
Panel
Obtiene el objeto Panel de un panel actualmente abierto para un jugador. PanelPosition es Top, Middle, Bottom del área de inventario. (Cofre, Jugador, Hotbar)
api.getPanelsLoaded();
List<Panel>
Obtiene los Paneles cargados en el plugin CommandPanels.
api.addPanel(Panel panel);
-
Añade un panel a los CommandPanels cargados de plugins.
api.makeItem(ConfigurationSection item)
ItemStack
Obtiene la sección de configuración de un ítem, por ejemplo la sección de un ítem en un panel. A continuación, el plugin hará un elemento personalizado y devolverá el ItemStack.
api.removePanel(Panel panel);
-
Elimina un panel de los CommandPanels cargados.
api.hasNormalInventory(Player p);
boolean
Devuelve false si el inventario del jugador tiene un panel y no es el inventario normal.
api.getPanel(String panelName);
Panel
Obtener un panel cargado utilizando el nombre del panel.
Si una ranura de artículo es un artículo fijo
Los Paneles de Comando pueden tener ítems en el inventario en ciertas ranuras que son asignadas para abrir un panel cuando se hace click, no pueden ser movidas. La siguiente función devolverá un ArrayList int de las ranuras que están siendo usadas para Paneles de Comando. 0-8 es para la Hotbar y 9-33 es para dentro del inventario.
Tratamiento de los paneles
Los paneles son objetos que se pueden crear. Una vez creado un panel, se pueden hacer muchas cosas con él.
Creación de un panel
Para crear un panel, obtenga un Archivo o una YamlConfiguración del panel. Se recomienda un archivo, ya que se puede utilizar para añadirlo a los paneles cargados en los paneles de comandos.
Métodos de panel
Método
Devuelve
Descripción
panel.open(Player p, PanelPosition position);
-
Abrir un panel para el jugador. Asegúrese de que no haya ya un panel abierto. Utilice la posición del panel superior si no hay ya un panel abierto para el jugador.
panel.getHotbarItem(Player p)
ItemStack
Obtener el elemento de la HotBar de los paneles.
panel.hasHotbarItem()
Boolean
Compruebe si el panel tiene un elemento Hotbar.
panel.getInventory()
Inventory
Obtener el panel como inventario plano.
panel.getCustomItem(Player p, String itemName)
ItemStack
Consigue uno de los paneles Artículos personalizados.
panel.getItem(Player p, int slot)
ItemStack
Coge uno de los objetos del interior del panel, según la slot.
Si un jugador tiene un panel abierto
Si desea comprobar si un jugador tiene un panel abierto, primero tendrá que asignarlo a una variable y después podrá utilizar la API. Consulte los siguientes ejemplos.
El ejemplo siguiente devolverá true si un determinado jugador tiene algún panel abierto, en caso contrario, devolverá false.
El ejemplo de abajo devolverá un objeto panel, puedes ver qué panel tiene abierto el jugador con esto. Te da acceso a ver todo lo que hay dentro del panel, dónde está almacenado e incluso te permite abrir el panel de nuevo.
Eventos API
PanelOpenedEvent
Este evento es llamado cuando se abre un panel. Abajo hay una clase de ejemplo con el evento dentro de ella. Hay una variedad de funciones que puede utilizar, como cancelar el evento que detendrá la apertura del panel.
e.getPlayer();
Consigue al jugador que ha abierto un panel.
e.getPanelName();
Devuelve el nombre del panel que se está abriendo, en forma de cadena.
e.getPanel.getConfig();
Esto devolverá una ConfigurationSection que contiene la configuración de los paneles. Por ejemplo, si desea obtener el título del panel lo encontraría así:e.getPanel.getConfig().getString("title")
.
e.isCancelled()
es el evento cancelado.
e.setCancelled()
Cancela el evento si no quieres que se abra el panel.
PanelClosedEvent
Este evento es llamado cuando un panel es cerrado. Abajo hay una clase de ejemplo con el evento dentro de ella. Hay una variedad de funciones que puede utilizar.
e.getPlayer();
Consigue al jugador que ha abierto un panel.
e.getPanelName();
Devuelve el nombre del panel que se está abriendo, en forma de cadena.
e.getPanel.getConfig();
Esto devolverá una ConfigurationSection que contiene la configuración de los paneles. Por ejemplo, si desea obtener el título del panel lo encontraría así:e.getPanel.getConfig().getString("title")
.
PanelCommandEvent
Este evento se activa si la etiqueta de comandoevent= <mensaje>
se utiliza en un panel. A continuación se muestra una clase de ejemplo con el evento dentro de ella. Esto le permitirá ver los argumentos/mensaje que se dejó desde dentro del panel.
e.getPlayer();
Consigue al jugador que ha abierto un panel.
e.getMessage();
Devuelve el mensaje que queda después de la etiqueta de comando como una cadena.
Last updated