AlanGomes

Untitled

Mar 24th, 2015
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.45 KB | None | 0 0
  1. package com.brinedev.youreward;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map.Entry;
  5.  
  6. import net.milkbowl.vault.economy.Economy;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.command.Command;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.plugin.RegisteredServiceProvider;
  13. import org.bukkit.plugin.java.JavaPlugin;
  14.  
  15. public class YouReward extends JavaPlugin {
  16.  
  17.     private YouTubeReader reader=null;
  18.     private Economy econ=null;
  19.     private CacheManager cache=null;
  20.    
  21.     public void onEnable() {
  22.         saveDefaultConfig();
  23.         setupEconomy();
  24.         cache=new CacheManager(this);
  25.         reader=new YouTubeReader();
  26.         Bukkit.getConsoleSender().sendMessage("");
  27.         Bukkit.getConsoleSender().sendMessage("§b[YouReward] §aCriado por BrineDev, nao copie ou edite este plugin!");
  28.         Bukkit.getConsoleSender().sendMessage("");
  29.     }
  30.    
  31.     private boolean setupEconomy()
  32.     {
  33.         RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
  34.         if (economyProvider != null) {
  35.             econ = economyProvider.getProvider();
  36.         }
  37.  
  38.         return (econ != null);
  39.     }
  40.    
  41.     public HashMap<String, String> aprovacao=new HashMap<String, String>();
  42.    
  43.     public boolean ehInt(String n) {
  44.         try {
  45.             Integer.parseInt(n);
  46.             return true;
  47.         } catch (Exception e) {
  48.             return false;
  49.         }
  50.     }
  51.    
  52.     public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
  53.         if (cmd.getName().equalsIgnoreCase("youreward")) {
  54.             if (sender instanceof Player ==false) {
  55.                 sender.sendMessage("§cApenas players!");
  56.                 return false;
  57.             }
  58.             if (args.length==0) {
  59.                 sender.sendMessage("§cUso: /youreward <link-do-video>");
  60.                 if (sender.isOp()) {
  61.                     sender.sendMessage("§cOu: /youreward lista");
  62.                     sender.sendMessage("§cOu: /youreward ativar [id]");
  63.                     sender.sendMessage("§cOu: /youreward remover [id]");
  64.                 }
  65.                 return false;
  66.             }
  67.             if (args[0].equalsIgnoreCase("lista")) {
  68.                 if (!sender.isOp()) {
  69.                     sender.sendMessage("§cVoce nao tem permissao.");
  70.                     return false;
  71.                 }
  72.                 int id=1;
  73.                 sender.sendMessage("§9Lista de videos:");
  74.                 for (Entry<String, String> item:aprovacao.entrySet()) {
  75.                     sender.sendMessage("§9[§f"+id+"§9] "+item.getKey()+":§b http://www.youtube.com/watch?v="+item.getValue());
  76.                     id++;
  77.                 }
  78.                 return false;
  79.             } else if (args[0].equalsIgnoreCase("ativar")) {
  80.                 if (!sender.isOp()) {
  81.                     sender.sendMessage("§cVoce nao tem permissao.");
  82.                     return false;
  83.                 }
  84.                 if (args.length<2) {
  85.                     sender.sendMessage("§cUso: /youreward ativar [id]");
  86.                     return false;
  87.                 }
  88.                 if (!ehInt(args[1])) {
  89.                     sender.sendMessage("§cInsira um id valido!");
  90.                     return false;
  91.                 }
  92.                 int id=Integer.parseInt(args[1]);
  93.                 if (id>aprovacao.size() || id==0) {
  94.                     sender.sendMessage("§cEste id nao existe!");
  95.                     return false;
  96.                 }
  97.                 Entry<String, String> item=null;
  98.                 int i=1;
  99.                 for (Entry<String, String> item2:aprovacao.entrySet()) {
  100.                     if (i==id) {
  101.                         item=item2;
  102.                         break;
  103.                     }
  104.                     i++;
  105.                 }
  106.                 Player p=Bukkit.getPlayer(item.getKey());
  107.                 if (p==null) {
  108.                     sender.sendMessage("§cEste player nao esta online!");
  109.                     return false;
  110.                 }
  111.                 cache.addVideo(item.getValue());
  112.                 Bukkit.broadcastMessage(getConfig().getString("Broadcast").replace("@player", p.getName()).replace("&", "§").replace("@link", "https://www.youtube.com/watch?v="+item.getValue()));
  113.                 try {
  114.                     econ.depositPlayer(p.getName(), getConfig().getInt("Money"));
  115.                 } catch (Exception e){}
  116.                 KitReader kr=new KitReader();
  117.                 kr.setKit(p, getConfig().getStringList("Kit"));
  118.                 aprovacao.remove(item.getKey());
  119.                 sender.sendMessage("§9Video ativado.");
  120.                 return false;
  121.             } else if (args[0].equalsIgnoreCase("remover")) {
  122.                 if (!sender.isOp()) {
  123.                     sender.sendMessage("§cVoce nao tem permissao.");
  124.                     return false;
  125.                 }
  126.                 if (args.length<2) {
  127.                     sender.sendMessage("§cUso: /youreward remover [id]");
  128.                     return false;
  129.                 }
  130.                 if (!ehInt(args[1])) {
  131.                     sender.sendMessage("§cInsira um id valido!");
  132.                     return false;
  133.                 }
  134.                 int id=Integer.parseInt(args[1]);
  135.                 if (id>aprovacao.size() || id==0) {
  136.                     sender.sendMessage("§cEste id nao existe!");
  137.                     return false;
  138.                 }
  139.                 int i=1;
  140.                 for (Entry<String, String> item2:aprovacao.entrySet()) {
  141.                     if (i==id) {
  142.                         aprovacao.remove(item2.getKey());
  143.                         break;
  144.                     }
  145.                     i++;
  146.                 }
  147.                 sender.sendMessage("§9Video removido da lista!");
  148.                 return false;
  149.             }
  150.             String videoid=reader.readId(args[0]);
  151.             if (videoid==null) {
  152.                 sender.sendMessage("§cLink inválido!");
  153.                 return false;
  154.             }
  155.             sender.sendMessage("§aLendo informações do seu video...");
  156.             YouTubeData data=reader.read(videoid);
  157.             if (data==null) {
  158.                 sender.sendMessage("§cNão foi possível ler seu vídeo!");
  159.                 return false;
  160.             }
  161.             sender.sendMessage("§9Video: §b"+data.getNome());
  162.             sender.sendMessage("§9Visualizações: §b"+data.getViews());
  163.             if (cache.checkVideo(videoid)) {
  164.                 sender.sendMessage("§cVocê já ativou este video!");
  165.                 return false;
  166.             }
  167.             if (data.getViews()<getConfig().getInt("MinViews")) {
  168.                 sender.sendMessage("§cSeu vídeo possui poucas views! (MIN "+getConfig().getInt("MinViews")+")");
  169.                 return false;
  170.             }
  171.             sender.sendMessage("§9Checando se contém a key: §b"+getConfig().getString("ServerKey"));
  172.             if (!data.getDescricao().trim().contains(getConfig().getString("ServerKey"))) {
  173.                 sender.sendMessage("§cA descrição do vídeo não contém a key de verificação: "+getConfig().getString("ServerKey"));
  174.                 return false;
  175.             }
  176.             sender.sendMessage("§9SIM! O vídeo contém a key!!");
  177.             sender.sendMessage("§9Checando reputação do vídeo...");
  178.             if (!reputacao(data.getLikes(), data.getDislikes()) && getConfig().getBoolean("Reputacao")) {
  179.                 sender.sendMessage("§cO seu vídeo tem má reputação! Baseada no cálculo:");
  180.                 sender.sendMessage("§9LIKES §a:D §9"+data.getLikes());
  181.                 sender.sendMessage("§9DESLIKES §4:( §9"+data.getDislikes());
  182.                 sender.sendMessage("§9(§aLIKES§9+(§4DESLIKES§9+(10%§4DESLIKES§9))) > §aLIKES");
  183.                 return false;
  184.             }
  185.             sender.sendMessage("§9O vídeo possui uma boa reputação!");
  186.             if (aprovacao.containsValue(videoid)) {
  187.                 sender.sendMessage("§cEste video ja esta para aprovacao!");
  188.                 return false;
  189.             }
  190.             aprovacao.put(sender.getName(), videoid);
  191.             sender.sendMessage("§9Seu video foi adicionado a lista de aprovacao!");
  192.             for (Player p:Bukkit.getOnlinePlayers()) {
  193.                 if (p.isOp()) {
  194.                     p.sendMessage("§9[§fYouReward§9] Um novo video foi adicionado a lista de aprovacao!");
  195.                 }
  196.             }
  197.             return false;
  198.         }
  199.         return false;
  200.     }
  201.    
  202.     public boolean reputacao(int l, int d) {
  203.         double likes=l;
  204.         double dislikes=d;
  205.         double porcento=((float)dislikes * 10f / 100f);
  206.         if (porcento<0)porcento=0;
  207.         if ((dislikes+porcento)>likes) {
  208.             return false;
  209.         } else {
  210.             return true;
  211.         }
  212.     }
  213.    
  214.     public static String fixToNewline(String orig){
  215.         char[] chars = orig.toCharArray();
  216.         StringBuilder sb = new StringBuilder(100);
  217.         for(char c : chars){
  218.             switch(c){
  219.                 case '\r':
  220.                 case '\f':
  221.                     break;
  222.                 case '\n':
  223.                     sb.append("\\n");
  224.                     break;
  225.                 default:
  226.                     sb.append(c);
  227.             }
  228.         }
  229.         return sb.toString();
  230.     }
  231.  
  232.  
  233. }
Advertisement
Add Comment
Please, Sign In to add comment