Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.brinedev.youreward;
- import java.util.HashMap;
- import java.util.Map.Entry;
- import net.milkbowl.vault.economy.Economy;
- import org.bukkit.Bukkit;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.plugin.RegisteredServiceProvider;
- import org.bukkit.plugin.java.JavaPlugin;
- public class YouReward extends JavaPlugin {
- private YouTubeReader reader=null;
- private Economy econ=null;
- private CacheManager cache=null;
- public void onEnable() {
- saveDefaultConfig();
- setupEconomy();
- cache=new CacheManager(this);
- reader=new YouTubeReader();
- Bukkit.getConsoleSender().sendMessage("");
- Bukkit.getConsoleSender().sendMessage("§b[YouReward] §aCriado por BrineDev, nao copie ou edite este plugin!");
- Bukkit.getConsoleSender().sendMessage("");
- }
- private boolean setupEconomy()
- {
- RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
- if (economyProvider != null) {
- econ = economyProvider.getProvider();
- }
- return (econ != null);
- }
- public HashMap<String, String> aprovacao=new HashMap<String, String>();
- public boolean ehInt(String n) {
- try {
- Integer.parseInt(n);
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
- if (cmd.getName().equalsIgnoreCase("youreward")) {
- if (sender instanceof Player ==false) {
- sender.sendMessage("§cApenas players!");
- return false;
- }
- if (args.length==0) {
- sender.sendMessage("§cUso: /youreward <link-do-video>");
- if (sender.isOp()) {
- sender.sendMessage("§cOu: /youreward lista");
- sender.sendMessage("§cOu: /youreward ativar [id]");
- sender.sendMessage("§cOu: /youreward remover [id]");
- }
- return false;
- }
- if (args[0].equalsIgnoreCase("lista")) {
- if (!sender.isOp()) {
- sender.sendMessage("§cVoce nao tem permissao.");
- return false;
- }
- int id=1;
- sender.sendMessage("§9Lista de videos:");
- for (Entry<String, String> item:aprovacao.entrySet()) {
- sender.sendMessage("§9[§f"+id+"§9] "+item.getKey()+":§b http://www.youtube.com/watch?v="+item.getValue());
- id++;
- }
- return false;
- } else if (args[0].equalsIgnoreCase("ativar")) {
- if (!sender.isOp()) {
- sender.sendMessage("§cVoce nao tem permissao.");
- return false;
- }
- if (args.length<2) {
- sender.sendMessage("§cUso: /youreward ativar [id]");
- return false;
- }
- if (!ehInt(args[1])) {
- sender.sendMessage("§cInsira um id valido!");
- return false;
- }
- int id=Integer.parseInt(args[1]);
- if (id>aprovacao.size() || id==0) {
- sender.sendMessage("§cEste id nao existe!");
- return false;
- }
- Entry<String, String> item=null;
- int i=1;
- for (Entry<String, String> item2:aprovacao.entrySet()) {
- if (i==id) {
- item=item2;
- break;
- }
- i++;
- }
- Player p=Bukkit.getPlayer(item.getKey());
- if (p==null) {
- sender.sendMessage("§cEste player nao esta online!");
- return false;
- }
- cache.addVideo(item.getValue());
- Bukkit.broadcastMessage(getConfig().getString("Broadcast").replace("@player", p.getName()).replace("&", "§").replace("@link", "https://www.youtube.com/watch?v="+item.getValue()));
- try {
- econ.depositPlayer(p.getName(), getConfig().getInt("Money"));
- } catch (Exception e){}
- KitReader kr=new KitReader();
- kr.setKit(p, getConfig().getStringList("Kit"));
- aprovacao.remove(item.getKey());
- sender.sendMessage("§9Video ativado.");
- return false;
- } else if (args[0].equalsIgnoreCase("remover")) {
- if (!sender.isOp()) {
- sender.sendMessage("§cVoce nao tem permissao.");
- return false;
- }
- if (args.length<2) {
- sender.sendMessage("§cUso: /youreward remover [id]");
- return false;
- }
- if (!ehInt(args[1])) {
- sender.sendMessage("§cInsira um id valido!");
- return false;
- }
- int id=Integer.parseInt(args[1]);
- if (id>aprovacao.size() || id==0) {
- sender.sendMessage("§cEste id nao existe!");
- return false;
- }
- int i=1;
- for (Entry<String, String> item2:aprovacao.entrySet()) {
- if (i==id) {
- aprovacao.remove(item2.getKey());
- break;
- }
- i++;
- }
- sender.sendMessage("§9Video removido da lista!");
- return false;
- }
- String videoid=reader.readId(args[0]);
- if (videoid==null) {
- sender.sendMessage("§cLink inválido!");
- return false;
- }
- sender.sendMessage("§aLendo informações do seu video...");
- YouTubeData data=reader.read(videoid);
- if (data==null) {
- sender.sendMessage("§cNão foi possível ler seu vídeo!");
- return false;
- }
- sender.sendMessage("§9Video: §b"+data.getNome());
- sender.sendMessage("§9Visualizações: §b"+data.getViews());
- if (cache.checkVideo(videoid)) {
- sender.sendMessage("§cVocê já ativou este video!");
- return false;
- }
- if (data.getViews()<getConfig().getInt("MinViews")) {
- sender.sendMessage("§cSeu vídeo possui poucas views! (MIN "+getConfig().getInt("MinViews")+")");
- return false;
- }
- sender.sendMessage("§9Checando se contém a key: §b"+getConfig().getString("ServerKey"));
- if (!data.getDescricao().trim().contains(getConfig().getString("ServerKey"))) {
- sender.sendMessage("§cA descrição do vídeo não contém a key de verificação: "+getConfig().getString("ServerKey"));
- return false;
- }
- sender.sendMessage("§9SIM! O vídeo contém a key!!");
- sender.sendMessage("§9Checando reputação do vídeo...");
- if (!reputacao(data.getLikes(), data.getDislikes()) && getConfig().getBoolean("Reputacao")) {
- sender.sendMessage("§cO seu vídeo tem má reputação! Baseada no cálculo:");
- sender.sendMessage("§9LIKES §a:D §9"+data.getLikes());
- sender.sendMessage("§9DESLIKES §4:( §9"+data.getDislikes());
- sender.sendMessage("§9(§aLIKES§9+(§4DESLIKES§9+(10%§4DESLIKES§9))) > §aLIKES");
- return false;
- }
- sender.sendMessage("§9O vídeo possui uma boa reputação!");
- if (aprovacao.containsValue(videoid)) {
- sender.sendMessage("§cEste video ja esta para aprovacao!");
- return false;
- }
- aprovacao.put(sender.getName(), videoid);
- sender.sendMessage("§9Seu video foi adicionado a lista de aprovacao!");
- for (Player p:Bukkit.getOnlinePlayers()) {
- if (p.isOp()) {
- p.sendMessage("§9[§fYouReward§9] Um novo video foi adicionado a lista de aprovacao!");
- }
- }
- return false;
- }
- return false;
- }
- public boolean reputacao(int l, int d) {
- double likes=l;
- double dislikes=d;
- double porcento=((float)dislikes * 10f / 100f);
- if (porcento<0)porcento=0;
- if ((dislikes+porcento)>likes) {
- return false;
- } else {
- return true;
- }
- }
- public static String fixToNewline(String orig){
- char[] chars = orig.toCharArray();
- StringBuilder sb = new StringBuilder(100);
- for(char c : chars){
- switch(c){
- case '\r':
- case '\f':
- break;
- case '\n':
- sb.append("\\n");
- break;
- default:
- sb.append(c);
- }
- }
- return sb.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment