[Java] Criando um comando basico

Bem-vindo!

Ao se registrar conosco, você poderá discutir, compartilhar e enviar mensagens privadas com outros membros da nossa comunidade.

Registrar agora!
  • PROMOÇÃO DE NATAL NO AR

    Novo servidor: CraftLandia Olimpo


Status
Não está aberto para novas respostas.
Entrou
Mar 4, 2014
Mensagens
4,106
Pontuação de reação
928
Cubos
20
VEIO EM BUSCA DA DICA?​
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​
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"​
c2874d6fd6cb408eb3091ac2a57aac67.png
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​
64dd71d7bf074f899d781750c1da094e.png
Feito isso agora vamos criar uma classe​
Novamente clique com o botão DIREITO do mouse no projetor e va em​
"New > Class"​
64e70f7a6dc14f71ad7ccdb24f5e48ff.png
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​

package com.imperiius.tutorial

public class Main {

}
OBS: a package vai ser igual a que você colocou esse é sou um exemplo

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.tutorial​
Public class Main extends JavaPlugin {​
@Override​
public void onEnable() {​
Bukkit.broadcastMessage("Plugin ligado");​
}​
@Override​
public 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 {​
@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) {​
}​
}​
Explicando as duas coisas que eu grifei que são importantes entender por agora
"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)"

04b263563f264c589b3bb3c7f0b6f542.png

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
package 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 {​
@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")) {​
}​
}​
}​
agora vamos definir oque o plugin deve fazer apos esse comando ser executado
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:
2f40468d3a984cb4a37960ef8fe494c8.png

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 {​
@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);​
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"​
93c9cf35a7634ee19004b5bcdc2c21d4.png
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 :D
 
Já vejo o Eclipse todo dia na aula, método, classe, ahhhhhhhhhh rsrsrs to vendo que você sabe :)
 
Status
Não está aberto para novas respostas.

Usuários que estão visualizando este tópico

Voltar
Topo