Ducky Postado Novembro 1, 2017 Denunciar Compartilhar Postado Novembro 1, 2017 (editado) Por que sempre quando é adicionado isso: e.getClickedBlock().getType() == Material.SIGN_POST || e.getClickedBlock().getType() == Material.WALL_SIGN Ou por exemplo; if (sign.getLine(0).equalsIgnoreCase("o") && sign.getLine(1).equalsIgnoreCase("s")) { @EventHandler public void onClick(PlayerInteractEvent e) { Player player = e.getPlayer(); if (e.getAction() == Action.RIGHT_CLICK_BLOCK) { Sign sign = (Sign) e.getClickedBlock().getState(); if (sign.getLine(0).equalsIgnoreCase("o") && sign.getLine(1).equalsIgnoreCase("s")) { if (on) { player.sendMessage("ta on"); return; } player.sendMessage("OFF"); } } } Ele corresponde com esse erro: [18:59:23 ERROR]: Could not pass event PlayerInteractEvent to LBEvento v1.0 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:228) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerInteractManager.interact(PlayerInteractManager.java:463) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:759) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:52) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:1) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-db6de12-18fbb24] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_144] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_144] at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Unknown Source) [?:1.8.0_144] Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_8_R3.block.CraftBlockState cannot be cast to org.bukkit.block.Sign at com.lbplugin.Main.onClick(Main.java:92) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_144] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_144] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-db6de12-18fbb24] ... 17 more Editado Novembro 1, 2017 por Burpo Link para o comentário Compartilhar em outros sites More sharing options...
Kurama Postado Novembro 1, 2017 Denunciar Compartilhar Postado Novembro 1, 2017 (editado) Por que sempre quando é adicionado isso: e.getClickedBlock().getType() == Material.SIGN_POST || e.getClickedBlock().getType() == Material.WALL_SIGN Ou por exemplo; if (sign.getLine(0).equalsIgnoreCase("o") && sign.getLine(1).equalsIgnoreCase("s")) { @EventHandler public void onClick(PlayerInteractEvent e) { Player player = e.getPlayer(); if (e.getAction() == Action.RIGHT_CLICK_BLOCK) { Sign sign = (Sign) e.getClickedBlock().getState(); if (sign.getLine(0).equalsIgnoreCase("o") && sign.getLine(1).equalsIgnoreCase("s")) { if (on) { player.sendMessage("ta on"); return; } player.sendMessage("OFF"); } } } Ele corresponde com esse erro: [18:59:23 ERROR]: Could not pass event PlayerInteractEvent to LBEvento v1.0 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-db6de12-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:228) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerInteractManager.interact(PlayerInteractManager.java:463) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:759) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:52) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:1) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-db6de12-18fbb24] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_144] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_144] at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24] at java.lang.Thread.run(Unknown Source) [?:1.8.0_144] Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_8_R3.block.CraftBlockState cannot be cast to org.bukkit.block.Sign at com.lbplugin.Main.onClick(Main.java:92) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_144] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_144] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_144] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-db6de12-18fbb24] ... 17 more Recomendo ver as aulas básicas de Java, assim você vai saber sobre o && e || if ((a.getAction() == Action.RIGHT_CLICK_BLOCK || a.getAction() == Action.RIGHT_CLICK_AIR) && a.getClickedBlock().getType() == Material.MATERIAL) { } Editado Novembro 1, 2017 por Kurama Link para o comentário Compartilhar em outros sites More sharing options...
Ducky Postado Novembro 1, 2017 Autor Denunciar Compartilhar Postado Novembro 1, 2017 (editado) Recomendo ver as aulas básicas de Java, assim você vai saber sobre o && e || if ((a.getAction() == Action.RIGHT_CLICK_BLOCK || a.getAction() == Action.RIGHT_CLICK_AIR) && a.getClickedBlock().getType() == Material.MATERIAL) { } Erro continua, sobre o || e && eu sei para que serve.. mas minha dúvida é o erro =d Editado Novembro 1, 2017 por Burpo Link para o comentário Compartilhar em outros sites More sharing options...
Kurama Postado Novembro 1, 2017 Denunciar Compartilhar Postado Novembro 1, 2017 (editado) Erro continua, sobre o || e && eu sei para que serve.. mas minha dúvida é o erro =d Tá usando qual import ? Block ou Material ? @edit Testa isso: Sign s = (Sign) a.getClickedBlock().getState(); if (s.getLine(0) != null && s.getLine(0).equalsIgnoreCase("s")) { } import org.bukkit.block.Sign; Editado Novembro 1, 2017 por Kurama Link para o comentário Compartilhar em outros sites More sharing options...
Ducky Postado Novembro 1, 2017 Autor Denunciar Compartilhar Postado Novembro 1, 2017 Tá usando qual import ? Block ou Material ? Já resolvi, só verificar o bloco clicado. Staff, pode fechar o tópico. Link para o comentário Compartilhar em outros sites More sharing options...
Kurama Postado Novembro 1, 2017 Denunciar Compartilhar Postado Novembro 1, 2017 Já resolvi, só verificar o bloco clicado. Staff, pode fechar o tópico. Recomendo ver as aulas básicas de Java, assim você vai saber sobre o && e || if ((a.getAction() == Action.RIGHT_CLICK_BLOCK || a.getAction() == Action.RIGHT_CLICK_AIR) && a.getClickedBlock().getType() == Material.MATERIAL) { } ....... Merecia o resolvido. Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Novembro 1, 2017 Denunciar Compartilhar Postado Novembro 1, 2017 <p style="text-align:center;"><img alt="logo-forum.png" src="http://www.gamersboard.com.br/logo-forum.png"/></p><br /></br><br /></br><br />Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.</br><br /></br><br /></br><br />Atenciosamente,</br><br />Gamer's Board</br> Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ducky
Por que sempre quando é adicionado isso:
e.getClickedBlock().getType() == Material.SIGN_POST || e.getClickedBlock().getType() == Material.WALL_SIGN
Ou por exemplo;
if (sign.getLine(0).equalsIgnoreCase("o") && sign.getLine(1).equalsIgnoreCase("s")) {
Ele corresponde com esse erro:
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados