Ir para conteúdo
  • 0

GUI Configurável


Kwath

Pergunta


package me.tentar.gui;

 

import org.bukkit.Bukkit;

import org.bukkit.Material;

import org.bukkit.entity.Player;

import org.bukkit.inventory.Inventory;

 

public class GUI {

 

Main m;

public GUI(Main main) {

m = main;

}

 

@SuppressWarnings("deprecation")

public void guiP(Player jogador) {

 

String nomeInv = m.getConfig().getString("nomeInv").replace("&", "§");

int tamanhoInv = m.getConfig().getInt("tamanhoInv");

 

Inventory invP = Bukkit.createInventory(null, tamanhoInv, nomeInv);

 

for (int i = 1; i <= tamanhoInv; i++ ) {

if (m.getConfig().getConfigurationSection("slots." + i).getKeys(false) != null) {

int id = m.getConfig().getInt("slots." + i + ".id");

short data = (short) m.getConfig().getInt("slots." + i + ".data");

String nome = m.getConfig().getString("slots." + i + ".nome");

invP.setItem(i, Main.novoItem(nome, Material.getMaterial(id), data));

} else {

continue;

}

}

}

 

}

 

Olá, então estou com uma dúvida,

estou fazendo gui configurável só que no momento não estou conseguindo,

já tentei de vários jeitos/formas, e sempre chego ao mesmo erro.

 

O código da classe está acima.

 

10.10 15:28:22 [server] INFO Caused by: java.lang.NullPointerException

10.10 15:28:22 [server] INFO at me.tentar.gui.GUI.guiP(GUI.java:24) ~[?:?]

 

Linha: 24 

if (m.getConfig().getConfigurationSection("slots." + i).getKeys(false) != null) {

 

 

Se poder me ajudar agradeço!

 

 

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

tenta desse jeito aqui, o jeito antigo você tava verificando se existia a section "slots.1", sendo que a section é apenas "slots"

m.getConfig().getConfigurationSection("slots").getKeys(false).forEach(path -> {
    int id = m.getConfig().getInt("slots." + path + ".id");
    short data = (short) m.getConfig().getInt("slots." + path + ".data");
    String nome = m.getConfig().getString("slots." + path + ".nome");
    invP.setItem(Integer.parseInt(path), Main.novoItem(nome, Material.getMaterial(id), data));
});
Editado por jeta
Link para o comentário
Compartilhar em outros sites

Você iniciou essa variável m?

Passa sua main.

package me.tentar.gui;

import java.io.File;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;


public class Main extends JavaPlugin {
	
	public FileConfiguration config;
	public File cfile;
	private GUI g;
	
	@Override
	public void onEnable() {
		Bukkit.getConsoleSender().sendMessage("§aIniciando");
		rCmds();
		
		g = new GUI(this);
		
		config = getConfig();
		config.options().copyDefaults(true);
		cfile = new File(getDataFolder(), "config.yml");
		if (!new File(getDataFolder(), "config.yml").exists()) {
			saveDefaultConfig();
		}
	}
	
	@Override
	public void onDisable() {
		Bukkit.getConsoleSender().sendMessage("§cDesligando");
	}
	public void rCmds() {
		getCommand("testar").setExecutor(new Comando(this));
	}
	public GUI getGUI() {
		return g;
	}
	
	public static ItemStack novoItem(String nome, Material material, short data) {
		ItemStack item = new ItemStack(material);
		ItemMeta meta = item.getItemMeta();
		meta.setDisplayName(nome);
		item.setItemMeta(meta);
		return item;
	}
}

você instanciou a classe GUI na main?

Sim ^^

Link para o comentário
Compartilhar em outros sites

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