Ir para conteúdo
  • 0

[Resolvido] Bug no meu Plugin de armadura


Krash0 is Alive

Pergunta

Então galera, eu fiz um sistema para o player não poder usar a Armadura(POR ENQUANTO SÓ QUERO FZR ISSO) e esta com um bug!
Quando o player Clica na Armadura e clica no slot da Armadura para colocar o plugin funciona, mais se ele pegar a Armadura e Clicar em Cima do slot da Armadura e deixar o botão segurado por um tempo ele consegue usar a Armadura do mesmo Jeito T-T.


Code:

        @EventHandler
        public void onInventoryClick(InventoryClickEvent event) {
		Player p = (Player) event.getWhoClicked();
		ItemStack clicked = event.getCurrentItem();
		Inventory inventory = event.getInventory();
		String InventoryTitle = inventory.getName().toLowerCase();
		
		
		if(InventoryTitle.contains("container.crafting")){
			p.sendMessage(event.getClick().name());
			if (event.getCursor() == null) {
				return;
			}

			if (event.getCursor().getType() == Material.AIR) {
				return;
			}

			if(event.getSlotType()!=SlotType.ARMOR){
				return;
			}


			event.setCancelled(true);
			p.closeInventory();
			p.sendMessage("§4Voce nao pode usar esse ITEM!, seu LvL é muito Baixo.");
			return;
		}
	}
Editado por Krash0
Link para o comentário
Compartilhar em outros sites

22 respostass a esta questão

Posts Recomendados

Pode mandar o code assim para min? acho q consigo terminar o resto...



import net.minecraft.server.v1_5_R3.EntityPlayer;
import net.minecraft.server.v1_5_R3.INetworkManager;
import net.minecraft.server.v1_5_R3.MinecraftServer;
import net.minecraft.server.v1_5_R3.Packet102WindowClick;
import net.minecraft.server.v1_5_R3.PlayerConnection;

public class CustomPlayerConnection extends PlayerConnection
{

	public CustomPlayerConnection(MinecraftServer minecraftserver, INetworkManager inetworkmanager, EntityPlayer entityplayer)
	{
		super(minecraftserver, inetworkmanager, entityplayer);
	}

	@Override
	public void a(Packet102WindowClick p)
	{
		
		if (p.slot >= 5 && p.slot <= 8 && p.item != null)
		{
			this.player.closeInventory();
		}

		super.a(p);
	}
}

EntityPlayer x = ((CraftPlayer) p).getHandle();
			x.playerConnection = new CustomPlayerConnection(x.server, x.playerConnection.networkManager, x);
Editado por leonardosci
Link para o comentário
Compartilhar em outros sites



import net.minecraft.server.v1_5_R3.EntityPlayer;
import net.minecraft.server.v1_5_R3.INetworkManager;
import net.minecraft.server.v1_5_R3.MinecraftServer;
import net.minecraft.server.v1_5_R3.Packet102WindowClick;
import net.minecraft.server.v1_5_R3.PlayerConnection;

public class CustomPlayerConnection extends PlayerConnection
{

	public CustomPlayerConnection(MinecraftServer minecraftserver, INetworkManager inetworkmanager, EntityPlayer entityplayer)
	{
		super(minecraftserver, inetworkmanager, entityplayer);
	}

	@Override
	public void a(Packet102WindowClick p)
	{
		
		if (p.slot >= 5 && p.slot <= 8 && p.item != null)
		{
			this.player.closeInventory();
		}

		super.a(p);
	}
}

EntityPlayer x = ((CraftPlayer) p).getHandle();
			x.playerConnection = new CustomPlayerConnection(x.server, x.playerConnection.networkManager, x);

 

Isso é para 1.5.2 né ? to usando 1.7.2

Link para o comentário
Compartilhar em outros sites

Não consegui, tem como me ajudar ? T-T

Tipo, eu ACHO que isso é um bug do mine, pq até por packet acontece isso.

 

Não seria melhor bloquear de mover do inventario? ou tipo, quando ele fechar o inventario checa que o item que ta no slot ta armadura é o item, se for dropa ele e manda msg...

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

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