Vault in 2 Classes

Discussion in 'Plugin Development' started by xXkguyXx, Jul 7, 2015.

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

    xXkguyXx

    Hi, I'am Having Trouble Implemeintg Vault into 2 classes. Thanks in Advanced.
     
  2. Offline

    SuperSniper

    You're trying to make the VaultAPI be able to be used in both classes correct? If that's so, do this for the classes that you want to implement vault into.

    MainClass.economy.STUFF
     
  3. Offline

    xXkguyXx

    Yes, But I dont understand what you mean by MainClass.economy.STUFF
     
  4. Offline

    SuperSniper

    Ill show you, hold on, im loading my eclipse up :p
     
  5. Offline

    xXkguyXx

    heres My code:

    package MagEnchant.Main;

    import net.milkbowl.vault.economy.Economy;
    import net.milkbowl.vault.economy.EconomyResponse;

    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.plugin.RegisteredServiceProvider;
    import org.bukkit.plugin.java.JavaPlugin;


    import com.rit.sucy.EnchantmentAPI;

    public class Main extends JavaPlugin {

    public static Economy econ = null;

    public void onEnable() {
    registerCommands();
    if (!setupEconomy() ) {
    getLogger().severe(String.format("[%s] - Disabled due to no Vault dependency found!", getDescription().getName()));
    getServer().getPluginManager().disablePlugin(this);
    return;
    }
    }


    private boolean setupEconomy() {
    if (getServer().getPluginManager().getPlugin("Vault") == null) {
    return false;
    }
    RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
    if (rsp == null) {
    return false;
    }
    econ = rsp.getProvider();
    return econ != null;
    }
    private void registerCommands() {
    getCommand("Tests").setExecutor(new Main2());
    }

    public void onDisable() {
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label,
    String[] args) {
    Player p = (Player) sender;
    if (cmd.getName().equalsIgnoreCase("Test")) {
    if (!(sender.hasPermission("Test.Test"))){
    sender.sendMessage(ChatColor.RED + "NU");
    return true;
    }
    EconomyResponse r = econ.withdrawPlayer(p.getName(), 2000);
    if (r.transactionSuccess()) {
    if (p.getItemInHand().getType().equals(Material.DIAMOND_SWORD)) {
    ItemStack Test = p.getItemInHand();

    EnchantmentAPI.getEnchantment("Lifesteal").addToItem(Test, 10);
    p.sendMessage(ChatColor.GREEN + "$2000 Was Taken From Your Account");
    p.sendMessage(ChatColor.GREEN + "Enchantment Added.");

    } else {
    p.sendMessage(ChatColor.RED + "This Enchantment Can Only Be Added On A DiamondSword");
    econ.depositPlayer(p.getName(), 2000);
    return true;
    }

    }
    else {
    p.sendMessage(ChatColor.RED + "You Do Not Have Enough Cash");
    return true;
    }
    }
    return false;
    }


    public static Economy getEcon() {
    // TODO Auto-generated method stub
    return null;
    }
    }





    package MagEnchant.Main;

    import net.milkbowl.vault.economy.Economy;
    import net.milkbowl.vault.economy.EconomyResponse;

    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.ItemStack;

    import com.rit.sucy.EnchantmentAPI;


    public class Main2 implements CommandExecutor {


    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label,
    String[] args) {
    Player p = (Player) sender;
    if (cmd.getName().equalsIgnoreCase("Tests")) {
    if (!(sender.hasPermission("Test.Test"))){
    sender.sendMessage(ChatColor.RED + "NU");
    return true;
    }
    EconomyResponse r = econ.withdrawPlayer(p.getName(), 2000);
    if (r.transactionSuccess()) {
    if (p.getItemInHand().getType().equals(Material.DIAMOND_SWORD)) {
    ItemStack Test = p.getItemInHand();

    EnchantmentAPI.getEnchantment("Lifesteal").addToItem(Test, 10);
    p.sendMessage(ChatColor.GREEN + "$2000 Was Taken From Your Account");
    p.sendMessage(ChatColor.GREEN + "Enchantment Added.");

    } else {
    p.sendMessage(ChatColor.RED + "This Enchantment Can Only Be Added On A DiamondSword");
    econ.depositPlayer(p.getName(), 2000);
    return true;
    }

    }
    else {
    p.sendMessage(ChatColor.RED + "You Do Not Have Enough Cash");
    return true;
    }
    }
    return false;
    }
    }

    Ok.

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

    SuperSniper

    Lets say your main class is this:

    Code:
    package me.plugin.plugin;
    
    import java.util.logging.Logger;
    
    import net.milkbowl.vault.chat.Chat;
    import net.milkbowl.vault.economy.Economy;
    import net.milkbowl.vault.permission.Permission;
    
    import org.bukkit.plugin.RegisteredServiceProvider;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin {
    
        private static final Logger log = Logger.getLogger("Minecraft");
        public static Economy econ = null;
        public static Permission perms = null;
        public static Chat chat = null;
    
        @Override
        public void onDisable() {
            log.info(String.format("[%s] Disabled Version %s", getDescription().getName(), getDescription().getVersion()));
        }
    
        @Override
        public void onEnable() {
            if (!setupEconomy() ) {
                log.severe(String.format("[%s] - Disabled due to no Vault dependency found!", getDescription().getName()));
                getServer().getPluginManager().disablePlugin(this);
                return;
            }
            setupPermissions();
            setupChat();
        }
    
        private boolean setupEconomy() {
            if (getServer().getPluginManager().getPlugin("Vault") == null) {
                return false;
            }
            RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
            if (rsp == null) {
                return false;
            }
            econ = rsp.getProvider();
            return econ != null;
        }
    
        private boolean setupChat() {
            RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
            chat = rsp.getProvider();
            return chat != null;
        }
    
        private boolean setupPermissions() {
            RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
            perms = rsp.getProvider();
            return perms != null;
        }
    }
    
    And your other class is this:

    Code:
    package me.plugin.plugin;
    
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerInteractEvent;
    
    public class Vault implements Listener {
       
        Main plugin;
       
        public Vault(Main main){
            this.plugin = main;
           
        }
       
        @EventHandler
        public void onHit(PlayerInteractEvent e) {
            Main.econ.depositPlayer(e.getPlayer(), 20222);
        }
       
    
    }
    
    As you see, in my "Vault" class, on my PlayerInteractEvent, I did Main.econ.depositPlayer(), "Main" meaning my main class, "econ" meaning vault,
     
  7. Offline

    xXkguyXx

    Oh
    I see
     
  8. Offline

    SuippoKala

    @SuperSniper
    That is really helpful for newbies like me, thanks!
     
Thread Status:
Not open for further replies.

Share This Page