Guest User

Untitled

a guest
Sep 14th, 2016
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.54 KB | None | 0 0
  1.  package me.PumpMelon.Referal;
  2.  
  3. import java.io.File;
  4. import java.util.HashMap;
  5. import java.util.logging.Logger;
  6.  
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.ChatColor;
  9. import org.bukkit.command.Command;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.configuration.ConfigurationSection;
  12. import org.bukkit.configuration.file.YamlConfiguration;
  13. import org.bukkit.entity.Player;
  14. import org.bukkit.event.EventHandler;
  15. import org.bukkit.event.Listener;
  16. import org.bukkit.event.player.PlayerJoinEvent;
  17. import org.bukkit.plugin.RegisteredServiceProvider;
  18. import org.bukkit.plugin.java.JavaPlugin;
  19.  
  20. import net.milkbowl.vault.economy.Economy;
  21. import net.milkbowl.vault.economy.EconomyResponse;
  22.  
  23. public class Referal extends JavaPlugin implements Listener{
  24.    
  25.     public static Economy econ = null;
  26.     public Logger log = Logger.getLogger("myLogger");
  27.     YamlConfiguration config;
  28.     ConfigurationSection config_tags;
  29.    
  30.     public static HashMap<String, Integer> referrals = new HashMap<String, Integer>();
  31.  
  32.  
  33.    
  34.     // loading a config
  35.     public void loadConfig(){
  36.         if(!(new File(getDataFolder(), "config.yml").exists())){
  37.            
  38.             saveDefaultConfig();
  39.             this.config.set("econ-rewards.", true);
  40.             this.config.set("sender-amount.", 50);
  41.             this.config.set("reciever-amount.", 20);
  42.             }
  43.        
  44.            
  45.         this.config.getConfigurationSection("refers").getKeys(true);
  46.         for(String p : this.config_tags.getKeys(false)){
  47.             referrals.put(p, this.config_tags.getInt(p));
  48.            
  49.         }
  50.        
  51.        
  52.         }
  53.    
  54.     public void onEnable(){
  55.         config = (YamlConfiguration) getConfig();
  56.  
  57.         for(Player p : Bukkit.getServer().getOnlinePlayers()){
  58.             if(!config.contains(p.getName().toLowerCase())){
  59.  
  60.             config.createSection("refers." + p.getPlayer().getName().toLowerCase());
  61.             saveConfig();
  62.         }
  63.     }
  64.  
  65.  
  66.         Bukkit.getPluginManager().registerEvents(this, this);
  67.         if (!setupEconomy() ) {
  68.             log.severe(String.format("[%s] - Disabled due to no Vault dependency found!", getDescription().getName()));
  69.             getServer().getPluginManager().disablePlugin(this);
  70.             return;
  71.         }
  72.         loadConfig();
  73.        
  74.         this.saveConfig();
  75.         }
  76.    
  77.     public void onDisable(){
  78.         this.saveConfig();
  79.     }
  80.    
  81.     private boolean setupEconomy() {
  82.         if (getServer().getPluginManager().getPlugin("Vault") == null) {
  83.             return false;
  84.         }
  85.         RegisteredServiceProvider<Economy> rsp = getServer().getServicesManager().getRegistration(Economy.class);
  86.         if (rsp == null) {
  87.             return false;
  88.         }
  89.         econ = rsp.getProvider();
  90.         return econ != null;
  91.     }
  92.     public String prefix = "§8[§cReferralsPlus§8]§7 ";
  93.     @Override
  94.     public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  95.  
  96.         if(!(sender instanceof Player)){
  97.             sender.sendMessage(prefix + "You must be a player! ");
  98.             return true;
  99.            
  100.         }
  101.         // This command adds +1 referral to the target player
  102.         if(cmd.getName().equalsIgnoreCase("refer") && sender.hasPermission("refer.use")){
  103.             if(!sender.hasPermission("refer.use")){
  104.                 sender.sendMessage(prefix + "I'm sorry, but you do not have permission to do this!");
  105.                 return true;
  106.             }
  107.             if(args.length == 0){
  108.                 sender.sendMessage(" ");
  109.                 sender.sendMessage(prefix + "Referrals v1.2 was developed by PumpMelon");
  110.                 sender.sendMessage(prefix + "/refer <player> ");
  111.                 sender.sendMessage(prefix + "/refersee <player>");
  112.  
  113.                 if(sender.hasPermission("refer.admin")){
  114.                     sender.sendMessage(prefix + "/referload");
  115.                     sender.sendMessage(prefix + "/referbypass <player>");
  116.                     return true;
  117.                 }
  118.                 sender.sendMessage(" ");
  119.                 return true;
  120.             }
  121.             else if(args.length > 1){
  122.                 sender.sendMessage(prefix + "Too many arguements! /refer to check usage.");
  123.                 return true;
  124.                
  125.             }
  126.             else if(args.length == 1){
  127.                 @SuppressWarnings("deprecation")
  128.                 Player player = Bukkit.getPlayer(args[0]);
  129.  
  130.                 // Checks if they already have referred someone
  131.             if(config.getString("never." + sender.getName().toLowerCase()) != null){
  132.                 sender.sendMessage(prefix + "You have already referred someone!");
  133.                 return true;
  134.             }
  135.                     // Checks if they try to refer themselves
  136.                 if(player.getName() == sender.getName()){
  137.                     sender.sendMessage(prefix + "You cannot refer yourself!");
  138.                     return true;
  139.                    
  140.                 }
  141.                 //Checks if target is null
  142.                 else if(player.getName() == null){
  143.                     sender.sendMessage(prefix + "That player is offline or not a player!");
  144.                     return true;
  145.                 }
  146.                 String neverpath = "never." + sender.getName().toLowerCase();
  147.                 String path = "refers." + player.getName().toLowerCase();
  148.                 if(config.getString(path) != null){
  149.                      int refers = config.getInt(path);
  150.                         config.set("refers." + player.getName().toLowerCase(), refers + 1);
  151.                         saveConfig();
  152.                 }
  153.                 sender.sendMessage(prefix + "You have sent a referal for " + player.getDisplayName());
  154.                 this.config.set("never." + sender.getName().toLowerCase(), neverpath);
  155.                 saveConfig();
  156.                 Player p = (Player) sender;
  157.                 String econpath = "econ-rewards." + true;
  158.                
  159.                
  160.                 if(config.getBoolean(econpath) ==  true){
  161.                  EconomyResponse r = econ.depositPlayer(player, config.getInt("reciever-amount"));
  162.                  EconomyResponse r2 = econ.depositPlayer(p, config.getInt("sender-amount"));
  163.                  if(r.transactionSuccess()){
  164.                      player.sendMessage(prefix + sender.getName() + " referred you, therefore you get " + ChatColor.GREEN +  "$" + config.getInt("reciever-amount"));
  165.                  }
  166.                  if(r2.transactionSuccess()){
  167.                      sender.sendMessage(prefix + "You referred " + player.getName() + " earning you " + ChatColor.GREEN + "$" +  config.getInt("sender-amount"));
  168.                  }
  169.  
  170.             }
  171.                 if(config.getBoolean(econpath) != true){
  172.                     player.sendMessage(prefix + sender.getName() + " referred you!");
  173.                     sender.sendMessage(prefix + "You have successfully referred " + player.getName());
  174.                 }
  175.                 return true;
  176.            
  177.                
  178.             }
  179.            
  180.         }
  181.        
  182.        
  183.        
  184.         // Refer bypass command
  185.         if(cmd.getName().equalsIgnoreCase("referbypass") && sender.hasPermission("refer.bypass")){
  186.             @SuppressWarnings("deprecation")
  187.             Player target = Bukkit.getPlayer(args[0]);
  188.             String neverpath = "never." + target.getName().toLowerCase();
  189.            
  190.                    
  191.                 if(config.contains(neverpath)){
  192.                     config.set(neverpath, null);  
  193.                     reloadConfig();
  194.                     saveConfig();
  195.                     sender.sendMessage(prefix + target.getName() +  " may now send another referral!");
  196.                
  197.                
  198.                 return false;
  199.                 }
  200.                 else if(args.length < 0 || args.length > 0){
  201.                     sender.sendMessage(prefix + "Incorrect arguements! Please see /refer for usage.");
  202.                    
  203.                     return true;
  204.                     }
  205.                 else if(target.getName() == null){
  206.                     sender.sendMessage(prefix + "That player is offline or not a player!");
  207.                     return true;
  208.                 }
  209.                 else if(!config.contains(neverpath)){
  210.                     sender.sendMessage(prefix + target + " has never referred someone before!");
  211.                     return true;
  212.                 }
  213.         }
  214.        
  215.    
  216.    
  217.    
  218.    
  219.    
  220.         // this command checks to see how many referrals target player has
  221.         if(cmd.getName().equalsIgnoreCase("refersee")&& sender.hasPermission("refer.see")){
  222.             if(!sender.hasPermission("refer.see")){
  223.                 sender.sendMessage(prefix + "I'm sorry, but you do not have permission to do this!");
  224.             }
  225.             if(args.length > 1 || args.length < 1){
  226.                 sender.sendMessage(prefix + "Incorrect arguements! Please do /refer to see the menu.");
  227.                 return true;
  228.             }
  229.             if(args.length == 1){
  230.                 @SuppressWarnings("deprecation")
  231.                 Player player = Bukkit.getPlayer(args[0]);
  232.                 if(player == null){
  233.                     sender.sendMessage(prefix + "The player, " + args[0] + "is offline or not a player!");
  234.                     return true;
  235.                 }
  236.  
  237.                 if(!config.contains("refers." + player.getName().toLowerCase())){
  238.                 }
  239.                 int total = config.getInt("refers." + player.getName().toLowerCase());
  240.                 sender.sendMessage(prefix + player.getDisplayName() + " §7has " + "§c" + total + "§7 referrals!");
  241.                 return true;
  242.  
  243.             }
  244.            
  245.         }
  246.         if(cmd.getName().equalsIgnoreCase("referload")&& sender.hasPermission("refer.admin")){
  247.             if(!sender.hasPermission("refer.admin")){
  248.                 sender.sendMessage(prefix + "I'm sorry, but you do not have permission to do this!");
  249.             }
  250.             this.reloadConfig();
  251.             saveConfig();
  252.             sender.sendMessage(prefix + "Referrals v1.0 has been reloaded!");
  253.         }
  254.        
  255.        
  256.         return false;
  257.    
  258.         }
  259.    
  260.    
  261.     @EventHandler
  262.     public void onPlayerJoin(PlayerJoinEvent e){
  263.         // Adds player to config
  264.         if(!config.contains(e.getPlayer().getName().toLowerCase())){
  265.             config.createSection("refers." + e.getPlayer().getName().toLowerCase());
  266.             saveConfig();
  267.         }
  268.        
  269.     }
  270.    
  271.  
  272. }
Add Comment
Please, Sign In to add comment