LuizB Postado Fevereiro 24, 2016 Denunciar Compartilhar Postado Fevereiro 24, 2016 Quero que quando o Player clique com um botão direito em uma placa Com o nome [sopa] Abra Um GUi Cheio De SOPAsó que esta dando Erro: o GUI n abrecodigo: package soup; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class Funsoup implements Listener{ @EventHandler(priority = EventPriority.HIGHEST) private void onSChange(SignChangeEvent e) { if(e.getLine(0).equalsIgnoreCase("[Sopa]")) { if(!e.getPlayer().hasPermission("funkits.sopa")) { e.setCancelled(true); } } else e.setLine(0, ChatColor.LIGHT_PURPLE+"[Sopa]"); } @EventHandler(priority = EventPriority.HIGHEST) private void onClick(PlayerInteractEvent e) { if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) if(e.getClickedBlock().getState() instanceof Sign) { Sign placa = (Sign) e.getClickedBlock().getState(); if(placa.getLine(0).equalsIgnoreCase(ChatColor.LIGHT_PURPLE+"[Sopa]")) { Inventory inv = Bukkit.createInventory(null, 6*10, "Sopa"); ItemStack sopa = new ItemStack(Material.MUSHROOM_SOUP); for (int x = 0; x < 35; x++) { inv.setItem(x, sopa); } } } } } Link para o comentário Compartilhar em outros sites More sharing options...
Proyx Postado Fevereiro 24, 2016 Denunciar Compartilhar Postado Fevereiro 24, 2016 você nem abriu o inventario pro player... player.openInventory(inv); Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Fevereiro 24, 2016 Denunciar Compartilhar Postado Fevereiro 24, 2016 (editado) package soup; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class Funsoup implements Listener{ @EventHandler(priority = EventPriority.HIGHEST) private void onSChange(SignChangeEvent e) { if(e.getLine(0).equalsIgnoreCase("[Sopa]")) { if(!e.getPlayer().hasPermission("funkits.sopa")) { e.setCancelled(true); } }else{ e.setLine(0, ChatColor.LIGHT_PURPLE+"[Sopa]"); } } @EventHandler(priority = EventPriority.HIGHEST) private void onClick(PlayerInteractEvent e) { if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK){ if(e.getClickedBlock().getState() instanceof Sign) { Sign placa = (Sign) e.getClickedBlock().getState(); if(placa.getLine(0).equalsIgnoreCase(ChatColor.LIGHT_PURPLE+"[Sopa]")) { Inventory inv = Bukkit.createInventory(null, 6*10, "Sopa"); ItemStack sopa = new ItemStack(Material.MUSHROOM_SOUP); while(inv.firstEmpty() != -1){ inv.setItem(inv.firstEmpty(), sopa); } e.getPlayer().openInventory(inv); e.getPlayer().sendMessage("Inventário Aberto!"); } } } } } Editado Fevereiro 24, 2016 por Kaway Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 24, 2016 Autor Denunciar Compartilhar Postado Fevereiro 24, 2016 você nem abriu o inventario pro player... player.openInventory(inv); n funfa quando eu clico com o botao direito n faz nada A placa fica rosa package soup; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class Funsoup implements Listener{ @EventHandler(priority = EventPriority.HIGHEST) private void onSChange(SignChangeEvent e) { if(e.getLine(0).equalsIgnoreCase("[Sopa]")) { if(!e.getPlayer().hasPermission("funkits.sopa")) { e.setCancelled(true); } }else{ e.setLine(0, ChatColor.LIGHT_PURPLE+"[Sopa]"); } } @EventHandler(priority = EventPriority.HIGHEST) private void onClick(PlayerInteractEvent e) { if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK){ if(e.getClickedBlock().getState() instanceof Sign) { Sign placa = (Sign) e.getClickedBlock().getState(); if(placa.getLine(0).equalsIgnoreCase(ChatColor.LIGHT_PURPLE+"[Sopa]")) { Inventory inv = Bukkit.createInventory(null, 6*10, "Sopa"); ItemStack sopa = new ItemStack(Material.MUSHROOM_SOUP); while(inv.firstEmpty() != -1){ inv.setItem(inv.firstEmpty(), sopa); } e.getPlayer().openInventory(inv); e.getPlayer().sendMessage("Inventário Aberto!"); } } } } } n funfa quando eu clico com o botao direito n faz nada o Nome fica ate rods [sopa] só que quando eu clico n abre o GUI Link para o comentário Compartilhar em outros sites More sharing options...
Proyx Postado Fevereiro 24, 2016 Denunciar Compartilhar Postado Fevereiro 24, 2016 n funfa quando eu clico com o botao direito n faz nada A placa fica rosa n funfa quando eu clico com o botao direito n faz nada o Nome fica ate rods [sopa] só que quando eu clico n abre o GUI tira o ChatColor, deixa so o [sopa] ali no if: if(placa.getLine(0).equalsIgnoreCase(ChatColor.LIGHT_PURPLE+"[Sopa]")) { Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Fevereiro 24, 2016 Denunciar Compartilhar Postado Fevereiro 24, 2016 package soup; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class Funsoup implements Listener{ @EventHandler(priority = EventPriority.HIGHEST) private void onSChange(SignChangeEvent e) { if(e.getLine(0).equalsIgnoreCase("[Sopa]")) { if(!e.getPlayer().hasPermission("funkits.sopa")) { e.setCancelled(true); } }else{ e.setLine(0, "§d[Sopa]"); } } @EventHandler(priority = EventPriority.HIGHEST) private void onClick(PlayerInteractEvent e) { if(e.getAction() == Action.RIGHT_CLICK_BLOCK){ if(e.getClickedBlock().getState() instanceof Sign) { Sign placa = (Sign) e.getClickedBlock().getState(); if(placa.getLine(0) == null || placa.getLine(0).equalsIgnoreCase("")) return; if(placa.getLine(0).equalsIgnoreCase("§d[Sopa]")) { Inventory inv = Bukkit.createInventory(null, 6*9, "Sopa"); ItemStack sopa = new ItemStack(Material.MUSHROOM_SOUP); while(inv.firstEmpty() != -1){ inv.setItem(inv.firstEmpty(), sopa); } e.getPlayer().openInventory(inv); e.getPlayer().sendMessage("Inventário Aberto!"); } } } } } Link para o comentário Compartilhar em outros sites More sharing options...
Proyx Postado Fevereiro 24, 2016 Denunciar Compartilhar Postado Fevereiro 24, 2016 package soup; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class Funsoup implements Listener{ @EventHandler(priority = EventPriority.HIGHEST) private void onSChange(SignChangeEvent e) { if(e.getLine(0).equalsIgnoreCase("[Sopa]")) { if(!e.getPlayer().hasPermission("funkits.sopa")) { e.setCancelled(true); } }else{ e.setLine(0, "§d[Sopa]"); } } @EventHandler(priority = EventPriority.HIGHEST) private void onClick(PlayerInteractEvent e) { if(e.getAction() == Action.RIGHT_CLICK_BLOCK){ if(e.getClickedBlock().getState() instanceof Sign) { Sign placa = (Sign) e.getClickedBlock().getState(); if(placa.getLine(0) == null || placa.getLine(0).equalsIgnoreCase("")) return; if(placa.getLine(0).equalsIgnoreCase("§d[Sopa]")) { Inventory inv = Bukkit.createInventory(null, 6*9, "Sopa"); ItemStack sopa = new ItemStack(Material.MUSHROOM_SOUP); while(inv.firstEmpty() != -1){ inv.setItem(inv.firstEmpty(), sopa); } e.getPlayer().openInventory(inv); e.getPlayer().sendMessage("Inventário Aberto!"); } } } } } o man, vai ficar dizendo tudo oq eu digo pra faze? ;-; e acho q ele n le a cor, entao n e pra colocar chatcolor nem § Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Fevereiro 24, 2016 Denunciar Compartilhar Postado Fevereiro 24, 2016 o man, vai ficar dizendo tudo oq eu digo pra faze? ;-; e acho q ele n le a cor, entao n e pra colocar chatcolor nem § Sim, lê §, pelo menos sempre leu comigo, removi a parte do código dele que aceitava clicks no vento(se é pra placa pra que caca vai aceitar click direito no vento) e verificar se a primeira linha da placa não está em branco Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 25, 2016 Autor Denunciar Compartilhar Postado Fevereiro 25, 2016 (editado) Sim, lê §, pelo menos sempre leu comigo, removi a parte do código dele que aceitava clicks no vento(se é pra placa pra que caca vai aceitar click direito no vento) e verificar se a primeira linha da placa não está em branco Ainda n esta funcionando '-' OBS: já registrei os eventos na principal Tambem fiz Algumas alteração No Codigo. Codigo Alterado: package soup; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class Funsoup implements Listener{ @EventHandler(priority = EventPriority.HIGHEST) private void onSChange(SignChangeEvent e) { if(e.getLine(0).equalsIgnoreCase("[Sopa]")) { if(!e.getPlayer().hasPermission("funkits.sopa")) { e.setCancelled(true); } } } @EventHandler(priority = EventPriority.HIGHEST) private void onClick(PlayerInteractEvent e) { if(e.getAction() == Action.RIGHT_CLICK_BLOCK){ if(e.getClickedBlock().getState() instanceof Sign) { Sign placa = (Sign) e.getClickedBlock().getState(); if(placa.getLine(0) == null || placa.getLine(0).equalsIgnoreCase("")) return; if(placa.getLine(0).equalsIgnoreCase("§d[Sopa]")) { Inventory inv = Bukkit.createInventory(null, 6*9, "Sopa"); ItemStack sopa = new ItemStack(Material.MUSHROOM_SOUP); while(inv.firstEmpty() != -1){ inv.setItem(inv.firstEmpty(), sopa); } e.getPlayer().openInventory(inv); e.getPlayer().sendMessage("Inventário Aberto!"); } } } } } Editado Fevereiro 25, 2016 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Fevereiro 25, 2016 Denunciar Compartilhar Postado Fevereiro 25, 2016 package soup; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class Funsoup implements Listener{ public Funsoup(Principal pl){ Bukkit.getServer().getPluginManager().registerEvents(this, pl); } @EventHandler(priority = EventPriority.HIGHEST) private void onSChange(SignChangeEvent e) { if(e.getLine(0).equalsIgnoreCase("§d[Sopa]")) { if(!e.getPlayer().hasPermission("funkits.sopa")) { e.setCancelled(true); } } } @EventHandler(priority = EventPriority.HIGHEST) private void onClick(PlayerInteractEvent e) { if(e.getAction() == Action.RIGHT_CLICK_BLOCK){ if (e.getClickedBlock().getType() == Material.SIGN_POST || e.getClickedBlock().getType() == Material.WALL_SIGN) { Sign placa = (Sign) e.getClickedBlock().getState(); if(placa.getLine(0) == null || placa.getLine(0).equalsIgnoreCase("")) return; if(placa.getLine(0).equalsIgnoreCase("§d[Sopa]")) { Inventory inv = Bukkit.createInventory(null, 6*9, "Sopa"); ItemStack sopa = new ItemStack(Material.MUSHROOM_SOUP); while(inv.firstEmpty() != -1){ inv.setItem(inv.firstEmpty(), sopa); } e.getPlayer().openInventory(inv); e.getPlayer().sendMessage("Inventário Aberto!"); } } } } } public class Principal extends JavaPlugin{ public void onEnable(){ new Funsoup(this); } } Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 25, 2016 Autor Denunciar Compartilhar Postado Fevereiro 25, 2016 (editado) package soup; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class Funsoup implements Listener{ public Funsoup(Principal pl){ Bukkit.getServer().getPluginManager().registerEvents(this, pl); } @EventHandler(priority = EventPriority.HIGHEST) private void onSChange(SignChangeEvent e) { if(e.getLine(0).equalsIgnoreCase("§d[Sopa]")) { if(!e.getPlayer().hasPermission("funkits.sopa")) { e.setCancelled(true); } } } @EventHandler(priority = EventPriority.HIGHEST) private void onClick(PlayerInteractEvent e) { if(e.getAction() == Action.RIGHT_CLICK_BLOCK){ if (e.getClickedBlock().getType() == Material.SIGN_POST || e.getClickedBlock().getType() == Material.WALL_SIGN) { Sign placa = (Sign) e.getClickedBlock().getState(); if(placa.getLine(0) == null || placa.getLine(0).equalsIgnoreCase("")) return; if(placa.getLine(0).equalsIgnoreCase("§d[Sopa]")) { Inventory inv = Bukkit.createInventory(null, 6*9, "Sopa"); ItemStack sopa = new ItemStack(Material.MUSHROOM_SOUP); while(inv.firstEmpty() != -1){ inv.setItem(inv.firstEmpty(), sopa); } e.getPlayer().openInventory(inv); e.getPlayer().sendMessage("Inventário Aberto!"); } } } } } public class Principal extends JavaPlugin{ public void onEnable(){ new Funsoup(this); } } Vo testar aquele material Wall_Sign é oq ? Editado Fevereiro 25, 2016 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
Viiict0r Postado Fevereiro 25, 2016 Denunciar Compartilhar Postado Fevereiro 25, 2016 package soup; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class Funsoup implements Listener{ public Funsoup(Principal pl){ Bukkit.getServer().getPluginManager().registerEvents(this, pl); } @EventHandler(priority = EventPriority.HIGHEST) private void onSChange(SignChangeEvent e) { if(e.getLine(0).equalsIgnoreCase("&d[Sopa]")) { if(!e.getPlayer().hasPermission("funkits.sopa")) { e.setCancelled(true); p.sendMessage("§cSem permissao."); } else { e.setLine(0, "§d[Sopa]"); e.getPlayer().sendMessage("Placa de sopa colocada com sucesso!") } } } @EventHandler(priority = EventPriority.HIGHEST) private void onClick(PlayerInteractEvent e) { if(e.getAction() == Action.RIGHT_CLICK_BLOCK){ if (e.getClickedBlock().getType() == Material.SIGN_POST || e.getClickedBlock().getType() == Material.WALL_SIGN) { Sign placa = (Sign) e.getClickedBlock().getState(); if(placa.getLine(0).contains("[Sopa]")) { Inventory inv = Bukkit.createInventory(null, 6*9, "Sopa"); ItemStack sopa = new ItemStack(Material.MUSHROOM_SOUP); while(inv.firstEmpty() != -1){ inv.setItem(inv.firstEmpty(), sopa); } e.getPlayer().openInventory(inv); e.getPlayer().sendMessage("Inventário Aberto!"); } } } } } Testa ai... Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Fevereiro 25, 2016 Denunciar Compartilhar Postado Fevereiro 25, 2016 package soup; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Sign; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.SignChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; public class Funsoup implements Listener{ public Funsoup(Principal pl){ Bukkit.getServer().getPluginManager().registerEvents(this, pl); } @EventHandler(priority = EventPriority.HIGHEST) private void onSChange(SignChangeEvent e) { if(e.getLine(0).equalsIgnoreCase("&d[Sopa]")) { if(!e.getPlayer().hasPermission("funkits.sopa")) { e.setCancelled(true); p.sendMessage("§cSem permissao."); } else { e.setLine(0, "§d[Sopa]"); e.getPlayer().sendMessage("Placa de sopa colocada com sucesso!") } } } @EventHandler(priority = EventPriority.HIGHEST) private void onClick(PlayerInteractEvent e) { if(e.getAction() == Action.RIGHT_CLICK_BLOCK){ if (e.getClickedBlock().getType() == Material.SIGN_POST || e.getClickedBlock().getType() == Material.WALL_SIGN) { Sign placa = (Sign) e.getClickedBlock().getState(); if(placa.getLine(0).contains("[Sopa]")) { Inventory inv = Bukkit.createInventory(null, 6*9, "Sopa"); ItemStack sopa = new ItemStack(Material.MUSHROOM_SOUP); while(inv.firstEmpty() != -1){ inv.setItem(inv.firstEmpty(), sopa); } e.getPlayer().openInventory(inv); e.getPlayer().sendMessage("Inventário Aberto!"); } } } } } Testa ai... '-', o problema não era em colocar a placa, e sim na verificação dela Vo testar aquele material Wall_Sign é oq ? Wall = Parede Sign = Placa 1 Link para o comentário Compartilhar em outros sites More sharing options...
žφµร†ล√™ Postado Fevereiro 26, 2016 Denunciar Compartilhar Postado Fevereiro 26, 2016 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.Atenciosamente,Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
LuizB
Quero que quando o Player clique com um botão direito em uma placa Com o nome [sopa]
Abra Um GUi Cheio De SOPA
só que esta dando Erro:
o GUI n abre
codigo:
Link para o comentário
Compartilhar em outros sites
13 respostass a esta questão
Posts Recomendados