Ir para conteúdo

Estou aprendeno a desenvolver plugins e quero desenvolver um plugin /vender com menu gui


SkayGamer

Posts Recomendados

Olá a todos que lerem esse texto,

Eu to quereno desenvolver um plugin com o comando /vender que abre o menu gui com 

icone de deixar a venda de minerios automatico (Somente para vips) , Icone para desativar as outras opções

, um icone verde para vender os itens com o click, e um icone para vender usando o shift,

não sei como fazer para pegar os itens do inventario do jogador, nao sei totalizar o total de itens tipo lapis azul

, por favor me ajudem.

Link para o comentário
Compartilhar em outros sites

Vamos começar:

//// Verificar se o jogador possui o material definido
if(!p.getInventory().contains(Material.MATERIAL)) {
					//Mensagem de quando ele não tiver o material.
					e.setCancelled(true);p.closeInventory();
					return;
				}
//// Verificar a quantidade de itens
int quantidade = getAmount(p, new ItemStack(Material.MATERIAL));

////Criar o valor
int valor = quantidade*PREÇO; #Valor de um item.

////Remover os itens
public static void removeItems(Inventory inventory, Material type, int amount) {
        if (amount <= 0) return;
        int size = inventory.getSize();
        for (int slot = 0; slot < size; slot++) {
            ItemStack is = inventory.getItem(slot);
            if (is == null) continue;
            if (type == is.getType()) {
                int newAmount = is.getAmount() - amount;
                if (newAmount > 0) {
                    is.setAmount(newAmount);
                    break;
                } else {
                    inventory.clear(slot);
                    amount = -newAmount;
                    if (amount == 0) break;
                }
            }
        }
    }
# Logo após
removeItems(p.getInventory(), Material.MATERIAL, quantidade);

//// Adicionar o Money
economia.getPlayer().addBalance(valor);

////Mensagem com número formatado
String formatado = NumberFormat.getInstance().format(valor);
p.sendMessage("Seu ganho foi de " + formatado + ".");

////No SHIFT use o evento: SNEAKEVENT(ALGUMA COISA DO TIPO)

//// Permissão
if(p.hasPermission("permissao") {
} else {
}

Simples porém espero que entenda.

Método getAmout:

public static int getAmount(Player arg0, ItemStack arg1) {
        if (arg1 == null)
            return 0;
        int amount = 0;
        for (int i = 0; i < 36; i++) {
            ItemStack slot = arg0.getInventory().getItem(i);
            if (slot == null || !slot.isSimilar(arg1))
                continue;
            amount += slot.getAmount();
        }
        return amount;
    }

 

Editado por String
Link para o comentário
Compartilhar em outros sites

2 minutos atrás, String disse:

Vamos começar:


//// Verificar se o jogador possui o material definido
if(!p.getInventory().contains(Material.MATERIAL)) {
					//Mensagem de quando ele não tiver o material.
					e.setCancelled(true);p.closeInventory();
					return;
				}
//// Verificar a quantidade de itens
int quantidade = getAmount(p, new ItemStack(Material.MATERIAL));

////Criar o valor
int valor = quantidade*PREÇO; #Valor de um item.

////Remover os itens
public static void removeItems(Inventory inventory, Material type, int amount) {
        if (amount <= 0) return;
        int size = inventory.getSize();
        for (int slot = 0; slot < size; slot++) {
            ItemStack is = inventory.getItem(slot);
            if (is == null) continue;
            if (type == is.getType()) {
                int newAmount = is.getAmount() - amount;
                if (newAmount > 0) {
                    is.setAmount(newAmount);
                    break;
                } else {
                    inventory.clear(slot);
                    amount = -newAmount;
                    if (amount == 0) break;
                }
            }
        }
    }
# Logo após
removeItems(p.getInventory(), Material.MATERIAL, quantidade);

//// Adicionar o Money
economia.getPlayer().addBalance(valor);

////Mensagem com número formatado
String formatado = NumberFormat.getInstance().format(valor);
p.sendMessage("Seu ganho foi de " + formatado + ".");

////No SHIFT use o evento: SNEAKEVENT(ALGUMA COISA DO TIPO)

//// Permissão
if(p.hasPermission("permissao") {
} else {
}

Simples porém espero que entenda.

economia.getPlayer().addBalance(valor);

esse valor é adicionado para 1 item?

tipo tenho 1 lapis se eu vender vai dar esse valor

se eu tiver 2 lapis vai dar o dobro desse valor?

Link para o comentário
Compartilhar em outros sites

6 minutos atrás, レオナルド disse:

economia.getPlayer().addBalance(valor);

esse valor é adicionado para 1 item?

tipo tenho 1 lapis se eu vender vai dar esse valor

se eu tiver 2 lapis vai dar o dobro desse valor?

Sim, como foi setado int valor = quantidade*VALOR;, o "VALOR" terá que ser de 1 item, para assim ficar: 304*12 = Ele multiplica 304 blocos em 12 cada um.

Então no caso, ele multiplica de acordo com a quantidade.

Editado por String
Link para o comentário
Compartilhar em outros sites

Agora, String disse:

Não, como foi setado int valor = quantidade*VALOR;, o "VALOR" terá que ser de 1 item, para assim ficar: 304*12 = Ele multiplica 304 blocos em 12 cada um.

Então no caso, ele multiplica de acordo com a quantidade.

Ah sim, estava procurando este metodo e nunca achei

Basicamente ele calcula os itens do inventario do jogador e da o valor de acordo com os itens (setando o valor de 1 item)

Link para o comentário
Compartilhar em outros sites

31 minutos atrás, String disse:

RESOLVIDO?

Caso sim, marque a resposta acima como resolvido ❤️

é possivel criar uma stringlist no material, para adicionar varios itens atraves da config.yml ?

Editado por レオナルド
Link para o comentário
Compartilhar em outros sites

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