Ir para conteúdo
  • 0

[Resolvido] [Dúvida] Porque não funfa? Não da erro nenhum '-'


TequilAxBr

Pergunta

Olá humanos, bom estou fazendo meu Plugin aqui (BLojaPotions) mas ele não funciona de metodo algum, quando digito "/lojapot" ele não abre o menu que deveria abrir não possui erro quando ligo o servidor e nem quando digito /lojapot.


Print da prova que não possui erros: http://prntscr.com/87x6ac


 


Codigo:



package tequilaxbr.blojapotions;

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.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{

@Override
public void onEnable() {
}

@Override
public void onDisable() {
}

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(!(sender instanceof Player)){
System.out.println("Apenas in-game");
}
Player p = (Player)sender;
if(command.getName().equalsIgnoreCase("lojapot")){
if(p.hasPermission("lojapot.usar")){
Inventory inv = Bukkit.createInventory(null, 18, "§9§lLoja de Poção");
ItemStack item1 = new ItemStack(Material.MILK_BUCKET);
ItemStack item2 = new ItemStack(Material.GLASS_BOTTLE,1, (short) 8257);
ItemMeta meta2 = item2.getItemMeta();
ItemMeta meta = item1.getItemMeta();
meta.setDisplayName("§4§lRetire seus efeitos");
meta2.setDisplayName("§4§lRegeneração");
item1.setItemMeta(meta);
item2.setItemMeta(meta2);
inv.setItem(12,item1);
inv.setItem(1, item2);
//COMPRA
ItemStack i = getCurrentItem();
if (inv.getTitle().equalsIgnoreCase("§9§lLoja de Poção")) {
if (i != null)
if (i.getItemMeta().getDisplayName().equalsIgnoreCase("§4§lRegeneração")) {
p.getInventory().addItem(new ItemStack(Material.GLASS_BOTTLE, 1, (short) 8257));
p.closeInventory();
p.sendMessage("§aVocê comprou uma poção de Regeneração por: 5 coins");

}


}
}


}
return false;

}

private ItemStack getCurrentItem() {
// TODO Auto-generated method stub
return null;
}

}


Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

Como ficaria pra quando ele clicar na pot ele receber um item?

@EventHandler	
public void clickItem(InventoryClickEvent ev)
{
  Player p = (Player) ev.getWhoClicked();
  if(ev.getInventory().getName().equalsIgnoreCase("§9§lLoja de Poção"))  
  {  
    ItemStack x = ev.getCurrentItem();
    p.getInventory().addItem(x);
    p.updateInventory();
  }
}
Editado por Karamujo
Link para o comentário
Compartilhar em outros sites

Se coloco o comando no plugin.yml?


E esse método sempre retorna null

private ItemStack getCurrentItem() {
        // TODO Auto-generated method stub
        return null;
}

Ou seja, ele nunca vai entrar nesse bloco

if (i.getItemMeta().getDisplayName().equalsIgnoreCase("§4§lRegeneração")) {
    p.getInventory().addItem(new ItemStack(Material.GLASS_BOTTLE, 1, (short) 8257));
    p.closeInventory();
    p.sendMessage("§aVocê comprou uma poção de Regeneração por: 5 coins");        
}

E como você quer que ele abra o inventario se não colocou pra fazer isso... ?

 

falto o

p.openInventory(inv);
Link para o comentário
Compartilhar em outros sites

 

Se coloco o comando no plugin.yml?

E esse método sempre retorna null

private ItemStack getCurrentItem() {
        // TODO Auto-generated method stub
        return null;
}

Ou seja, ele nunca vai entrar nesse bloco

if (i.getItemMeta().getDisplayName().equalsIgnoreCase("§4§lRegeneração")) {
    p.getInventory().addItem(new ItemStack(Material.GLASS_BOTTLE, 1, (short) 8257));
    p.closeInventory();
    p.sendMessage("§aVocê comprou uma poção de Regeneração por: 5 coins");        
}

E como você quer que ele abra o inventario se não colocou pra fazer isso... ?

 

falto o

p.openInventory(inv);

Então só tenho que por o p.openInventory(inv); ?

Agora ele abriu, mas não acontece nd qnd clico na pot '-' era pra acontecer

Link para o comentário
Compartilhar em outros sites

Então só tenho que por o p.openInventory(inv); ?

Agora ele abriu, mas não acontece nd qnd clico na pot '-' era pra acontecer

Não, não era, tu não definiu pra ele fazer isso, tu precisa criar o evento de quando o cara clica no inventario, fazer a checagens e pa...

Link para o comentário
Compartilhar em outros sites

Guest ~iNotLinduh.

Como ficaria pra quando ele clicar na pot ele receber um item?

Você Tem Que Usar O Evento InventoryClickEvent , Não Pode Fazer Direto Pelo Comando -'.

 

Ex:

 

@EventHandler
public void onClick(InventoryClickEvent e){
Player p =(Player)e.getWhoClicked();
if(e.getInventory().getName().equalsIgnoreCase("NomeDaGui")){

     \\Continua Com O Codigo :S

       }

}

 

OBS: Não Se Esqueça De Registrar Os Eventos No onEnable :)

Editado por ~iNotLinduh.
Link para o comentário
Compartilhar em outros sites

 

Olá humanos, bom estou fazendo meu Plugin aqui (BLojaPotions) mas ele não funciona de metodo algum, quando digito "/lojapot" ele não abre o menu que deveria abrir não possui erro quando ligo o servidor e nem quando digito /lojapot.

Print da prova que não possui erros: http://prntscr.com/87x6ac

 

Codigo:

package tequilaxbr.blojapotions;

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.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{
	
	@Override
	public void onEnable() {
	}
	
	@Override
	public void onDisable() {
	}
	
	@Override
	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		if(!(sender instanceof Player)){
			System.out.println("Apenas in-game");
		}
		Player p = (Player)sender;
		if(command.getName().equalsIgnoreCase("lojapot")){
			if(p.hasPermission("lojapot.usar")){
				Inventory inv = Bukkit.createInventory(null, 18, "§9§lLoja de Poção");
				ItemStack item1 = new ItemStack(Material.MILK_BUCKET);
				ItemStack item2 = new ItemStack(Material.GLASS_BOTTLE,1, (short) 8257);
				ItemMeta meta2 = item2.getItemMeta();
				ItemMeta meta = item1.getItemMeta();
				meta.setDisplayName("§4§lRetire seus efeitos");
				meta2.setDisplayName("§4§lRegeneração");
				item1.setItemMeta(meta);
				item2.setItemMeta(meta2);
				inv.setItem(12,item1);
				inv.setItem(1, item2);
				//COMPRA
				ItemStack i = getCurrentItem();
				if (inv.getTitle().equalsIgnoreCase("§9§lLoja de Poção")) {
					if (i != null)	
						if (i.getItemMeta().getDisplayName().equalsIgnoreCase("§4§lRegeneração")) {
							p.getInventory().addItem(new ItemStack(Material.GLASS_BOTTLE, 1, (short) 8257));
							p.closeInventory();
							p.sendMessage("§aVocê comprou uma poção de Regeneração por: 5 coins");
							
						}
					
					
				}
			}

						
					}
		return false;
					
	}

	private ItemStack getCurrentItem() {
		// TODO Auto-generated method stub
		return null;
	}

	}

Quanto você terminar esse plugin , me passa?

Link para o comentário
Compartilhar em outros sites

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