LuizB Postado Fevereiro 13, 2016 Denunciar Compartilhar Postado Fevereiro 13, 2016 Como faço pra quando um player clicar em um item ele n consiga mover no GUI Codigo: @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { Player p = (Player)sender; if (!(sender instanceof Player)) { sender.sendMessage((Object)ChatColor.BLUE + "Este Comando não pode ser Usado Pelo Console"); if (command.getName().equals("particula")) { Inventory inv = Bukkit.createInventory(null, 6*9, getConfig().getString("nomedomenu").replace("@jogador", p.getName())); ItemStack fogo = new ItemStack(Material.BLAZE_POWDER); ItemMeta fogometa = fogo.getItemMeta(); fogometa.setDisplayName(getConfig().getString("nomefogo").replace("@jogador", p.getName())); ArrayList<String> lore = new ArrayList<>(); lore.add(getConfig().getString("lorefogo").replace("&", "§").replaceAll("@jogador", p.getName())); fogometa.setLore(lore); fogo.setItemMeta(fogometa); Link para o comentário Compartilhar em outros sites More sharing options...
zDubsCrazy Banido Postado Fevereiro 14, 2016 Denunciar Compartilhar Postado Fevereiro 14, 2016 Na Classe Events Coloca Isto né: public class Eventos extends JavaPlugin implements Listener{ ou só o Implements ? Só implementa o Listener, extende a JavaPlugin apenas na classe principal. 1 Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Fevereiro 13, 2016 Denunciar Compartilhar Postado Fevereiro 13, 2016 @EventHandler public void onInventoryClick(InventoryClickEvent e){ final Player p = e.getPlayer(); ItemStack it = e.getClickedItem(); if(it.getType() == Material.DIAMOND && it.hasItemMeta() && it.getItemMeta().hasDisplayName() && it.getItemMeta().getDisplayName().equals("§cNome do Item §4HERE")){ e.setCancelled(true); new BukkitRunnable(){ @Override public void run(){ p.updateInventory();//Isso aqui só faz atualizar o inventário, tipo, se o negro tiver tentando dupar, isso tira aquele item 'fantasma' do inventário do negro } }.runTaskLater(this, 20L); p.sendMessage("§bWOW, vocÊ cicou no item de dima que faz bosta nenhuma"); p.teleport(Location);//Sei lá } } Fiz aqui no fórum mesmo, acho que ta certo :c 1 Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 13, 2016 Autor Denunciar Compartilhar Postado Fevereiro 13, 2016 @EventHandler public void onInventoryClick(InventoryClickEvent e){ final Player p = e.getPlayer(); ItemStack it = e.getClickedItem(); if(it.getType() == Material.DIAMOND && it.hasItemMeta() && it.getItemMeta().hasDisplayName() && it.getItemMeta().getDisplayName().equals("§cNome do Item §4HERE")){ e.setCancelled(true); new BukkitRunnable(){ @Override public void run(){ p.updateInventory();//Isso aqui só faz atualizar o inventário, tipo, se o negro tiver tentando dupar, isso tira aquele item 'fantasma' do inventário do negro } }.runTaskLater(this, 20L); p.sendMessage("§bWOW, vocÊ cicou no item de dima que faz bosta nenhuma"); p.teleport(Location);//Sei lá } } Fiz aqui no fórum mesmo, acho que ta certo :c Tipo esse é sem comando quero com comando '- Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Fevereiro 13, 2016 Denunciar Compartilhar Postado Fevereiro 13, 2016 Tipo esse é sem comando quero com comando '- Você pediu ajuda no código para fazer com que o player clique no inventário e não possa furtar os itens, não como abrir o menu GUI. @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { Player p = (Player)sender; if (!(sender instanceof Player)) { sender.sendMessage((Object)ChatColor.BLUE + "Este Comando não pode ser Usado Pelo Console"); return true; } if (command.getName().equals("particula")) { Inventory inv = Bukkit.createInventory(null, 6*9, getConfig().getString("nomedomenu").replace("@jogador", p.getName())); ItemStack fogo = new ItemStack(Material.BLAZE_POWDER); ItemMeta fogometa = fogo.getItemMeta(); fogometa.setDisplayName(getConfig().getString("nomefogo").replace("@jogador", p.getName())); ArrayList<String> lore = new ArrayList<>(); lore.add(getConfig().getString("lorefogo").replace("&", "§").replaceAll("@jogador", p.getName())); fogometa.setLore(lore); fogo.setItemMeta(fogometa); inv.addItem(fogo);//inv.setitem(slot, itemstack); p.openInventory(inv); return true; } return false; } Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 13, 2016 Autor Denunciar Compartilhar Postado Fevereiro 13, 2016 (editado) Você pediu ajuda no código para fazer com que o player clique no inventário e não possa furtar os itens, não como abrir o menu GUI. @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { Player p = (Player)sender; if (!(sender instanceof Player)) { sender.sendMessage((Object)ChatColor.BLUE + "Este Comando não pode ser Usado Pelo Console"); return true; } if (command.getName().equals("particula")) { Inventory inv = Bukkit.createInventory(null, 6*9, getConfig().getString("nomedomenu").replace("@jogador", p.getName())); ItemStack fogo = new ItemStack(Material.BLAZE_POWDER); ItemMeta fogometa = fogo.getItemMeta(); fogometa.setDisplayName(getConfig().getString("nomefogo").replace("@jogador", p.getName())); ArrayList<String> lore = new ArrayList<>(); lore.add(getConfig().getString("lorefogo").replace("&", "§").replaceAll("@jogador", p.getName())); fogometa.setLore(lore); fogo.setItemMeta(fogometa); inv.addItem(fogo);//inv.setitem(slot, itemstack); p.openInventory(inv); return true; } return false; } ue tem assim tem plugins que usa comando pra abrir GUI como o PowerMoedas Do MrPowerGamerBr. eu ja ate testei só que dava pra furtar os itens abriu o menu e tudo Editado Fevereiro 13, 2016 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
zDubsCrazy Banido Postado Fevereiro 13, 2016 Denunciar Compartilhar Postado Fevereiro 13, 2016 ue tem assim tem plugins que usa comando pra abrir GUI como o PowerMoedas Do MrPowerGamerBr O Comando abre o GUI e o evento impede que os itens sejam movidos. 1 Link para o comentário Compartilhar em outros sites More sharing options...
??? Postado Fevereiro 13, 2016 Denunciar Compartilhar Postado Fevereiro 13, 2016 ue tem assim tem plugins que usa comando pra abrir GUI como o PowerMoedas Do MrPowerGamerBr O Comando abre o GUI e o evento impede que os itens sejam movidos. Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 13, 2016 Autor Denunciar Compartilhar Postado Fevereiro 13, 2016 O Comando abre o GUI e o evento impede que os itens sejam movidos. Entendi Mais como eu posso organizar isto, pode ser em outra classe ?, se sim como ? Link para o comentário Compartilhar em outros sites More sharing options...
zDubsCrazy Banido Postado Fevereiro 13, 2016 Denunciar Compartilhar Postado Fevereiro 13, 2016 (editado) Entendi Mais como eu posso organizar isto, pode ser em outra classe ?, se sim como ? Pode botar em outra classe, basta registrar os eventos: Bukkit.getPluginManager().registerEvents(new ClasseQueTaOsEventos(), this); Isso fica no onEnable() Editado Fevereiro 13, 2016 por Sorrizo Ronaldo Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 13, 2016 Autor Denunciar Compartilhar Postado Fevereiro 13, 2016 Pode botar em outra classe, basta registrar os eventos: Bukkit.getPluginManager().registerEvents(new ClasseQueTaOsEventos(), this); Isso fica no onEnable() entao eu crio uma classe chamada Eventos e coloco o eventhandle. ai na classe dos Comandos eu coloco Bukkit.getPluginManager().registerEvents(new Classeeventos(), this); Isto ? Link para o comentário Compartilhar em outros sites More sharing options...
zDubsCrazy Banido Postado Fevereiro 13, 2016 Denunciar Compartilhar Postado Fevereiro 13, 2016 entao eu crio uma classe chamada Eventos e coloco o eventhandle. ai na classe dos Comandos eu coloco Bukkit.getPluginManager().registerEvents(new Classeeventos(), this); Isto ? Onde eu disse que é na classe dos Comandos? Disse que fica no onEnable() Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 13, 2016 Autor Denunciar Compartilhar Postado Fevereiro 13, 2016 Onde eu disse que é na classe dos Comandos? Disse que fica no onEnable() ss eu coloco o Bukkit.getPluginManager().registerEvents(new Classeeventos(), this) na classe dos comandos no OnEnable Onde eu disse que é na classe dos Comandos? Disse que fica no onEnable() Sorrizo Ronaldo Este Codigo : @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { Player p = (Player)sender; if (!(sender instanceof Player)) { sender.sendMessage((Object)ChatColor.BLUE + "Este Comando não pode ser Usado Pelo Console"); return true; } if (command.getName().equals("particula")) { Inventory inv = Bukkit.createInventory(null, 6*9, getConfig().getString("nomedomenu").replace("@jogador", p.getName())); ItemStack fogo = new ItemStack(Material.BLAZE_POWDER); ItemMeta fogometa = fogo.getItemMeta(); fogometa.setDisplayName(getConfig().getString("nomefogo").replace("@jogador", p.getName())); ArrayList<String> lore = new ArrayList<>(); lore.add(getConfig().getString("lorefogo").replace("&", "§").replaceAll("@jogador", p.getName())); fogometa.setLore(lore); fogo.setItemMeta(fogometa); inv.addItem(fogo);//inv.setitem(slot, itemstack); p.openInventory(inv); return true; } return false; } Ja abre Um Gui Como faço pra ele abrir somente Este GUI: ? @EventHandler public void onInventoryClick(InventoryClickEvent e){ final Player p = e.getPlayer(); ItemStack it = e.getClickedItem(); if(it.getType() == Material.DIAMOND && it.hasItemMeta() && it.getItemMeta().hasDisplayName() && it.getItemMeta().getDisplayName().equals("§cNome do Item §4HERE")){ e.setCancelled(true); new BukkitRunnable(){ @Override public void run(){ p.updateInventory();//Isso aqui só faz atualizar o inventário, tipo, se o negro tiver tentando dupar, isso tira aquele item 'fantasma' do inventário do negro } }.runTaskLater(this, 20L); p.sendMessage("§bWOW, vocÊ cicou no item de dima que faz bosta nenhuma"); p.teleport(Location);//Sei lá } } Link para o comentário Compartilhar em outros sites More sharing options...
zDubsCrazy Banido Postado Fevereiro 13, 2016 Denunciar Compartilhar Postado Fevereiro 13, 2016 ss eu coloco o Bukkit.getPluginManager().registerEvents(new Classeeventos(), this) na classe dos comandos no OnEnable Sorrizo Ronaldo Este Codigo : @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { Player p = (Player)sender; if (!(sender instanceof Player)) { sender.sendMessage((Object)ChatColor.BLUE + "Este Comando não pode ser Usado Pelo Console"); return true; } if (command.getName().equals("particula")) { Inventory inv = Bukkit.createInventory(null, 6*9, getConfig().getString("nomedomenu").replace("@jogador", p.getName())); ItemStack fogo = new ItemStack(Material.BLAZE_POWDER); ItemMeta fogometa = fogo.getItemMeta(); fogometa.setDisplayName(getConfig().getString("nomefogo").replace("@jogador", p.getName())); ArrayList<String> lore = new ArrayList<>(); lore.add(getConfig().getString("lorefogo").replace("&", "§").replaceAll("@jogador", p.getName())); fogometa.setLore(lore); fogo.setItemMeta(fogometa); inv.addItem(fogo);//inv.setitem(slot, itemstack); p.openInventory(inv); return true; } return false; } Ja abre Um Gui Como faço pra ele abrir somente Este GUI: ? @EventHandler public void onInventoryClick(InventoryClickEvent e){ final Player p = e.getPlayer(); ItemStack it = e.getClickedItem(); if(it.getType() == Material.DIAMOND && it.hasItemMeta() && it.getItemMeta().hasDisplayName() && it.getItemMeta().getDisplayName().equals("§cNome do Item §4HERE")){ e.setCancelled(true); new BukkitRunnable(){ @Override public void run(){ p.updateInventory();//Isso aqui só faz atualizar o inventário, tipo, se o negro tiver tentando dupar, isso tira aquele item 'fantasma' do inventário do negro } }.runTaskLater(this, 20L); p.sendMessage("§bWOW, vocÊ cicou no item de dima que faz bosta nenhuma"); p.teleport(Location);//Sei lá } } Pqp mano, presta atenção nas coisas, o código tá feito vey... Não são dois GUI's, o comando abre o GUI e o evento impede de mover os itens, cada um tem uma função. Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 13, 2016 Autor Denunciar Compartilhar Postado Fevereiro 13, 2016 (editado) Ah ta então o : if(it.getType() == Material.DIAMOND && it.hasItemMeta() && it.getItemMeta().hasDisplayName() && it.getItemMeta().getDisplayName().equals("§cNome do Item §4HERE")){ Vai ser o Item que eu quero que não mova ?Desculpa ser tão burro pq comecei java praticamente Ontem, aushudhausdhasds Editado Fevereiro 13, 2016 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
zDubsCrazy Banido Postado Fevereiro 13, 2016 Denunciar Compartilhar Postado Fevereiro 13, 2016 Ah ta então o : if(it.getType() == Material.DIAMOND && it.hasItemMeta() && it.getItemMeta().hasDisplayName() && it.getItemMeta().getDisplayName().equals("§cNome do Item §4HERE")){ Vai ser o Item que eu quero que não mova ? Sim, não tem como deixar mais claro que isso. 1 Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 13, 2016 Autor Denunciar Compartilhar Postado Fevereiro 13, 2016 Sim, não tem como deixar mais claro que isso. Obrigado Segura meu like ae Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 14, 2016 Autor Denunciar Compartilhar Postado Fevereiro 14, 2016 Sim, não tem como deixar mais claro que isso. Na Classe Events Coloca Isto né: public class Eventos extends JavaPlugin implements Listener{ ou só o Implements ? Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Fevereiro 14, 2016 Autor Denunciar Compartilhar Postado Fevereiro 14, 2016 Só implementa o Listener, extende a JavaPlugin apenas na classe principal. Nesta Linha: @Override public void onEnable() { Bukkit.getPluginManager().registerEvents(new Eventos(), this); File f = new File(getDataFolder(), "config.yml"); if(!f.exists()); saveResource("config.yml", false); No registerEvents Da Este Erro: The method registerEvents(Listener, Plugin) in the type PluginManager is not applicable for the arguments (Eventos, Opengui) Link para o comentário Compartilhar em outros sites More sharing options...
zDubsCrazy Banido Postado Fevereiro 14, 2016 Denunciar Compartilhar Postado Fevereiro 14, 2016 (editado) Nesta Linha: @Override public void onEnable() { Bukkit.getPluginManager().registerEvents(new Eventos(), this); File f = new File(getDataFolder(), "config.yml"); if(!f.exists()); saveResource("config.yml", false); No registerEvents Da Este Erro: The method registerEvents(Listener, Plugin) in the type PluginManager is not applicable for the arguments (Eventos, Opengui) Mano dá uma estudada, aprende pelo menos um pouquinho de Java que vai ficar mais fácil tu usar a API do Bukkit. Você tem que passar um Listener (Classe 'Eventos') e um Plugin (Classe principal): (Não precisa extender a JavaPlugin em todas as classes, apenas na PRINCIPAL, o onEnable() deve ficar apenas na PRINCIPAL) Editado Fevereiro 14, 2016 por Sorrizo Ronaldo 1 Link para o comentário Compartilhar em outros sites More sharing options...
Langsdorf Postado Fevereiro 14, 2016 Denunciar Compartilhar Postado Fevereiro 14, 2016 Tópico movido e fechado. 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
Como faço pra quando um player clicar em um item ele n consiga mover no GUI Codigo:
Link para o comentário
Compartilhar em outros sites
20 respostass a esta questão
Posts Recomendados