VEIO EM BUSCA DA DICA?
Continuação desse tutorial: http://forum.craftlandia.com.br/ipb/index.php?/topic/810686-java-2-itens-e-primeiro-evento/
Hoje nesse tópico vou ensinar um pouco sobre como criar um comandos simples para minecraft
para deixar claro não sou programador habilidoso só sei o básico
se quiser algum habilidoso fala com o [member=iBieel]
Primeiro tera que baixar algum programa para trabalhar recomendo o Eclipse
Dowload: https://www.eclipse.org/downloads/download.php?file=/oomph/epp/neon/R3/eclipse-inst-win64.exe
Esse é oque eu uso
e tambem precisara de uma API
Também é a que eu uso
OK tudo baixado e instalado vamos começar
================================================================================================================
Com o programa aberto primeiro vamos criar um JavaProject
Vá em "File > New > JavaProjec"
Então escolha o nome do seu projeto e clique em "Finish"
Ok agora vamos importar a API para dentro do projeto
Clique com o botão DIREITO em cima do projeto criado va em "Build path > add external archives"
e procure a API bukkit que você baixou
Feito isso agora vamos criar uma classe
Novamente clique com o botão DIREITO do mouse no projetor e va em
"New > Class"
Agora você tera que dar um nome para a sua classe Principal
Aconselho colocar o nome de "Main"
Lembresse: TODOS OS NOMES DE CLASSES DEVEM INICIAR COM LETRA MAIUSCULA
E NÃO PODEM SER INICIADAS POR NÚMEROS OU CARACTERES ESPECIAIS
APENAS LETRAS
O nome da package eu costumo colocar coisas do tipo
com.imperiius.(Nome do projeto)
no casso ficaria
com.imperiius.tutorial
OBS: tudo em minusculo
Feito isso clique em finish e você terá criado sua classe principal
ok então agora é hora de programar
seu codigo deve estar assim
OBS: a package vai ser igual a que você colocou esse é sou um exemplopackage com.imperiius.tutorial
public class Main {
}
Ok então agora vamos extender para JavaPlugin
apenas coloque "extends JavaPlugin"
Dica: se vc apertar CTRL+Espaço o eclipse vai dar opções para completar oque você esta escrevendo evitando ter que escrever tudo manualmente
Package com.imperiius.tutorial
Public class Main extends JavaPlugin {
}
Agora algo básico
Vamos adicionar o
onEnable();
onDisable();
São respectivamente oque o plugin vai fazer ao ser carregado
e ao ser desligado então por agora vamos so colocar algo assim
Package com.imperiius.tutorialPublic class Main extends JavaPlugin {@Overridepublic void onEnable() {Bukkit.broadcastMessage("Plugin ligado");}@Overridepublic void onDisable() {Bukkit.broadcastMessage("Plugin desligado");}
Bukkit.broadcastMessage()
vai mandar uma mensagem para todos dentro do servidor e no console do server
Agora vamos começar a criar o comando
Vamos usar o
onCommand
agora abaixo da chave que fecha o onDisable
apenas escreva "onco" aperte CTRL+Espaço para o eclipse autocompletar
apague tudo que foi colocado automaticamente só deixe a linha do onCommand
package com.imperiius.tutorial;import org.bukkit.Bukkit;import org.bukkit.command.Command;import org.bukkit.command.CommandSender;import org.bukkit.plugin.java.JavaPlugin;public class Main extends JavaPlugin {@Overridepublic void onEnable() {Bukkit.broadcastMessage("Plugin ligado");}@Overridepublic void onDisable() {Bukkit.broadcastMessage("Plugin desligado");}@Overridepublic boolean onCommand(CommandSender sender, Command command, String label, String[] args) {}}
"sender" é aquele que que executou o comando
"command" é o comando propriamente dito
agora vamos definir o player
para isso vamos fazer o seguinte
Player p = (Player)sender;
Aqui definimos que "p" vai ser a variável do jogador que executou o comando
o Player ficara grifado de vermelho
apenas passe o mouse por cima e escolha a opção
"import (Player)"
e vamos definir qual comandos queremos
if(command.getName().equalsIgnoreCase("(kits"));
Vou usar de exemplo o comando "kits" mas pode ser qualquer outro
Mas o comando aqui deve haver somente uma palavra não pode ser exemplo "kits pvp"
aqui vamos dizer para o plugin
Se o comando digitado por igual a "kits" faça isso
o "equalsIgnoreCase" serve para o plugin ignorar se o comando foi escrito com letras minusculas ou maiúsculas
então ate agora estamos assim
agora vamos definir oque o plugin deve fazer apos esse comando ser executadopackage com.imperiius.tutorial;import org.bukkit.Bukkit;import org.bukkit.command.Command;import org.bukkit.command.CommandSender;import org.bukkit.entity.Player;import org.bukkit.plugin.java.JavaPlugin;public class Main extends JavaPlugin {@Overridepublic void onEnable() {Bukkit.broadcastMessage("Plugin ligado");}@Overridepublic void onDisable() {Bukkit.broadcastMessage("Plugin desligado");}@Overridepublic boolean onCommand(CommandSender sender, Command command, String label, String[] args) {Player p = (Player)sender;if(command.getName().equalsIgnoreCase("kits")) {}}}
Como estou dando de exemplo um plugin de kits vou fazer ele abrir um menu de kits
então vamos colocar
Invetory inv = Bukkit.createInventory(null, 9*6), "Nome do Bau";
Aqui vamos falar para o plugin criar um bau de
6 linhas com 9 slots cada (Um bau duplo)
com o nome que você escolher
e que a variável inv vai ser igual e esse inventario criado
Ótimo então agora vamos fazer um item ser adicionado nesse inventario
ItemStack espada = new ItemStack(Material.DIAMOND_SWORD);
aqui nos vamos definir que a variável "espada" vai ser a mesma coisa que uma espada de diamante
então agora vamos fazer essa espada ser colocada dentro do inventario virtual
Uma coisa para entender
os slots do minecraft no Java são contados começando do 0
de cima para baixo
da esquerda para direita
ou seja o Slot 1 do bau vai ser = 0 no java
vejam a print para entender:
então para poder colocar o item no slot 5
vamos fazer assim
inv.setItem(4, espada);
Então vamos falar para o plugin adicionar um item no slot 5
nesse casso o item é a variável "espada" que já definimos como espada de diamante
então ate agora o plugin ta assim
package com.imperiius.tutorial;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
@Override
public void onEnable() {
Bukkit.broadcastMessage("Plugin ligado");
}
@Override
public void onDisable() {
Bukkit.broadcastMessage("Plugin desligado");
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player p = (Player)sender;
if(command.getName().equalsIgnoreCase("kits")) {
Inventory inv = Bukkit.createInventory(null, 9*6, "Kits");
ItemStack espada = new ItemStack(Material.DIAMOND_SWORD);
inv.setItem(4, espada);
}
}
}
só para terminar vamos colocar um[
p.openInventory(inv);
que vai fazer com que o inventario "inv" abra para o player
p.sendMessage("Inventario aberto");
isso vai mandar uma mensagem para quem executou o comando
Em outro tudo vou ensinar como fazer com que quando clique no item receba itens efeitos
como alterar os itens no plugin, nome, lore etc...
agora temos que registar o comando que criamos dentro da nossa classe principal
dentro do onEnable
usando:
getCommand("kits").setExecutor(this);
Por ultimo a linha do onCommand vai estar grifada de vermelho provavelmente
passe o mouse por cima e escolha a opção "Add return"
então finalizando a programação da classe Main
ficou assim
package com.imperiius.tutorial;import org.bukkit.Bukkit;import org.bukkit.Material;import org.bukkit.command.Command;import org.bukkit.command.CommandSender;import org.bukkit.entity.Player;import org.bukkit.inventory.Inventory;import org.bukkit.inventory.ItemStack;import org.bukkit.plugin.java.JavaPlugin;public class Main extends JavaPlugin {@Overridepublic void onEnable() {Bukkit.broadcastMessage("Plugin ligado");}@Overridepublic void onDisable() {Bukkit.broadcastMessage("Plugin desligado");}@Overridepublic boolean onCommand(CommandSender sender, Command command, String label, String[] args) {Player p = (Player)sender;if(command.getName().equalsIgnoreCase("kits")) {Inventory inv = Bukkit.createInventory(null, 9*6, "Kits");ItemStack espada = new ItemStack(Material.DIAMOND_SWORD);inv.setItem(4, espada);p.sendMessage("Inventario aberto");}return false;}}
Agora temos que criar o nosso "Plugin.yml" pois o plugin não funciona sem ele
para criar e só clicar com o botão direito no projeto "New > File"
E de o nome de "Plugin.yml"
e dentro desse arquivo deve ser colocado
name: (Nome
version: (versao do plugin)
main: (Nome da sua package mais nome da sua classe principal)
description: (Descrição do seu plugin)
commands:
(nome do comando):
Description: descrição do comando
Exemplo como ficou o meu
name: Tutorial
version: 1.0
main: com.imperiius.tutorial.Main
description: Tutorial
commands:
kits:
description: tutorial
Salve o arquivo
Tudo pronto agora vamos exportar o arquivo
Clique com o botão Direto do mouse no projeto vá em "Exporte > Next" escolha onde quer salvar e vá em "Finish"
agora e só colocar o arquivo dentro da pasta Plugins do seu server e testar
Então chegamos ao fim do nosso tutorial
Pretendo fazer mais tutorias explicando outros plugins
se teve duvidas, dificuldade, critica, ideia, pedido Manda um MP
Esse tópico demora pra fazer então da um comente ai