Stop the currency from going negative

Discussion in 'Plugin Development' started by CraterHater, Jun 5, 2015.

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

    CraterHater

    So basically i made a plugin that allows for a lot. It makes some GUI's but don't mind those codes. My question is: how to make a shop that checks if the player has enough tokens and then takes an amount and gives an item. This is my code:
    Code:
    package First;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.DyeColor;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Monster;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.entity.EntityDeathEvent;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.material.Dye;
    import org.bukkit.plugin.java.JavaPlugin;
    public class first extends JavaPlugin implements Listener{
       
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    
        
          
          
            if (cmd.getName().equalsIgnoreCase("Tokens")) {
                String p = sender.getName();
                String amount = getConfig().getString(p + ".Silver");
                sender.sendMessage("§b§l► §bTokens: §6§l" + amount);
            }
            return true;
    }
       
        @EventHandler
         public void onDeath(PlayerDeathEvent event) {
             Player player = event.getEntity();
             player.getInventory().clear();
             player.getInventory().addItem(new ItemStack(Material.WATCH));
         }
        public void onEnable(){
            getServer().getPluginManager().registerEvents(this, this);
      
        }
        private void openGUI(Player player) {
            Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_RED + "Server Menu");
      
            ItemStack survival = new ItemStack (Material.DIAMOND_SWORD);
            ItemMeta survivalMeta = survival.getItemMeta();
            ItemStack creative = new ItemStack (Material.DRAGON_EGG);
            ItemMeta creativeMeta = creative.getItemMeta();
            ItemStack adventure = new ItemStack (Material.BOW);
            ItemMeta adventureMeta = adventure.getItemMeta();
      
            survivalMeta.setDisplayName(ChatColor.DARK_BLUE + "PvpArena");
            survival.setItemMeta(survivalMeta);
      
            creativeMeta.setDisplayName(ChatColor.DARK_GREEN + "Mount Shop");
            creative.setItemMeta(creativeMeta);
           
            adventureMeta.setDisplayName(ChatColor.DARK_PURPLE + "Classes");
            adventure.setItemMeta(adventureMeta);
      
            inv.setItem(3, survival);
            inv.setItem(5, creative);
            inv.setItem(7, adventure);
      
            player.openInventory(inv);
        }
        @EventHandler
        public void onInventoryClick(InventoryClickEvent event) {
            if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Server Menu"))
                    return;
            Player player = (Player) event.getWhoClicked();
            event.setCancelled(true);
            if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR ||!event.getCurrentItem().hasItemMeta()) {
                player.closeInventory();
                return;
            }
            switch (event.getCurrentItem().getType()) {
            case DIAMOND_SWORD:
                Location loc = new Location(Bukkit.getWorld("WarpPvp"), 0, 100, 0);
                player.teleport(loc);
                player.closeInventory();
                break;
            case DRAGON_EGG:
                player.closeInventory();
                openGUI1(player);
                break;
            case BOW:
                player.closeInventory();
                openGUI11(player);
                break;
            default:
                player.closeInventory();
                break;
            }
        }
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent event) {
            event.getPlayer().getInventory().remove(Material.WATCH);
            event.getPlayer().getInventory().addItem(new ItemStack(Material.WATCH));
      
        }
        @EventHandler
        public void onPlayerInteract(PlayerInteractEvent event) {
            Action a = event.getAction();
            ItemStack is = event.getItem();
      
            if(a == Action.PHYSICAL ||  is == null ||  is.getType()==Material.AIR)
                return;
      
            if(is.getType()==Material.WATCH)
                openGUI(event.getPlayer());
          
      
        }
        @EventHandler
        public void onPlayerJoinEvent(PlayerJoinEvent event) {
            event.getPlayer().sendMessage(ChatColor.DARK_RED + "Welcome!");
      
      
        }
        private void openGUI1(Player player) {
            Inventory inv1 = Bukkit.createInventory(null, 9, ChatColor.DARK_RED + "Creature Menu");
      
            ItemStack dragon = new ItemStack (Material.DRAGON_EGG);
            ItemMeta dragonMeta = dragon.getItemMeta();
      
            dragonMeta.setDisplayName(ChatColor.DARK_PURPLE + "Dragon Egg Click to purchase");
            dragon.setItemMeta(dragonMeta);
           
            ItemStack Back = new ItemStack (Material.WOOL);
            Dye dye = new Dye();
            dye.setColor(DyeColor.RED);
            ItemMeta BackMeta = Back.getItemMeta();
           
            BackMeta.setDisplayName(ChatColor.RED + "Back");
            Back.setItemMeta(BackMeta);
      
            inv1.setItem(3, dragon);
            inv1.setItem(8, Back);
      
            player.openInventory(inv1);
      
        }
        @EventHandler
        public void onInventoryClick1(InventoryClickEvent event) {
            if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Creature Menu"))
                    return;
            Player player = (Player) event.getWhoClicked();
            event.setCancelled(true);
            if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR ||!event.getCurrentItem().hasItemMeta()) {
                player.closeInventory();
                return;
            }
            switch (event.getCurrentItem().getType()) {
            case DRAGON_EGG:
                ItemStack item = new ItemStack(Material.DIAMOND, 24);
                if(player.getInventory().contains(Material.DIAMOND, 24)){
                player.getInventory().removeItem(item);
                player.sendMessage("You succesfully purchased a dragon egg.");
                event.getWhoClicked().getInventory().addItem(new ItemStack(Material.DRAGON_EGG));
               
                }else{
                player.sendMessage("You do not have enough to purchase a dragon egg");
                }
               
                
                break;
               
            case WOOL:
                player.closeInventory();
                openGUI(player);
                break;
            default:
                player.closeInventory();
                break;
            }
    }
            private void openGUI11(Player player) {
                Inventory inv2 = Bukkit.createInventory(null, 9, ChatColor.DARK_RED + "Class Menu");
          
                ItemStack ClassQ = new ItemStack (Material.BOW);
                ItemMeta ClassQMeta = ClassQ.getItemMeta();
          
                ClassQMeta.setDisplayName(ChatColor.DARK_PURPLE + "Master of the Woods");
                ClassQ.setItemMeta(ClassQMeta);
               
                ItemStack ClassR = new ItemStack (Material.LEAVES);
                ItemMeta ClassRMeta = ClassR.getItemMeta();
          
                ClassRMeta.setDisplayName(ChatColor.DARK_PURPLE + "Creature Mannipulator");
                ClassR.setItemMeta(ClassRMeta);
               
                ItemStack ClassE = new ItemStack (Material.STICK);
                ItemMeta ClassEMeta = ClassE.getItemMeta();
          
                ClassEMeta.setDisplayName(ChatColor.DARK_PURPLE + "Master of the Arcane");
                ClassE.setItemMeta(ClassEMeta);
               
                ItemStack ClassW = new ItemStack (Material.IRON_SWORD);
                ItemMeta ClassWMeta = ClassW.getItemMeta();
          
                ClassWMeta.setDisplayName(ChatColor.DARK_PURPLE + "Charger of the Lines");
                ClassW.setItemMeta(ClassWMeta);
               
                ItemStack Back = new ItemStack (Material.WOOL);
                Dye dye = new Dye();
                dye.setColor(DyeColor.RED);
                ItemMeta BackMeta = Back.getItemMeta();
               
                BackMeta.setDisplayName(ChatColor.RED + "Back");
                Back.setItemMeta(BackMeta);
          
                inv2.setItem(0, ClassQ);
                inv2.setItem(2, ClassE);
                inv2.setItem(1, ClassW);
                inv2.setItem(3, ClassR);
                inv2.setItem(8, Back);
          
                player.openInventory(inv2);
          
            }
            @EventHandler
            public void onInventoryClick2(InventoryClickEvent event) {
                if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Class Menu"))
                        return;
                Player player = (Player) event.getWhoClicked();
                event.setCancelled(true);
                if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR ||!event.getCurrentItem().hasItemMeta()) {
                    player.closeInventory();
                    return;
                }
                switch (event.getCurrentItem().getType()) {
                   
                case WOOL:
                    player.closeInventory();
                    openGUI(player);
                    break;
                default:
                    player.closeInventory();
                    break;
                }
        }
                @EventHandler
                public void onKill(EntityDeathEvent e){
                    if (e.getEntity() instanceof Monster) {
                    Monster m = (Monster) e.getEntity();
                    if (m.getKiller() instanceof Player) {
                        Player p = m.getKiller();
                        giveSilver(p, 200);
                    }
                       
            }
                }
           
    
    public void giveSilver(Player p, int i) {
        getConfig().set(p.getName() + ".Silver", getConfig().getInt(p.getName() + ".Silver", 0) + i);
        saveConfig();
        p.sendMessage("200 Silver received");
    }
    
    }
    
                
    
         
    thanks in advance.
     
  2. Offline

    Zombie_Striker

    @CraterHater
    If tokens are physical items, then loop through the player's inventory contents. If its an integer saved in a map or config, you would check if the integer is greater than or equal to the amount needed.
     
  3. Offline

    Gamecube762

    1. Make a copy of the amount of tokens they have.----(Double copy = getMoney())
    2. Grab the price of what they want to buy.--------------(getPrice())
    3. Subtract the price from the copy.------------------------(Double amount = copy - getPrice)
    4. Check if the amount left is less-than or equal-to 0. (if amount <= 0)
    5. If so, deny; If not, allow.
     
  4. Offline

    teej107

    Who cares if the buyer goes broke after buying? Just check if the amount left is below 0!
     
  5. Offline

    CraterHater

    I don't fully understand can you give example.

    How to check for that?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 12, 2016
  6. Offline

    mythbusterma

    @CraterHater

    If the current amount of money they have minus the price of the item is less than zero, fail the transaction. I really don't know how much simpler we can make it.
     
  7. Offline

    CraterHater

    I made some of it but i have problems with this part:
    Code:
    case DRAGON_EGG:
                String p = player.getName();
                String amount1 = getConfig().getString(p + ".Silver");
                Player p = p.getWhoClicked(); //i didn't knew what to place in this line
                takeSilver(p, 200);
    the full code:
    Code:
    package First;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.DyeColor;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.HumanEntity;
    import org.bukkit.entity.Monster;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.entity.EntityDeathEvent;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.material.Dye;
    import org.bukkit.plugin.java.JavaPlugin;
    public class first extends JavaPlugin implements Listener{
       
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    
        
          
          
            if (cmd.getName().equalsIgnoreCase("Tokens")) {
                String p = sender.getName();
                String amount = getConfig().getString(p + ".Silver");
                sender.sendMessage("§b§l► §bTokens: §6§l" + amount);
            }
            return true;
    }
       
        @EventHandler
         public void onDeath(PlayerDeathEvent event) {
             Player player = event.getEntity();
             player.getInventory().clear();
             player.getInventory().addItem(new ItemStack(Material.WATCH));
         }
        public void onEnable(){
            getServer().getPluginManager().registerEvents(this, this);
      
        }
        private void openGUI(Player player) {
            Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_RED + "Server Menu");
      
            ItemStack survival = new ItemStack (Material.DIAMOND_SWORD);
            ItemMeta survivalMeta = survival.getItemMeta();
            ItemStack creative = new ItemStack (Material.DRAGON_EGG);
            ItemMeta creativeMeta = creative.getItemMeta();
            ItemStack adventure = new ItemStack (Material.BOW);
            ItemMeta adventureMeta = adventure.getItemMeta();
      
            survivalMeta.setDisplayName(ChatColor.DARK_BLUE + "PvpArena");
            survival.setItemMeta(survivalMeta);
      
            creativeMeta.setDisplayName(ChatColor.DARK_GREEN + "Mount Shop");
            creative.setItemMeta(creativeMeta);
           
            adventureMeta.setDisplayName(ChatColor.DARK_PURPLE + "Classes");
            adventure.setItemMeta(adventureMeta);
      
            inv.setItem(3, survival);
            inv.setItem(5, creative);
            inv.setItem(7, adventure);
      
            player.openInventory(inv);
        }
        @EventHandler
        public void onInventoryClick(InventoryClickEvent event) {
            if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Server Menu"))
                    return;
            Player player = (Player) event.getWhoClicked();
            event.setCancelled(true);
            if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR ||!event.getCurrentItem().hasItemMeta()) {
                player.closeInventory();
                return;
            }
            switch (event.getCurrentItem().getType()) {
            case DIAMOND_SWORD:
                Location loc = new Location(Bukkit.getWorld("WarpPvp"), 0, 100, 0);
                player.teleport(loc);
                player.closeInventory();
                break;
            case DRAGON_EGG:
                player.closeInventory();
                openGUI1(player);
                break;
            case BOW:
                player.closeInventory();
                openGUI11(player);
                break;
            default:
                player.closeInventory();
                break;
            }
        }
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent event) {
            event.getPlayer().getInventory().remove(Material.WATCH);
            event.getPlayer().getInventory().addItem(new ItemStack(Material.WATCH));
      
        }
        @EventHandler
        public void onPlayerInteract(PlayerInteractEvent event) {
            Action a = event.getAction();
            ItemStack is = event.getItem();
      
            if(a == Action.PHYSICAL ||  is == null ||  is.getType()==Material.AIR)
                return;
      
            if(is.getType()==Material.WATCH)
                openGUI(event.getPlayer());
          
      
        }
        @EventHandler
        public void onPlayerJoinEvent(PlayerJoinEvent event) {
            event.getPlayer().sendMessage(ChatColor.DARK_RED + "Welcome!");
      
      
        }
        private void openGUI1(Player player) {
            Inventory inv1 = Bukkit.createInventory(null, 9, ChatColor.DARK_RED + "Creature Menu");
      
            ItemStack dragon = new ItemStack (Material.DRAGON_EGG);
            ItemMeta dragonMeta = dragon.getItemMeta();
      
            dragonMeta.setDisplayName(ChatColor.DARK_PURPLE + "Dragon Egg Click to purchase");
            dragon.setItemMeta(dragonMeta);
           
            ItemStack Back = new ItemStack (Material.WOOL);
            Dye dye = new Dye();
            dye.setColor(DyeColor.RED);
            ItemMeta BackMeta = Back.getItemMeta();
           
            BackMeta.setDisplayName(ChatColor.RED + "Back");
            Back.setItemMeta(BackMeta);
      
            inv1.setItem(3, dragon);
            inv1.setItem(8, Back);
      
            player.openInventory(inv1);
      
        }
        @EventHandler
        public void onInventoryClick1(InventoryClickEvent event) {
            if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Creature Menu"))
                    return;
            Player player = (Player) event.getWhoClicked();
            event.setCancelled(true);
            if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR ||!event.getCurrentItem().hasItemMeta()) {
                player.closeInventory();
                return;
            }
            switch (event.getCurrentItem().getType()) {
            case DRAGON_EGG:
                String p = player.getName();
                String amount1 = getConfig().getString(p + ".Silver");
                Player p = p.getWhoClicked(); //i didn't knew what to place in this line
                takeSilver(p, 200);
               
            case WOOL:
                player.closeInventory();
                openGUI(player);
                break;
            default:
                player.closeInventory();
                break;
            }
    }
            private void openGUI11(Player player) {
                Inventory inv2 = Bukkit.createInventory(null, 9, ChatColor.DARK_RED + "Class Menu");
          
                ItemStack ClassQ = new ItemStack (Material.BOW);
                ItemMeta ClassQMeta = ClassQ.getItemMeta();
          
                ClassQMeta.setDisplayName(ChatColor.DARK_PURPLE + "Master of the Woods");
                ClassQ.setItemMeta(ClassQMeta);
               
                ItemStack ClassR = new ItemStack (Material.LEAVES);
                ItemMeta ClassRMeta = ClassR.getItemMeta();
          
                ClassRMeta.setDisplayName(ChatColor.DARK_PURPLE + "Creature Mannipulator");
                ClassR.setItemMeta(ClassRMeta);
               
                ItemStack ClassE = new ItemStack (Material.STICK);
                ItemMeta ClassEMeta = ClassE.getItemMeta();
          
                ClassEMeta.setDisplayName(ChatColor.DARK_PURPLE + "Master of the Arcane");
                ClassE.setItemMeta(ClassEMeta);
               
                ItemStack ClassW = new ItemStack (Material.IRON_SWORD);
                ItemMeta ClassWMeta = ClassW.getItemMeta();
          
                ClassWMeta.setDisplayName(ChatColor.DARK_PURPLE + "Charger of the Lines");
                ClassW.setItemMeta(ClassWMeta);
               
                ItemStack Back = new ItemStack (Material.WOOL);
                Dye dye = new Dye();
                dye.setColor(DyeColor.RED);
                ItemMeta BackMeta = Back.getItemMeta();
               
                BackMeta.setDisplayName(ChatColor.RED + "Back");
                Back.setItemMeta(BackMeta);
          
                inv2.setItem(0, ClassQ);
                inv2.setItem(2, ClassE);
                inv2.setItem(1, ClassW);
                inv2.setItem(3, ClassR);
                inv2.setItem(8, Back);
          
                player.openInventory(inv2);
          
            }
            @EventHandler
            public void onInventoryClick2(InventoryClickEvent event) {
                if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Class Menu"))
                        return;
                Player player = (Player) event.getWhoClicked();
                event.setCancelled(true);
                if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR ||!event.getCurrentItem().hasItemMeta()) {
                    player.closeInventory();
                    return;
                }
                switch (event.getCurrentItem().getType()) {
                   
                case WOOL:
                    player.closeInventory();
                    openGUI(player);
                    break;
                default:
                    player.closeInventory();
                    break;
                }
        }
                @EventHandler
                public void onKill(EntityDeathEvent e){
                    if (e.getEntity() instanceof Monster) {
                    Monster m = (Monster) e.getEntity();
                    if (m.getKiller() instanceof Player) {
                        Player p = m.getKiller();
                        giveSilver(p, 5);
                    }
                       
            }
                }
           
    
    public void giveSilver(Player p, int i) {
        getConfig().set(p.getName() + ".Silver", getConfig().getInt(p.getName() + ".Silver", 0) + i);
        saveConfig();
        p.sendMessage("5 Tokens received");
    }
    public void takeSilver(Player p, int i) {
        getConfig().set(p.getName() + ".Silver", getConfig().getInt(p.getName() + ".Silver", 0) - i);
        saveConfig();
        p.sendMessage("200 Tokens taken");
    }
    }
    
                
    
         
    How to fail the transaction i got this:
    Code:
        Double copy = getMoney();
                Double amount = copy - 200;
                if (amount <= 0);
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 12, 2016
  8. Offline

    TheDiamond06

    @CraterHater
    check if their amount is less than or equal to the amount you want to remove.
    Why would you put a semi-colon after an if-statement?! Honestly if this was not on purpose you should learn java.
    Code:java
    1. if(amount <= [amount you are taking away])
    2. {
    3. // do stuff
    4. }

    Don't copy/paste that w/out knowing what it is/does.
     
  9. Offline

    CraterHater

    I just don't get it. I feel really stupid and i am... Can you give example?
     
  10. Offline

    I Al Istannen

    @CraterHater Lets say they have 300 silver. Then the amount would be 300. They buy sth. for 400 Silver. Then "amount" (300) is less than the price (400). If this happens fail the transaction.
     
  11. Offline

    CraterHater

    I understand but how do i make an transaction fail. Sorry if that's to obvious but i just can't get this.
     
  12. Offline

    I Al Istannen

    @CraterHater Don't withdraw the money and don't give the items. And maybe send a message.
     
  13. Offline

    CraterHater

    Can you give example. i am really confused by now.
     
  14. Offline

    TheDiamond06

    @CraterHater
    how is this confusing:
    1.) Check if the amount you are trying to remove is greater than or equal to the amount of tokens the player has.
    2.) If it is send them a message saying they don't have enough and return.
    3.) If they do have that amount then take away the amount you want to take away and do whatever else.
    Example:
    Code:java
    1. if([amountTakingAway] >= [theirBalance])
    2. {
    3. // error message
    4. return;
    5. }
    6. // past here you know they have enough money so take that money away and give them what they are buying.
     
  15. Offline

    CraterHater

    Thx but what is wrong with the code, it doesn't work:
    Code:
    package First;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.DyeColor;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Monster;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.entity.EntityDeathEvent;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.material.Dye;
    import org.bukkit.plugin.java.JavaPlugin;
    public class first extends JavaPlugin implements Listener{
       
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
    
        
          
          
            if (cmd.getName().equalsIgnoreCase("Tokens")) {
                String p = sender.getName();
                String amount = getConfig().getString(p + ".Silver");
                sender.sendMessage("§b§l► §bTokens: §6§l" + amount);
            }
            return true;
    }
       
        @EventHandler
         public void onDeath(PlayerDeathEvent event) {
             Player player = event.getEntity();
             player.getInventory().clear();
             player.getInventory().addItem(new ItemStack(Material.WATCH));
         }
        public void onEnable(){
            getServer().getPluginManager().registerEvents(this, this);
      
        }
        private void openGUI(Player player) {
            Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_RED + "Server Menu");
      
            ItemStack survival = new ItemStack (Material.DIAMOND_SWORD);
            ItemMeta survivalMeta = survival.getItemMeta();
            ItemStack creative = new ItemStack (Material.DRAGON_EGG);
            ItemMeta creativeMeta = creative.getItemMeta();
            ItemStack adventure = new ItemStack (Material.BOW);
            ItemMeta adventureMeta = adventure.getItemMeta();
      
            survivalMeta.setDisplayName(ChatColor.DARK_BLUE + "PvpArena");
            survival.setItemMeta(survivalMeta);
      
            creativeMeta.setDisplayName(ChatColor.DARK_GREEN + "Mount Shop");
            creative.setItemMeta(creativeMeta);
           
            adventureMeta.setDisplayName(ChatColor.DARK_PURPLE + "Classes");
            adventure.setItemMeta(adventureMeta);
      
            inv.setItem(3, survival);
            inv.setItem(5, creative);
            inv.setItem(7, adventure);
      
            player.openInventory(inv);
        }
        @EventHandler
        public void onInventoryClick(InventoryClickEvent event) {
            if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Server Menu"))
                    return;
            Player player = (Player) event.getWhoClicked();
            event.setCancelled(true);
            if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR ||!event.getCurrentItem().hasItemMeta()) {
                player.closeInventory();
                return;
            }
            switch (event.getCurrentItem().getType()) {
            case DIAMOND_SWORD:
                Location loc = new Location(Bukkit.getWorld("WarpPvp"), 0, 100, 0);
                player.teleport(loc);
                player.closeInventory();
                break;
            case DRAGON_EGG:
                player.closeInventory();
                openGUI1(player);
                break;
            case BOW:
                player.closeInventory();
                openGUI11(player);
                break;
            default:
                player.closeInventory();
                break;
            }
        }
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent event) {
            event.getPlayer().getInventory().remove(Material.WATCH);
            event.getPlayer().getInventory().addItem(new ItemStack(Material.WATCH));
      
        }
        @EventHandler
        public void onPlayerInteract(PlayerInteractEvent event) {
            Action a = event.getAction();
            ItemStack is = event.getItem();
      
            if(a == Action.PHYSICAL ||  is == null ||  is.getType()==Material.AIR)
                return;
      
            if(is.getType()==Material.WATCH)
                openGUI(event.getPlayer());
          
      
        }
        @EventHandler
        public void onPlayerJoinEvent(PlayerJoinEvent event) {
            event.getPlayer().sendMessage(ChatColor.DARK_RED + "Welcome!");
      
      
        }
        private void openGUI1(Player player) {
            Inventory inv1 = Bukkit.createInventory(null, 9, ChatColor.DARK_RED + "Creature Menu");
      
            ItemStack dragon = new ItemStack (Material.DRAGON_EGG);
            ItemMeta dragonMeta = dragon.getItemMeta();
      
            dragonMeta.setDisplayName(ChatColor.DARK_PURPLE + "Dragon Egg Click to purchase");
            dragon.setItemMeta(dragonMeta);
           
            ItemStack Back = new ItemStack (Material.WOOL);
            Dye dye = new Dye();
            dye.setColor(DyeColor.RED);
            ItemMeta BackMeta = Back.getItemMeta();
           
            BackMeta.setDisplayName(ChatColor.RED + "Back");
            Back.setItemMeta(BackMeta);
      
            inv1.setItem(3, dragon);
            inv1.setItem(8, Back);
      
            player.openInventory(inv1);
      
        }
        @EventHandler
        public void onInventoryClick1(InventoryClickEvent event) {
            if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Creature Menu"))
                    return;
            Player player = (Player) event.getWhoClicked();
            event.setCancelled(true);
            if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR ||!event.getCurrentItem().hasItemMeta()) {
                player.closeInventory();
                return;
            }
            switch (event.getCurrentItem().getType()) {
            case DRAGON_EGG:
                if(200 >= 0)
                {
                    player.sendMessage("hi");
                     return;
                }
                Player p = (Player) event.getWhoClicked(); //this i do not understand
                takeSilver(p, 5);
                player.getInventory().addItem(new ItemStack(Material.DRAGON_EGG));
               
               
               
            case WOOL:
                player.closeInventory();
                openGUI(player);
                break;
            default:
                player.closeInventory();
                break;
            }
    
           
        }
    
            private void openGUI11(Player player) {
                Inventory inv2 = Bukkit.createInventory(null, 9, ChatColor.DARK_RED + "Class Menu");
          
                ItemStack ClassQ = new ItemStack (Material.BOW);
                ItemMeta ClassQMeta = ClassQ.getItemMeta();
          
                ClassQMeta.setDisplayName(ChatColor.DARK_PURPLE + "Master of the Woods");
                ClassQ.setItemMeta(ClassQMeta);
               
                ItemStack ClassR = new ItemStack (Material.LEAVES);
                ItemMeta ClassRMeta = ClassR.getItemMeta();
          
                ClassRMeta.setDisplayName(ChatColor.DARK_PURPLE + "Creature Mannipulator");
                ClassR.setItemMeta(ClassRMeta);
               
                ItemStack ClassE = new ItemStack (Material.STICK);
                ItemMeta ClassEMeta = ClassE.getItemMeta();
          
                ClassEMeta.setDisplayName(ChatColor.DARK_PURPLE + "Master of the Arcane");
                ClassE.setItemMeta(ClassEMeta);
               
                ItemStack ClassW = new ItemStack (Material.IRON_SWORD);
                ItemMeta ClassWMeta = ClassW.getItemMeta();
          
                ClassWMeta.setDisplayName(ChatColor.DARK_PURPLE + "Charger of the Lines");
                ClassW.setItemMeta(ClassWMeta);
               
                ItemStack Back = new ItemStack (Material.WOOL);
                Dye dye = new Dye();
                dye.setColor(DyeColor.RED);
                ItemMeta BackMeta = Back.getItemMeta();
               
                BackMeta.setDisplayName(ChatColor.RED + "Back");
                Back.setItemMeta(BackMeta);
          
                inv2.setItem(0, ClassQ);
                inv2.setItem(2, ClassE);
                inv2.setItem(1, ClassW);
                inv2.setItem(3, ClassR);
                inv2.setItem(8, Back);
          
                player.openInventory(inv2);
          
            }
            @EventHandler
            public void onInventoryClick2(InventoryClickEvent event) {
                if(!ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Class Menu"))
                        return;
                Player player = (Player) event.getWhoClicked();
                event.setCancelled(true);
                if(event.getCurrentItem()==null || event.getCurrentItem().getType()==Material.AIR ||!event.getCurrentItem().hasItemMeta()) {
                    player.closeInventory();
                    return;
                }
                switch (event.getCurrentItem().getType()) {
                   
                case WOOL:
                    player.closeInventory();
                    openGUI(player);
                    break;
                default:
                    player.closeInventory();
                    break;
                }
        }
                @EventHandler
                public void onKill(EntityDeathEvent e){
                    if (e.getEntity() instanceof Monster) {
                    Monster m = (Monster) e.getEntity();
                    if (m.getKiller() instanceof Player) {
                        Player p = m.getKiller();
                        giveSilver(p, 5);
                    }
                       
            }
                }
           
    
    public void giveSilver(Player p, int i) {
        getConfig().set(p.getName() + ".Silver", getConfig().getInt(p.getName() + ".Silver", 0) + i);
        saveConfig();
        p.sendMessage("5 Tokens received");
    }
    public void takeSilver(Player p, int i) {
        getConfig().set(p.getName() + ".Silver", getConfig().getInt(p.getName() + ".Silver", 0) - i);
        saveConfig();
        p.sendMessage("5 Tokens Taken");
    }
    }
    
                
    
         
     
  16. Offline

    TheDiamond06

    @CraterHater You copied half of this code from a youtube video.... or maybe all... Please learn bukkit/java.
     
  17. Offline

    Zombie_Striker

    Neonix and teej107 like this.
Thread Status:
Not open for further replies.

Share This Page