Solved Implementing Vault

Discussion in 'Plugin Development' started by YoYoNoYo555, Jan 10, 2016.

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

    YoYoNoYo555

    Hello, I am having trouble implementing Vault into my plugin. here is what I have.
    main class
    Code:
    package com.BrianGamesLOL;
    
    import net.milkbowl.vault.economy.Economy;
    import net.milkbowl.vault.economy.EconomyResponse;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.World;
    import org.bukkit.block.Sign;
    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.player.PlayerInteractEvent;
    import org.bukkit.permissions.Permission;
    
    
    public class interact implements Listener{
        main configGetter;   
       
        Economy econ = null;
       
        public Permission use = new Permission("SWT.use");
       
        public interact(main plugin){
            plugin.getServer().getPluginManager().registerEvents(this, plugin);
                    configGetter= plugin;
        }
        @EventHandler
        public void onSignClick(PlayerInteractEvent e){
            Player player = e.getPlayer();
            if(e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.LEFT_CLICK_BLOCK){
                if(e.getClickedBlock().getState() instanceof Sign){
                    Sign sign = (Sign) e.getClickedBlock().getState();
                    if(sign.getLine(0).equals("["+ChatColor.DARK_GREEN+"Grinder"+ChatColor.BLACK+"]")){
                        if(player.hasPermission(use)){
                            String Money = sign.getLine(2);
                            Money = Money.replaceAll("$", "");
                            double checkamount = Double.parseDouble(Money);
                            EconomyResponse r = econ.withdrawPlayer(player.getName(), checkamount);
                           
                            if(r.transactionSuccess()){
                        String arena = sign.getLine(1);
                        double x = configGetter.getConfig().getDouble("Arenas."+arena+".X");
                        double y = configGetter.getConfig().getDouble("Arenas."+arena+".Y");
                        double z = configGetter.getConfig().getDouble("Arenas."+arena+".Z");
                        float yaw = Float.parseFloat(configGetter.getConfig().getString("Arenas."+arena+".Yaw"));
                        float pitch = Float.parseFloat(configGetter.getConfig().getString("Arenas."+arena+".Pitch"));
                        World world = Bukkit.getWorld(configGetter.getConfig().getString("Arenas."+arena+".World"));
                        Location location = new Location(world, x, y, z, yaw, pitch);
                        player.teleport(location);
                        String Minutes = sign.getLine(3);
                        String Money2 = sign.getLine(2);
                        Minutes = Minutes.replaceAll("m", "");
                        Money2 = Money2.replaceAll("$", "");
                        final String total = Money2;
                        final String time = Minutes;
                        sign.setLine(0, ChatColor.BLACK+"["+ChatColor.RED+"Grinder"+ChatColor.BLACK+"]");
                        sign.setLine(1, sign.getLine(1));
                        sign.setLine(2, ChatColor.RED+"IN USE!");
                        sign.setLine(3, "");
                        sign.update();
                       
                        String Teleport = configGetter.getConfig().getString("TeleportMessage");
                        Teleport = Teleport.replaceAll("<Player>", player.getName());
                        Teleport = Teleport.replaceAll("<player>", player.getName());
                        Teleport = Teleport.replaceAll("<minutes>", time);
                        Teleport = Teleport.replaceAll("<Minutes>", time);
                        Teleport = ChatColor.translateAlternateColorCodes('&', Teleport);
                        player.sendMessage(Teleport);
                        configGetter.getServer().getScheduler().scheduleSyncDelayedTask(configGetter, new Runnable(){
                            public void run(){
                                double x = configGetter.getConfig().getDouble("Spawn.X");
                                double y = configGetter.getConfig().getDouble("Spawn.Y");
                                double z = configGetter.getConfig().getDouble("Spawn.Z");
                                float yaw = Float.parseFloat(configGetter.getConfig().getString("Spawn.Yaw"));
                                float pitch = Float.parseFloat(configGetter.getConfig().getString("Spawn.Pitch"));
                                World world = Bukkit.getWorld(configGetter.getConfig().getString("Spawn.World"));
                                Location location = new Location(world, x, y, z, yaw, pitch);
                                player.teleport(location);
                               
                                String timeup = configGetter.getConfig().getString("timeup");
                                timeup = timeup.replaceAll("<Player>", player.getName());
                                timeup = timeup.replaceAll("<player>", player.getName());
                                timeup = ChatColor.translateAlternateColorCodes('&', timeup);
                               
                                player.sendMessage(timeup);
                               
                                sign.setLine(0, ChatColor.BLACK+"["+ChatColor.DARK_GREEN+"Grinder"+ChatColor.BLACK+"]");
                                sign.setLine(1, sign.getLine(1));
                                sign.setLine(2, total);
                                sign.setLine(3, time+"m");
                                sign.update();
                            }
                           
                        }, 1200L*Integer.parseInt(time));
                           
                            }else{
                                player.sendMessage(ChatColor.RED+"You Do Not Have Enough Money!");
                               
                            }
                        }else{
                            String noPermission = configGetter.getConfig().getString("noPermission");
                            noPermission = noPermission.replaceAll("<Player>", player.getName());
                            noPermission = noPermission.replaceAll("<player>", player.getName());
                            noPermission = ChatColor.translateAlternateColorCodes('&', noPermission);
                            player.sendMessage(noPermission);
                        }
                       
                       
                    }
                }
            }
        }
    
    }
    
    interact class
    Code:
    package com.BrianGamesLOL;
    
    import net.milkbowl.vault.economy.Economy;
    import net.milkbowl.vault.economy.EconomyResponse;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Location;
    import org.bukkit.World;
    import org.bukkit.block.Sign;
    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.player.PlayerInteractEvent;
    import org.bukkit.permissions.Permission;
    
    
    public class interact implements Listener{
        main configGetter;   
       
        Economy econ = null;
       
        public Permission use = new Permission("SWT.use");
       
        public interact(main plugin){
            plugin.getServer().getPluginManager().registerEvents(this, plugin);
                    configGetter= plugin;
        }
        @EventHandler
        public void onSignClick(PlayerInteractEvent e){
            Player player = e.getPlayer();
            if(e.getAction() == Action.RIGHT_CLICK_BLOCK || e.getAction() == Action.LEFT_CLICK_BLOCK){
                if(e.getClickedBlock().getState() instanceof Sign){
                    Sign sign = (Sign) e.getClickedBlock().getState();
                    if(sign.getLine(0).equals("["+ChatColor.DARK_GREEN+"Grinder"+ChatColor.BLACK+"]")){
                        if(player.hasPermission(use)){
                            String Money = sign.getLine(2);
                            Money = Money.replaceAll("$", "");
                            double checkamount = Double.parseDouble(Money);
                            EconomyResponse r = econ.withdrawPlayer(player.getName(), checkamount);
                           
                            if(r.transactionSuccess()){
                        String arena = sign.getLine(1);
                        double x = configGetter.getConfig().getDouble("Arenas."+arena+".X");
                        double y = configGetter.getConfig().getDouble("Arenas."+arena+".Y");
                        double z = configGetter.getConfig().getDouble("Arenas."+arena+".Z");
                        float yaw = Float.parseFloat(configGetter.getConfig().getString("Arenas."+arena+".Yaw"));
                        float pitch = Float.parseFloat(configGetter.getConfig().getString("Arenas."+arena+".Pitch"));
                        World world = Bukkit.getWorld(configGetter.getConfig().getString("Arenas."+arena+".World"));
                        Location location = new Location(world, x, y, z, yaw, pitch);
                        player.teleport(location);
                        String Minutes = sign.getLine(3);
                        String Money2 = sign.getLine(2);
                        Minutes = Minutes.replaceAll("m", "");
                        Money2 = Money2.replaceAll("$", "");
                        final String total = Money2;
                        final String time = Minutes;
                        sign.setLine(0, ChatColor.BLACK+"["+ChatColor.RED+"Grinder"+ChatColor.BLACK+"]");
                        sign.setLine(1, sign.getLine(1));
                        sign.setLine(2, ChatColor.RED+"IN USE!");
                        sign.setLine(3, "");
                        sign.update();
                       
                        String Teleport = configGetter.getConfig().getString("TeleportMessage");
                        Teleport = Teleport.replaceAll("<Player>", player.getName());
                        Teleport = Teleport.replaceAll("<player>", player.getName());
                        Teleport = Teleport.replaceAll("<minutes>", time);
                        Teleport = Teleport.replaceAll("<Minutes>", time);
                        Teleport = ChatColor.translateAlternateColorCodes('&', Teleport);
                        player.sendMessage(Teleport);
                        configGetter.getServer().getScheduler().scheduleSyncDelayedTask(configGetter, new Runnable(){
                            public void run(){
                                double x = configGetter.getConfig().getDouble("Spawn.X");
                                double y = configGetter.getConfig().getDouble("Spawn.Y");
                                double z = configGetter.getConfig().getDouble("Spawn.Z");
                                float yaw = Float.parseFloat(configGetter.getConfig().getString("Spawn.Yaw"));
                                float pitch = Float.parseFloat(configGetter.getConfig().getString("Spawn.Pitch"));
                                World world = Bukkit.getWorld(configGetter.getConfig().getString("Spawn.World"));
                                Location location = new Location(world, x, y, z, yaw, pitch);
                                player.teleport(location);
                               
                                String timeup = configGetter.getConfig().getString("timeup");
                                timeup = timeup.replaceAll("<Player>", player.getName());
                                timeup = timeup.replaceAll("<player>", player.getName());
                                timeup = ChatColor.translateAlternateColorCodes('&', timeup);
                               
                                player.sendMessage(timeup);
                               
                                sign.setLine(0, ChatColor.BLACK+"["+ChatColor.DARK_GREEN+"Grinder"+ChatColor.BLACK+"]");
                                sign.setLine(1, sign.getLine(1));
                                sign.setLine(2, total);
                                sign.setLine(3, time+"m");
                                sign.update();
                            }
                           
                        }, 1200L*Integer.parseInt(time));
                           
                            }else{
                                player.sendMessage(ChatColor.RED+"You Do Not Have Enough Money!");
                               
                            }
                        }else{
                            String noPermission = configGetter.getConfig().getString("noPermission");
                            noPermission = noPermission.replaceAll("<Player>", player.getName());
                            noPermission = noPermission.replaceAll("<player>", player.getName());
                            noPermission = ChatColor.translateAlternateColorCodes('&', noPermission);
                            player.sendMessage(noPermission);
                        }
                       
                       
                    }
                }
            }
        }
    
    }
    
    
    I am getting a bunch of errors when I click the sign and it says that it cannot load PlayerInteractEvent.
    Thank you, any help is appreciated.
     
  2. Offline

    mine-care

    Few issues of concern:
    Please follow Java Naming Conventions

    Dont use .replaceAll(..,..) its for regex's. Instead use String#replace(String param);

    Now back to the problem, can you send us the error(s)? so far it can be anything from an NPE to any possible exception
     
  3. Offline

    Zombie_Striker

    @mine-care
    "econ" is never set to anything, so it is null. You need to get the economy instance.
     
    mine-care likes this.
Thread Status:
Not open for further replies.

Share This Page