Inventory don't open?

Discussion in 'Plugin Development' started by SophiaDev, Apr 16, 2016.

Thread Status:
Not open for further replies.
  1. Offline

    SophiaDev

    I need help.
    The inventory of this code don't work.
    No have errors or anything, only don't work :|

    IventoryGUI :

    Code:
    
    public class InventoryGUI implements Listener, CommandExecutor {
    
        public static void GuiGeral(Player p) {
            Inventory inv = Bukkit.createInventory(p, 54, "§eAdminHappy");
    
            ItemStack vidro = new ItemStack(Material.THIN_GLASS);
            ItemMeta metav = vidro.getItemMeta();
            metav.setDisplayName("§eSelect a item for troll the player!");
            vidro.setItemMeta(metav);
    
            ItemStack arena = new ItemStack(Material.BEDROCK);
            ItemMeta arenameta = arena.getItemMeta();
            arenameta.setDisplayName("§3Leave a player stuck on a rock structure!");
            arena.setItemMeta(arenameta);
    
            ItemStack crash = new ItemStack(Material.RED_ROSE);
            ItemMeta crashmeta = crash.getItemMeta();
            crashmeta.setDisplayName("§3Crashes a player!");
            crash.setItemMeta(crashmeta);
    
            inv.setItem(0, vidro);
            inv.setItem(1, vidro);
            inv.setItem(2, vidro);
            inv.setItem(3, vidro);
            inv.setItem(4, vidro);
            inv.setItem(5, vidro);
            inv.setItem(6, vidro);
            inv.setItem(7, vidro);
            inv.setItem(8, vidro);
            inv.setItem(9, vidro);
    
            inv.setItem(10, arena);
            inv.setItem(11, vidro);
            inv.setItem(12, crash);
        }
    
        @EventHandler
        public void onPlayerCLickInventry(InventoryClickEvent e) {
            Player p = (Player) e.getWhoClicked();
            if ((e.getInventory().getTitle().equalsIgnoreCase("§eAdminHappy")) && (e.getCurrentItem() != null)
                    && (e.getCurrentItem().getTypeId() != 0)) {
                e.setCancelled(true);
                if (e.getCurrentItem().getType() == Material.BEDROCK) {
                    e.setCancelled(true);
                    p.closeInventory();
                    p.playSound(p.getLocation(), Sound.CHICKEN_HURT, 4.0F, 4.0F);
                    p.sendMessage("§c'Arena' added in your inventory.");
                    Main.createItem(Material.BEDROCK, "§3Arena", "§3Leave a player stuck on a rock estructure!", p);
                    return;
                }
                e.setCancelled(true);
            }
    
            if ((e.getInventory().getTitle().equalsIgnoreCase("§eAdminHappy")) && (e.getCurrentItem() != null)
                    && (e.getCurrentItem().getTypeId() != 0)) {
                e.setCancelled(true);
                if (e.getCurrentItem().getType() == Material.RED_ROSE) {
                    e.setCancelled(true);
                    p.closeInventory();
                    p.playSound(p.getLocation(), Sound.CHICKEN_HURT, 4.0F, 4.0F);
                    p.sendMessage("§c'Crasher' added in your inventory.");
                    Main.createItem(Material.BEDROCK, "§3Arena", "§3Leave a player stuck on a rock estructure!", p);
                    return;
                }
                e.setCancelled(true);
            }
    
        }
    
        @EventHandler
        public void onInteractArena(PlayerInteractEntityEvent e) {
            Player p = e.getPlayer();
            if (p.hasPermission(("admin.happy")) && ((p.getItemInHand().getType() == Material.BEDROCK))
                    && (p.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§3Arena"))) {
                Player r = (Player) e.getRightClicked();
                r.getLocation().add(0.0D, 13.0D, 0.0D).getBlock().setType(Material.BEDROCK);
                r.getLocation().add(0.0D, 11.0D, 1.0D).getBlock().setType(Material.BEDROCK);
                r.getLocation().add(1.0D, 11.0D, 0.0D).getBlock().setType(Material.BEDROCK);
                r.getLocation().add(0.0D, 11.0D, -1.0D).getBlock().setType(Material.BEDROCK);
                r.getLocation().add(-1.0D, 11.0D, 0.0D).getBlock().setType(Material.BEDROCK);
                r.getLocation().add(0.0D, 10.0D, 0.0D).getBlock().setType(Material.BEDROCK);
                r.teleport(r.getLocation().add(0.0D, 11.0D, -0.05D));
                p.teleport(p.getLocation().add(0.0D, 7.0D, 0.0D));
                p.sendMessage("§cArena created with §7" + r.getName() + "§c inside!");
            }
        }
    
        @EventHandler
        public void onInteractCrash(PlayerInteractEntityEvent e) {
            Player p = e.getPlayer();
            if ((p.hasPermission("admin.happy")) && (p.getItemInHand().getType() == Material.RED_ROSE)
                    && (p.getItemInHand().getItemMeta().getDisplayName().equalsIgnoreCase("§3Crasher"))) {
                Player r = (Player) e.getRightClicked();
                r.setHealthScale(9.49592994E8D);
                p.sendMessage("§cPlayer crashed.");
            }
    
        }
    
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if ((commandLabel.equalsIgnoreCase("ah")) || (commandLabel.equalsIgnoreCase("adminhappy"))) {
                Player p = (Player) sender;
                GuiGeral(p);
            }
            return false;
        }
    
    }
    
    
    
    Main:

    Code:
    public class Main extends JavaPlugin implements CommandExecutor {
    
        public static Main plugin;
    
        public static Main getMain() {
            return plugin;
        }
    
        PluginManager pm = Bukkit.getPluginManager();
    
        public void onEnable() {
            Bukkit.getConsoleSender().sendMessage("§eAdminHappy enabled!");
            plugin = this;
            pm.registerEvents(new InventoryGUI(), this);
            getCommand("ah").setExecutor(this);
            getCommand("adminhappy").setExecutor(this);
        }
    
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if ((commandLabel.equalsIgnoreCase("ah")) || (commandLabel.equalsIgnoreCase("adminhappy"))) {
                Player p = (Player) sender;
                InventoryGUI.GuiGeral(p);
            }
            return false;
        }
    
        public static void createItem(Material material, String display, String desc, Player p) {
            ItemStack item = new ItemStack(material);
            ItemMeta meta = item.getItemMeta();
            item.setItemMeta(meta);
    
            meta.setDisplayName(display);
            ArrayList<String> description = new ArrayList<>();
            description.add(desc);
            meta.setLore(description);
    
            p.getInventory().addItem(item);
        }
    
    }
    
    And config.yml:
    Code:
    name: HappyAdmin
    version: 1.0
    main: admin.happy.arx.Main
    author: ArxDev
    commands:
      ah:
      adminhappy:
     
  2. Offline

    S7W

    On your GuiGeral add this at the end
    PHP:
    p.openInventory(inv);
     
  3. Offline

    SophiaDev

    Thanks!
     
  4. Offline

    Zombie_Striker

    @SophiaDev
    If his reply solved your problem, mark this thread as solved.
     
  5. Offline

    ItsMas_

    May I ask what method you are using to crash a player?
     
  6. Offline

    mine-care

    Don't blind-cast! Also use Command.getName() instead of the label to suppoort alias commands.


    @ItsMas_
    http://wiki.vg/Protocol
    Here you can find all packets. If you read, you will notice that some crash the client if missused. So you can purposively missuse them ;)
     
  7. Offline

    mcdorli

    That's very illegal though.
     
  8. Offline

    DoggyCode™

    Sneaky peaky-like. Outlaw.
     
  9. Offline

    mine-care

    @DoggyCode™ @mcdorli :eek: is it?
    To crash a minecraft client??
    I was not aware of that :/ can you point me out to a resource (article, post, TOS page, anything) that i can read more about at? I am just learning about it and i need more info :S
     
  10. Offline

    mcdorli

    I think it goes in the same category as self op plugins. Best way to find out if iit truly is is to create a test account on bukkitdev and try to upload one. I also don't recommend this.
     
  11. Offline

    Zombie_Striker

    @mine-care @mcdorli
    You can kick,ban, or disconnect the user. You cannot however purposefully crash/break a client as doing so may be seen as "malicious".
     
  12. Offline

    mine-care

    @Zombie_Striker Hmm :/
    Didn't know that, but i thought it was allowed since quite some plugins out there crash the client (Crash, not disconnect)
     
Thread Status:
Not open for further replies.

Share This Page