RemoveGems error

Discussion in 'Plugin Development' started by jurtjee1997, Jan 27, 2014.

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

    jurtjee1997

    Hey,

    Whats wrong i with removegems?

    Code:
    package me.jurtjee.Gems;
     
    import org.bukkit.ChatColor;
    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.entity.EntityDeathEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class Main extends JavaPlugin implements Listener{
       
        public void onEnable() {
            getServer().getPluginManager().registerEvents(this, this);
        }
       
        @EventHandler
        public void onJoin(PlayerJoinEvent e) {
            Player p = e.getPlayer();
           
            if(!getConfig().contains(p.getName())) {
                getConfig().set(p.getName() + ".Gems", 0);
            }
        }
       
        @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();
                    giveGems(p, 1);
                }
            }   
        }
       
        public void giveGems(Player p, int i) {
            getConfig().set(p.getName() + ".Gems", getConfig().getInt(p.getName() + ".Gems", 0) + i);
            saveConfig();
        }
       
        public void removeGems(Player p, int i) {
            getConfig().set(p.getName() + ".Gems", getConfig().getInt(p.getName() + ".Gems", 0) - i);
            saveConfig();
        }
       
        @EventHandler
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            Player player = (Player) sender;
            if(cmd.getName().equalsIgnoreCase("gems")) {
                player.sendMessage(ChatColor.RED + "You have " + "" + getConfig().getInt(player.getName() + ".Gems", 0) + " Gems");
            }
            if(cmd.getName().equalsIgnoreCase("gg")){
                if(player.hasPermission("gems.give")) {
                    if (args.length == 1) {
                        giveGems(player, Integer.parseInt(args[0]));
                        sender.sendMessage(ChatColor.RED + "You get " + Integer.parseInt(args[0]) + " Gems");
                    if (args.length == 2) {
                        Player targetPlayer = player.getServer().getPlayer(args[1]);
                        giveGems(player, Integer.parseInt(args[0]));
                        targetPlayer.sendMessage(ChatColor.RED + "You get " + Integer.parseInt(args[0]) + " Gems");
                    }
                    }
                }
                else {
                    sender.sendMessage(ChatColor.RED + "You don't have permission");
                }
            }
          if(cmd.getName().equalsIgnoreCase("gr")){
              if(player.hasPermission("gems.remove")) {
                  if (args.length == 1) {
                        removeGems(player, Integer.parseInt(args[0]));
                  if (args.length == 2) {
                        removeGems(player, Integer.parseInt(args[0]));
                }
                }
            }
              else {
                  sender.sendMessage(ChatColor.RED + "You don't have permission");
            }
        }
           
            return false;
        }
    }
    
     
  2. Offline

    MrInspector

    You didn't really specify anything, is this like a IDE error or in-game error?
     
  3. Offline

    sebasju1234

  4. Offline

    iiHeroo


    Well for one, you're putting an EventHandler above the onCommand :I
     
    sebasju1234 likes this.
  5. Offline

    _Cookie_

    @jurtjee1997
    I don't get how this is going to work.. If you're just getting the player? Wouldn't you need to get the player name for the config file to actually find the player?
    Such as:
    Code:java
    1. public void removeGems(String name, int i) {
    2. getConfig().set(p.getName() + ".Gems", getConfig().getInt(name + ".Gems", 0) - i);
    3. saveConfig();
    4. }

    Then when in onCommand:
    Code:java
    1. if(cmd.getName().equalsIgnoreCase("gr")){
    2. String pname = p.getName();
    3. if(player.hasPermission("gems.remove")) {
    4. if (args.length == 1) {
    5. removeGems(name, Integer.parseInt(args[0]));
    6. if (args.length == 2) {
    7. removeGems(name, Integer.parseInt(args[0]));
    8. }
    9. }
    10. }
    11. else {
    12. sender.sendMessage(ChatColor.RED + "You don't have permission");
    13. }
    14. }


    That's how I would think it would work :/
     
  6. Offline

    jurtjee1997

    _Cookie_
    not working

    I will to remove and give player Gems. But how?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 6, 2016
Thread Status:
Not open for further replies.

Share This Page