Ir para conteúdo

GuiBuilder - Biblioteca para o desenvolvimento de menus para minecraft


Sr_Edition

Posts Recomendados

Olá seres, esse dias eu estava criando um plugin de terrenos e queria adicionar um menu GUI para o plugin ficar mais didático,

o que acontece é que toda vez que eu precisasse fazer um menu em meus plugins eu sempre tinha que começar um menu do zero,

vi que isso me deixava bem menos produtivo então eu resolvi criar uma biblioteca simples para criação de menus para Minecraft, tanto menus simples quanto menus com layouts customs.

A biblioteca é bem simples mas muito eficaz, pretendo adicionar novos recursos tais como: menus com outros tipos de inventário, atualização em tempo real do menu (etc..).

 

Bom aqui eu vou dar um exemplo simples de como usar a biblioteca e abaixo você pode acessar o link que irá redireciona-los ao repositório do projeto no meu GitHub.

 

 

Contribuir com esse projeto no GitHub seria muito bom para comunidade, então fique a vontade para contribuir e dar pull request

 

 

TUTORIAL

Bom, antes de começar a usar a biblioteca você precisa informar que seu plugin vai usar os recursos da mesma

@Override
public void onEnable()
{
	// Registra o GuiEngine no onEnable();
	new GuiEngine(this).register();
}

Agora podemos usar a biblioteca tranquilamente

 

Criando um menu simples

	// Exibe um menu com o layout default para o jogador.
	public static void showSimpleMenu(Player player)
	{
		// Cria um GuiFrame com o título e layout que você quer usar.
		// DefaultLayout(rows)
		GuiFrame frame = new GuiFrame("Menu Simples", new DefaultLayout(6));

		// Cria alguns botões para colocar no menu
		GuiButton netherStarButton = new GuiButton(new ItemStack(Material.NETHER_STAR));
		GuiButton diamondButton = new GuiButton(new ItemStack(Material.DIAMOND));

		// Adicione os métodos que devem ser executados ao clicar nos botões.

		netherStarButton.addGuiRunnable(ClickType.LEFT, new GuiRunnable()
		{
			@Override
			public void run(Player player)
			{
				player.sendMessage("§aVocê clicou na Nether Star");
			}
		});

		diamondButton.addGuiRunnable(ClickType.LEFT, new GuiRunnable()
		{
			@Override
			public void run(Player player)
			{
				player.closeInventory();
				player.sendMessage("§cVocê fechou o menu");
			}
		});

		// com o método put(GuiButton) você adiciona o botão ao primeiro slot vazio do
		// inventário.
		frame.put(netherStarButton);

		// com o método put(int, GuiButton) você adiciona o botão no slot informado como
		// int.
		frame.put(53, diamondButton);

		// exibe o menu para o jogador.
		frame.show(player);
	}

 

Criando um menu com layout custom

	// Exibe um menu com o layout customizado para o jogador.
	public static void showCustomMenu(Player player)
	{
		// Cria um GuiFrame com o título e layout que você quer usar.
		// CustomLayout(rows, slots)
		GuiFrame frame = new GuiFrame("Menu Custom", new CustomLayout(6, new int[] { 10, 11, 12, 13, 14, 15, 16, 19, 20,
				21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43 }));

		// Cria alguns botões para colocar no menu
		GuiButton netherStarButton = new GuiButton(new ItemStack(Material.NETHER_STAR));
		GuiButton diamondButton = new GuiButton(new ItemStack(Material.DIAMOND));

		// Adicione os métodos que devem ser executados ao clicar nos botões.

		netherStarButton.addGuiRunnable(ClickType.LEFT, new GuiRunnable()
		{
			@Override
			public void run(Player player)
			{
				player.sendMessage("§aVocê clicou na Nether Star");
			}
		});

		diamondButton.addGuiRunnable(ClickType.LEFT, new GuiRunnable()
		{
			@Override
			public void run(Player player)
			{
				player.closeInventory();
				player.sendMessage("§cVocê fechou o menu");
			}
		});

		// com o método put(GuiButton) você adiciona o botão ao primeiro slot vazio do
		// inventário.
		frame.put(netherStarButton);

		// com o método put(int, GuiButton) você adiciona o botão no slot informado como
		// int.
		frame.put(53, diamondButton);

		// exibe o menu para o jogador.
		frame.show(player);
	}

 

Você também pode pegar o menu que o jogador está aberto

		GuiFrame frame = GuiFrame.currentFrame(player);

 

Isso é tudo pessoal, se tiverem sugestões seria bom compartilhar

Ver Repositório

Link para o comentário
Compartilhar em outros sites

Ainda prefiro fazer manualmente mas achei muito interessante a Biblioteca, e muito bem feita por sinal, pra melhorar ainda mais deveria se usar um ItemBuilder junto parar criar os ItemStack.

e.getClickedInventory() é um método da SpigotAPI e isso ira gerar problemas com quem ainda usar por acidente ou por desconhecimento a BukkitAPI

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...