-
Total de itens
29 -
Registro em
-
Última visita
Sobre caneva20

Informações pessoais
-
Sexo
Feminino
Últimos Visitantes
700 visualizações
-
caneva20 reagiu a uma resposta no tópico: [SOURCE] 5 Plugins
-
caneva20 reagiu a uma resposta no tópico: [SOURCE] 5 Plugins
-
Olá gente, mais uma vez vim deixar uns plugins que eu não pretendo usar/desenvolver mais. Devo dizer que sinto um certo "orgulho" de tê-los feito e não seria justo só deixar num repo privado, não vou mais mexer com eles então deixo aqui pra ver se alguém se interessa neles. Infelizmente quando fiz eles estava pensando em usá-los num servidor meu, mas eu desisti dessa ideia, eu não posso ter um servidor, então por conta disso eles não estão documentados, eu provavelmente não vou documentá-los também a não ser que eu veja algum deles sendo bem usado, mas não acredito muito nisso não. Todos foram feitos com spigot 1.5.2, não testei em nenhuma outra versão, e não vou testar também. Todos eles estão funcionando certin, provavelmente há bugs, eu não testei eles num servidor de verdade, com outros jogadores. Se por acaso você só quiser usar eles como o plugin que são, vá em frente, a config deles é explicadinha, vocês devem conseguir fazer algo com eles. Só vou explicar um pouco o que cada um faz e deixar um link pro github de cada um. Se você quiser muito alguma coisa pra algum deles, deixa aqui no tópico, talvez eu te atenda ou algum outro desenvolvedor. CNVCore: Todos os plugins precisam desse aqui pra funcionar, ele tem um bocado de coisa nele que eu gostaria que outros devs dessem uma olhada, se tiverem coragem de investigá-lo já que está sem doc. Esse tem um readme que que talvez te ajude em algo. Link: https://github.com/caneva20/CNVCore CNVDailyRewards: Plugin de recompensa diária, usa MySql, e só MySql, o que pode ser um saco pra você se você não souber que coisa é essa. Sendo babaca, eu já un(s) outros aqui no GB que fazem o mesmo, mas esse é "melhor". Link: https://github.com/caneva20/CNVDailyRewards CNVDumpingGround: Esse plugin faz com que todos os itens que foram "removidos" do mundo(seja por despawn natural ou clear lag), sejam enviados pra um lixão, que é só um lugar com um monte de baú, pra ele funcionar você precisa definir uma área antes(com world edit, acho que o comando é /dg setarea) Link: https://github.com/caneva20/CNVDumpingGround CNVRanks: Mais um plugin de ranks, eu fiz esse quando estava tentando achar um pra mim usar, não achei nenhum como queria de verdade, dai fiz esse aqui, uma grande diferença desse aqui, ele usa "XP" pra upar de rank, e você pode comprar o XP necessário pra passar de rank, ganha XP matando e quebrando blocos, mas ta bem pouca config, então acho que só pedra da XP Link: https://github.com/caneva20/CNVRanks De "brinde" vou deixar um link pra outro post meu aqui na GB onde postei um outro projeto meu LInk: http://gamersboard.com.br/topic/50784-source-antigo-projeto-meu-pra-voc%C3%AAs/ Eu gostaria mesmo de escutar o que vocês têm a dizer sobre cada um deles. Se quiser entender melhor sobre algum deles deixa aqui no post, talvez eu te atenda. (falando essa mesma merda de novo :) )
-
GuiHSilva reagiu a uma resposta a uma pergunta: Separar uma ArrayList<String> em páginas, como faço?
-
resolvido Separar uma ArrayList<String> em páginas, como faço?
pergunta respondeu ao GuiHSilva de caneva20 em Dúvidas resolvidas
ArrayList<String> mensagens = new ArrayList<String>(); int linhasPorPaginas = 8; int paginaAtual = 1; int inicio = (paginaAtual - 1) * linhasPorPaginas; int fim = paginaAtual * linhasPorPaginas >= mensagens.Length() ? mensagens.Length() : paginaAtual * linhasPorPaginas; for (int i = inicio; i < fim; i++) { //Todas as linhas de 0 até 8 mensagens.get(i); } Não testei, então pode ter alguma coisa um pouco errada, mas é só falar que eu arrumo -
Heee, :) Enjoy!
-
Então, eu tenho um projeto de um plugin meu que esta totalmente parado, tem uns 2 anos +/- que não mexo mais nele, foi o meu "primeiro" projeto de plugin e Java, aprendi bastante com ele, mas agora não pretendo continuar com ele, então subi ele no github e to deixando livre pra quem quiser baixar e usar/continuar/estudar, sei lá, façam o que quiser com ele. Na página do github tem um pouco mais de informação pra quem quiser. https://github.com/caneva20/EventsRunGC
-
zDubsCrazy Banido reagiu a uma resposta a uma pergunta: [Resolvido] Você faria diferente?
-
Tendi. Mas é que eu ACHO que não vale a pena ficar todo o tempo se x coisa está acontecendo já que eu só preciso de saber disse em pouquíssimos momentos e para poucos players (só OP, ADM, ...), já que isso é só para um "setup" de config. Mas vlw mesmo pela ajuda.
-
dev [Resolvido] Você faria diferente?
pergunta respondeu ao GhostTheWolf de caneva20 em Dúvidas resolvidas
Olá. Isso também é possível, porem é mais "complicado" de entender, mas não muda muita coisa do que você já fez. public class Teste { public static void main (String [] args) { String frase = "AQUI, VEMOS UMA BELA PAISAGEM".toLowerCase(); frase = frase.substring(0, 1).toUpperCase() + frase.substring(1) + (frase.endsWith(".") ? "" : "."); System.out.println(frase); } } -
caneva20 reagiu a uma resposta a uma pergunta: [Resolvido] [Ajudinha] HandlerList
-
É por que pretendo que para cada jogador que usar x comando seja criado um novo Listener temporário, dai quando ele terminar de fazer o que se deve esse Listener seria removido. @Edit E por que não seria uma "boa opção"?
-
Olá gente. Estou com uma pequena dúvida aqui. Se eu usar. HandlerList.unregisterAll(this); O spigot vai desrregistrar TODOS os meus Listeners daquele tipo, ou só aquela instância? Código:
-
Olá. Já tentou Bukkit.getPluginManager.disablePlugin(SEU_PLUGIN);
-
Usando o que GHOST já mostrou é só você fazer assim. if (change(50)) { //Se entre 0-100 vir um nº menor que 50 dê uma bedrock //dar uma bedrock } else { //Caso NÃO seja menor que 50, ou seja maior que 50 (a vá) dê um quartzo pro cara //Dar um quartzo }
-
caneva20 reagiu a uma resposta no tópico: MineSHOP - Seu sistema de vendas 100% automático!
-
caneva20 reagiu a uma resposta a uma pergunta: [Resolvido] Ajuda Comando com args
-
LuizB reagiu a uma resposta a uma pergunta: [Resolvido] Ajuda Comando com args
-
Vou tentar explicar de uma forma simples.... O kit arqueiro estava DENTRO do kit guerreiro, sendo assim você NUNCA teria como pegar o kit arqueiro. Não sei como explicar melhor, eu coloquei alguns poucos comentários no código onde eu mudei. E uma dica, tente IDENTAR melhor seu código, isso provavelmente foi UM dos motivos para você não entender onde estava o erro. Se você está usando o Eclipse você pode fazer duas coisas para te ajuda nisso: 1- Usar Ctrl + Alt + I: Para identar automaticamente o código. 2- Ir na aba de busca do eclipse, aquela que fica lá em cima do lado direito, e pesquisar por "Save actions" (ações ao salvar) e marcar as caixas "Perform the selected actions on save", "Format source code", "Format all lines", "Organize imports", isso fará com que toda vez que você salvar o seu código ele será automaticamente formatado pelo Eclipse. Espero ter sido de ajuda. :) @Edit: Está aqui um código um "pouquinho" mais comentado. <spoiler> //Imports e package aqui; public class Kits implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { Player p = (Player) sender; if (!(sender instanceof Player)) { sender.sendMessage((Object)ChatColor.BLUE + "Se Fudeu Troxa você não vai usar este comando pelo console"); //Isso aqui não fica muito legal (na MINHA opnião), fazendo isso você parace ser muito criança :) Não fique com raiva de min, é só MINHA opnião; return true; //Como você NÃO quer que o código abaixo seja executado, já que se fosse essa parte não severia para nada, use um "return true" aqui. DICA: se você usar "return false" o Bukkit vai entender que ouve um erro por parte do jogador, dai será enviado uma mensagem de "Usage: bla bla bla..." para o cara. } if(command.getName().equalsIgnoreCase("kit")) { if(args.length == 0) { p.sendMessage("§cUtilize /kit <arqueiro : guerreiro>"); return true; } if(args.length == 1) { if(args[0].equalsIgnoreCase("arqueiro")) { if(!(Principal.usando.contains(p.getName()))){ //Itens do kit aqui } else { //Mensagem de erro aqui, já que o cara já tem o kit } return true; //Aqui para que o código PARE AQUI você pode usar um "return true" ou "return false", mas o "return false" só seria bem vindo se o cara não tivesse pego o kit por algum erro, como eu já disse acima. :) } //Termine aqui um if; Ou use um "else if", isso seria bom para que só um quit fosse escolhido, mas nesse caso não faz diferença para quem está começando com programação; if(args[0].equalsIgnoreCase("guerreiro")) { if(!(Principal.usando.contains(p.getName()))){ //Itens do kit aqui } else { //Mensagem de erro aqui, já que o cara já tem o kit } //return true; Você não precisa de um return aqui, tendo UM no final do código já é suficiente desde que você não tenha mais nada para baixo. } //Para você por mais kits é só fazer isso. if(args[0].equalsIgnoreCase("KIT blabla1")) { if(!(Principal.usando.contains(p.getName()))){ //Itens do kit aqui } else { //Mensagem de erro aqui, já que o cara já tem o kit } //return true; } if(args[0].equalsIgnoreCase("BRUXA DO DIMOIN")) { if(!(Principal.usando.contains(p.getName()))){ //Itens do kit aqui } else { //Mensagem de erro aqui, já que o cara já tem o kit } //return true; } if(args[0].equalsIgnoreCase("QUALQUER OUTRO KIT AQUI")) { if(!(Principal.usando.contains(p.getName()))){ //Itens do kit aqui } else { //Mensagem de erro aqui, já que o cara já tem o kit } //return true; } } } return false; // Só este aqui no final do OnCommand ja está de bom tamanho. } } </spoiler>
-
Tenta isso... package kitpvp.kits; 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.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import me.cuthmf.kitpvp.Principal; public class Kits implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { Player p = (Player) sender; if (!(sender instanceof Player)) { sender.sendMessage((Object)ChatColor.BLUE + "Se Fudeu Troxa você não vai usar este comando pelo console"); return true; //Só para não continuar o código. } if(command.getName().equalsIgnoreCase("kit")) { if(args.length == 0) { p.sendMessage("§cUtilize /kit <arqueiro : guerreiro>"); return true; } if(args.length == 1) { if(args[0].equalsIgnoreCase("arqueiro")) { if(!(Principal.usando.contains(p.getName()))){ p.getInventory().clear(); p.sendMessage(Principal.cf.getConfig().getString("Mensagemarq")); ItemStack capacete = new ItemStack(Material.DIAMOND_HELMET); capacete.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 2); capacete.addEnchantment(Enchantment.PROTECTION_PROJECTILE, 1 ); p.getInventory().setHelmet(new ItemStack(capacete)); ItemStack peit = new ItemStack(Material.CHAINMAIL_CHESTPLATE); peit.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1); peit.addEnchantment(Enchantment.DURABILITY, 1); p.getInventory().setChestplate(new ItemStack(peit)); ItemStack calc = new ItemStack(Material.CHAINMAIL_CHESTPLATE); calc.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1); calc.addEnchantment(Enchantment.DURABILITY, 1); p.getInventory().setLeggings(new ItemStack(calc)); ItemStack bota = new ItemStack(Material.CHAINMAIL_CHESTPLATE); bota.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, 1); bota.addEnchantment(Enchantment.DURABILITY, 1); p.getInventory().setBoots(new ItemStack(bota)); ItemStack arco = new ItemStack(Material.BOW); arco.addEnchantment(Enchantment.ARROW_DAMAGE, 4); arco.addEnchantment(Enchantment.ARROW_INFINITE, 1); arco.addEnchantment(Enchantment.ARROW_KNOCKBACK, 2); p.getInventory().setItem(1, arco); ItemStack espada = new ItemStack(Material.STONE_SWORD); espada.addEnchantment(Enchantment.DAMAGE_ALL, 2); espada.addEnchantment(Enchantment.DAMAGE_ALL, 2); espada.addEnchantment(Enchantment.KNOCKBACK, 1); p.getInventory().setItem(0, espada); Principal.usando.add(p.getName()); } else { p.sendMessage(ChatColor.RED + "Você já está usando um kit!"); return true; } } //Termine aqui um if; if(args[0].equalsIgnoreCase("guerreiro")) { if(!(Principal.usando.contains(p.getName()))){ p.sendMessage("vc pego o kit guerreiro"); } else { p.sendMessage("vc ja possui um kit"); } return true; } } } return false; } } Isso não é "exatamente" necessário.
-
[Resolvido] O que esta errado?
pergunta respondeu ao Gustavo Alves de caneva20 em Dúvidas resolvidas
Primeiro, não "tem" o comando /bolao admin ai. Tenta isso: package me.gualves.GBolao; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin { int acumulado = 0; public void onEnable() { Bukkit.getConsoleSender().sendMessage("§3-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); Bukkit.getConsoleSender().sendMessage("§3[GBolao] §bPlugin habilitado com sucesso"); Bukkit.getConsoleSender().sendMessage("§3[GBolao] §bPlugin by §aGualves"); Bukkit.getConsoleSender().sendMessage("§3[GBolao] §bVersao §e1.0"); Bukkit.getConsoleSender().sendMessage("§3-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); saveDefaultConfig(); } public void onDisable() { Bukkit.getConsoleSender().sendMessage("§4-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); Bukkit.getConsoleSender().sendMessage("§4[GBolao] §cPlugin desabilitado com sucesso"); Bukkit.getConsoleSender().sendMessage("§4[GBolao] §cPlugin by §5Gualves"); Bukkit.getConsoleSender().sendMessage("§4[GBolao] §cVersao §41.0"); Bukkit.getConsoleSender().sendMessage("§4-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"); } public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage("§cUtilize esse comando dentro do jogo"); return true; } Player p = (Player)sender; if (cmd.getName().equalsIgnoreCase("bolao")) { if (args.length == 0){ p.sendMessage(getConfig().getString("Erro").replace(">>", "»").replace("<<", "«").replace("&", "§")); { return true; } else if (args.length == 1){ if (args[0].equalsIgnoreCase("comandos")) { // Não tenho certeza mas aqui seria o "/bolao admin"? if (!p.hasPermission(getConfig().getString("Permissao_Admin"))) { p.sendMessage(getConfig().getString("Erro2")); return true; } } for (String s : getConfig().getStringList("Mensagens.Admin")) { Bukkit.broadcastMessage(s.replace("&", "§").replace(">>", "»").replace("<<", "«")); return true; } } else if (args.length == 1){ if (args[0].equalsIgnoreCase("iniciar")) { if (!p.hasPermission("Permissao_Admin")) { p.sendMessage(getConfig().getString("Erro2")); } } } } } //Aqui tinha um else. } return false; } return false; } } @Edit. Peço desculpas por paraecer que não li nada acima, quando abri o tótipo não tinha. :) @Edit 2 Não sei se funcionou, mas caso sim posso te explicxar o que fiz.