Ir para conteúdo
  • 0

[Resolvido] Error 404 \o/


xKiizame

Pergunta

Eu estava vendo umas Playlist sobre GUI, é obtive sucesso na criação, PORÉM, eu não sei se em todos os GUI e assim, mais tem algumas opções do GUI que ao clicar (com mouse botão esquerdo) o jogador e desconectado e recebe a seguinte mensagem: "Internal server error"

 

Código:

			Inventory inventory = Bukkit.getServer().createInventory(p, 54, "§6Msg");
			if ((item == null) || (item.getType() == null) || (item.getType() == Material.AIR)) {
				return;
			}
			  
			if ((inventory != null) && (e.getInventory().getName().equals(inventory.getName()))) {
				if(e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.NETHER_STAR){
					p.closeInventory();
                                        p.sendMessage("Sla");
				  e.setCancelled(true);
				}
                        }

Errin no console:

2016-07-18 06:01:31 [WARNING] Failed to handle packet for Piole_is_guei/127.0.0.1: java.lang.IndexOutOfBoundsException: Index: 49, Size: 45
java.lang.IndexOutOfBoundsException: Index: 49, Size: 45
	at java.util.ArrayList.rangeCheck(ArrayList.java:653)
	at java.util.ArrayList.get(ArrayList.java:429)
	at net.minecraft.server.v1_5_R3.Container.getSlot(Container.java:105)
	at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:1413)
	at net.minecraft.server.v1_5_R3.Packet102WindowClick.handle(SourceFile:31)
	at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:215)
	at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:115)
	at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35)
	at org.spigotmc.MultiplexingServerConnection.b(MultiplexingServerConnection.java:72)
	at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:583)
	at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:227)
	at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
	at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
	at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)


 

Dúvida 2: como eu crio um Array que não reseta quando servidor reinicia?

 


 

Dúvida 3: como eu faço para um evento só ser realizado caso o jogador já esteja logado. (Não uso o Authme-Reloaded) (O PlayerLoginEvent não funfa com a versão que uso)

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

Como eu verifico a interação que o player usou ? '-'

 

Off * a 3ª e como eu faço para que o event só se realize quando jogador logar no servidor. (Ex. /login 1234)

1º Pergunta:

if(e.getAction() == Action.RIGHT_CLICK_AIR)
return;
//Existem outras interações, só você mudar ali...

Para o bagulho de login, ve se seu plugin de login tem API, caso tenha procure algo relacionado quando ele loga, e dai tu faz oque tu quer...

Caso não tenha, usa o PlayerProcessCommand (Algo assim não sei como escreve), e verifica se o comando é o "/login 1234" caso for adiciona ele em algum local como ArrayList, e no seu evento que só quer que aconteça se ele estiver logado verifica se ele está na ArrayList ou nao caso esteja ele faz seu codigo caso não ele não faz nada.

Link para o comentário
Compartilhar em outros sites

			if ((inventory != null) && (e.getInventory().getName().equals(inventory.getName()))) {

Acho que o certo seria usar

 

e.getPlayer().getInventory().getTitle.equalsIgnoreCase("§6Msg")){

 

Sim, quando o servidor reseta a array reseta.

 

Não entendi a terceira dúvida, qual seria o evento, pode explicar melhor?

 

 

Edit: Fiz sim uso de IDE, pode conter erros de sintaxe ou sla

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

			if ((inventory != null) && (e.getInventory().getName().equals(inventory.getName()))) {

Acho que o certo seria usar

 

e.getPlayer().getInventory().getTitle.equalsIgnoreCase("§6Msg")){

 

Sim, quando o servidor reseta a array reseta.

 

Não entendi a terceira dúvida, qual seria o evento, pode explicar melhor?

 

 

Edit: Fiz sim uso de IDE, pode conter erros de sintaxe ou sla

 

assim? wft?

			if (p.getInventory().getTitle().equalsIgnoreCase("§2» Escolha:")) {
				if(e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.IRON_INGOT){
					p.closeInventory();
				  e.setCancelled(true);
				}
                          }

O erro do GUI acontece quando o jogador clica no item que está dentro com outro botão do mouse.

 


 

A outra dúvida e de como fazer para o array não reseta o.O

Link para o comentário
Compartilhar em outros sites

assim? wft?

			if (p.getInventory().getTitle().equalsIgnoreCase("§2» Escolha:")) {
				if(e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.IRON_INGOT){
					p.closeInventory();
				  e.setCancelled(true);
				}
                          }
O erro do GUI acontece quando o jogador clica no item que está dentro com outro botão do mouse.

 


 

A outra dúvida e de como fazer para o array não reseta o.O

f ((e.getCurrentItem() == null) || (e.getCurrentItem().getItemMeta() == null)
|| (e.getCurrentItem().getType() == Material.AIR)) {
return;
}
//seu codigo

serializa a array em algum arquivo

Link para o comentário
Compartilhar em outros sites

Mrm erro


O erro e só em algumas opções do GUI, tipo a espada não da erro


Mais quando clica no NETHER_STAR com segundo botão do mouse da erro


* To falando assim, porque quando coloco muita caracteres no post ele não envia


Não consigo postar o código, mais não aparenta te erro dele :/

Link para o comentário
Compartilhar em outros sites

Creio que o erro seja por causa das interações, verifica se a interação foi a que você quis e cancela as demais.

O negoço da Array, não tem como salvar uma Array e ela não resetar, a não ser que você salve em algum local, como um arquivo.yml ou .db ou MySQL.

Não entendi a 3º dúvida.

Link para o comentário
Compartilhar em outros sites

Creio que o erro seja por causa das interações, verifica se a interação foi a que você quis e cancela as demais.

O negoço da Array, não tem como salvar uma Array e ela não resetar, a não ser que você salve em algum local, como um arquivo.yml ou .db ou MySQL.

Não entendi a 3º dúvida.

Como eu verifico a interação que o player usou ? '-'

 

Off * a 3ª e como eu faço para que o event só se realize quando jogador logar no servidor. (Ex. /login 1234)

Link para o comentário
Compartilhar em outros sites

e.getAction não existe no InventoryClickEvent.. (eu acho), já tentei de todos os métodos e todos mostram que não existe ;-;

if(e.getClick() == InventoryClick.LEFT){ || if(e.getClick() == InventoryClick.RIGHT){
Link para o comentário
Compartilhar em outros sites

if(e.getClick() == InventoryClick.LEFT){ || if(e.getClick() == InventoryClick.RIGHT){

também não pegou..

* Edit conseguir era:

					 if(e.getClick() == ClickType.RIGHT){
					  return;
					 }

* Edit ²: também deu certo com:

					 if(e.isShiftClick){
					  return;
					 }
Link para o comentário
Compartilhar em outros sites

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