pedrinhohss Postado Setembro 8, 2018 Denunciar Compartilhar Postado Setembro 8, 2018 Olá galera da GB! Bom, recentemente iniciei um projeto de criação com o intuito de criar um novo modo de jogo nunca visto antes, porém para conseguir projetar algo nesse nível precisei aprender a fazer plug-ins, passei algum tempo estudando sobre Java e já deu para ter uma pequena noção do que eu estava preste a fazer, então comecei a ver tutoriais no YouTube e daí fui indo tentando fazer sozinho. Porém ainda tenho muitas dúvidas sobre múltiplas coisas, e hoje vim tentar saber sobre as mesmas. Primeira dúvida: Bom, essa primeira dúvida é fácil para alguns e complicada para outros, no caso eu sou esses "outros", basicamente gostaria de saber como posso adicionar vários comandos em só uma classe, já vi alguns tutoriais porém nenhum deles me ajudaram da forma que gostaria, ou seja, só perdi tempo por quê não aprendi nada. Em todos estavam falando sobre args e essas coisas, porém não sei onde posso adiciona-las e como vou criar os comandos e depois junta-las à eles. Segunda dúvida: Esta já é meio complicada pois exige de alguém mais experiente no ramo. Basicamente eu quero que quando fique de dia o jogador que tem uma certa permissão ganha um efeito, daí quando chega a noite ele perde este mesmo efeito e ganha outro. Também gostaria que durante esse período de dia e noite ele troca-se a Skin. Terceira e ultima dúvida: Gostaria de saber como posso implementar as APIS de plug-ins, ou seja, se eu quiser criar um plug-in que necessita de algum de economia como eu juntaria a API do mesmo em meu plug-in? Obrigado à todos! Link para o comentário Compartilhar em outros sites More sharing options...
R.A Postado Setembro 8, 2018 Denunciar Compartilhar Postado Setembro 8, 2018 Nao sei responder nenhuma mas esse mode de jogo seria um modo de jogo estilo, Vampiros lobisomens ? Link para o comentário Compartilhar em outros sites More sharing options...
R.A Postado Setembro 8, 2018 Denunciar Compartilhar Postado Setembro 8, 2018 A ultima duvida na verdade sei responder eu acho: Voce a baixa sua api e bota no projeto como boto ? Clica no projeto vai em Propriedades > Java Build Path "Add external Jars" e coloca sua api baixada ai no plugins do servidor e so botar a api 1 Link para o comentário Compartilhar em outros sites More sharing options...
Watyn Postado Setembro 8, 2018 Denunciar Compartilhar Postado Setembro 8, 2018 Respondendo sua primeira pergunta, vou te deixar um exemplo! if(command.getName().equalsIgnoreCase("comando")) { if(args.length == 0) { return true; } if(args[0].equalsIgnoreCase("argumentos")) { } //ira ficar assim, /comando argumentos! Respondendo sua segunda pergunta , da uma olhada aqui https://bukkit.org/threads/solved-how-to-check-if-it-is-day-or-night.12262/ 1 Link para o comentário Compartilhar em outros sites More sharing options...
pedrinhohss Postado Setembro 8, 2018 Autor Denunciar Compartilhar Postado Setembro 8, 2018 Obrigado a todos, já deu para entender melhor! Link para o comentário Compartilhar em outros sites More sharing options...
pedrinhohss Postado Setembro 8, 2018 Autor Denunciar Compartilhar Postado Setembro 8, 2018 41 minutos atrás, DigoGames disse: Nao sei responder nenhuma mas esse mode de jogo seria um modo de jogo estilo, Vampiros lobisomens ? Quase isso, basicamente teriam esses tipos de monstros, mas no caso o que informei a cima vai ser mais usado para um tipo de Fantasma... Link para o comentário Compartilhar em outros sites More sharing options...
pedrinhohss Postado Setembro 8, 2018 Autor Denunciar Compartilhar Postado Setembro 8, 2018 (editado) 34 minutos atrás, Watyn disse: Respondendo sua primeira pergunta, vou te deixar um exemplo! if(command.getName().equalsIgnoreCase("comando")) { if(args.length == 0) { return true; } if(args[0].equalsIgnoreCase("argumentos")) { } //ira ficar assim, /comando argumentos! Respondendo sua segunda pergunta , da uma olhada aqui https://bukkit.org/threads/solved-how-to-check-if-it-is-day-or-night.12262/ Bom, eu entendi um pouco sobre verificar o dia e noite, agora como posso faze-lo executar um comando quando ficar de dia e outro a noite? Editado Setembro 8, 2018 por pedrinhohss Link para o comentário Compartilhar em outros sites More sharing options...
Pica-Pau Postado Setembro 8, 2018 Denunciar Compartilhar Postado Setembro 8, 2018 Boa noite senhorzinho. Bom, primeiramente sim você pode adicionar vários comandos em um só MÉTODO. Uma classe que implementa CommandExecutor ou extende Command só suporta um comando. Mas nesse comando você pode linkar vários outros, por exempl`o class MeuComando implements CommandExecutor { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { // seu comando. } } Mas como eu disse vc pode em um método colocar vários comandos, basta verificar se o comando é o que você quer. class MeuComando implements CommandExecutor { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if(command.getName().equalsIgnoreCase("pao")) { // executou /pao return true; } if(command.getName().equalsIgnoreCase("ovo")) { // executou /ovo return true; } } } Na sua Main você registra 1 comando por padrão, mas pode registrar dois comandos na mesma classe usando class MinhaMain extends JavaPlugin { public void onEnable() { CommandExecutor executor = new MeuComando(); getCommand("pao").setExecutor(executor); getCommand("ovo").setExecutor(executor); } } 1 Link para o comentário Compartilhar em outros sites More sharing options...
pedrinhohss Postado Setembro 8, 2018 Autor Denunciar Compartilhar Postado Setembro 8, 2018 6 minutos atrás, ********-******** disse: Boa noite senhorzinho. Bom, primeiramente sim você pode adicionar vários comandos em um só MÉTODO. Uma classe que implementa CommandExecutor ou extende Command só suporta um comando. Mas nesse comando você pode linkar vários outros, por exempl`o class MeuComando implements CommandExecutor { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { // seu comando. } } Mas como eu disse vc pode em um método colocar vários comandos, basta verificar se o comando é o que você quer. class MeuComando implements CommandExecutor { public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if(command.getName().equalsIgnoreCase("pao")) { // executou /pao return true; } if(command.getName().equalsIgnoreCase("ovo")) { // executou /ovo return true; } } } Na sua Main você registra 1 comando por padrão, mas pode registrar dois comandos na mesma classe usando class MinhaMain extends JavaPlugin { public void onEnable() { CommandExecutor executor = new MeuComando(); getCommand("pao").setExecutor(executor); getCommand("ovo").setExecutor(executor); } } Obrigado, com isto já ajuda bastante. Só uma pergunta, deste modo também esta certo? http://prntscr.com/ks70di Link para o comentário Compartilhar em outros sites More sharing options...
Pica-Pau Postado Setembro 8, 2018 Denunciar Compartilhar Postado Setembro 8, 2018 Agora, pedrinhohss disse: Obrigado, com isto já ajuda bastante. Só uma pergunta, deste modo também esta certo? http://prntscr.com/ks70di Não. O primeiro erro que se vê nesse código é o IF vazio. Um IF deve estar composto de chaves para ser realmente um IF, se não tiver é inutil. Deve estar assim por exemplo: if(condicao) { // coisas aqui } O segundo, porém não um erro é que você está colocando um ELSE vázio. o ELSE só é necessário se houver realmente uma condição contrária ao IF, se não tiver, pode ser descartado. A terceira é o if(args.length == 1) { if(args[0].equalsIgnoreCase("vampiro")) { } } Não é necessário verificar se o tamanho dos argumentos é igual a 1 se você já verificou anteriormente se eles não eram 0, né? Provavelmente na sua IDE quando você usa um comando para analisar o código ela também vai te mostrar isso. Outra: Tente formatar o código 100% deixe ele alinhado e fácil de entender, provavelmente deve ter na sua IDE uma abinha com uma opção "Reformat Code" ou outro nome, procure e use porque é bem útil. 1 Link para o comentário Compartilhar em outros sites More sharing options...
pedrinhohss Postado Setembro 8, 2018 Autor Denunciar Compartilhar Postado Setembro 8, 2018 6 minutos atrás, ********-******** disse: Obrigado, vou arrumar o que esta errado e tentar achar esse Reformat Code Link para o comentário Compartilhar em outros sites More sharing options...
Pica-Pau Postado Setembro 8, 2018 Denunciar Compartilhar Postado Setembro 8, 2018 Agora, pedrinhohss disse: 7 minutos atrás, ********-******** disse: Obrigado, vou arrumar o que esta errado e tentar achar esse Reformat Code Se já tiver resolvido, marca ai pq os MODS daqui é tudo preguiçoso kekeke Link para o comentário Compartilhar em outros sites More sharing options...
pedrinhohss Postado Setembro 8, 2018 Autor Denunciar Compartilhar Postado Setembro 8, 2018 2 minutos atrás, Pica-Pau disse: Se já tiver resolvido, marca ai pq os MODS daqui é tudo preguiçoso kekeke Ainda falta a Segunda pergunta kk ;-; Link para o comentário Compartilhar em outros sites More sharing options...
bieel1503 Postado Setembro 10, 2018 Denunciar Compartilhar Postado Setembro 10, 2018 Sobre a segunda dúvida... Citar Basicamente eu quero que quando fique de dia o jogador que tem uma certa permissão ganha um efeito, daí quando chega a noite ele perde este mesmo efeito e ganha outro. Não existe um evento que pega o momento que fica de dia/noite, então você vai precisar criar uma tarefa/task que se auto-repete para fazer isso. Ah, é claro, se não estiver se familiarizado com tarefas/tasks em Bukkit, você pode ver sobre isso AQUI(pesquise sobre no youtube também). Dai, para checar se é dia/noite, você pode pegar o tempo do mundo("world.getTime"). Ele vai estar como "long", então AQUI uma imagem para ajudar. Agora para pegar "o jogador que tem certa permissão", você vai precisar fazer um "loop" por todos os jogadores naquele mundo e checar se tem com o "hasPermission". E para os efeitos, com o jogador, você pode apenas usar o "addPotionEffect". Exemplo: public void sendTask(Plugin plugin){ new BukkitRunnable(){ World world = Bukkit.getWorld("world"); Boolean dia = null; public void run(){ if(world.getTime() > 23500 || world.getTime() < 13000){ if(dia == null || !dia){ dia = true; for(Player player : world.getPlayers()){ if(player.hasPermission("yup")){ player.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 100, 1)); } } } }else if(world.getTime() > 13000 && world.getTime() < 23500){ if(dia == null || dia){ dia = false; for(Player player : world.getPlayers()){ if(player.hasPermission("yup")){ player.addPotionEffect(new PotionEffect(PotionEffectType.HUNGER, 100, 1)); } } } } } }.runTaskTimer(plugin, 1, 1) } Citar Também gostaria que durante esse período de dia e noite ele troca-se a Skin. Fazer isso do zero, para um iniciante, é realmente muito complicado y'know. Eu recomendo que você use o plugin chamado "SkinsRestorer" e a sua API que seria apenas fazer "SkinsRestorerAPI.setSkin". Link para o comentário Compartilhar em outros sites More sharing options...
Reset Postado Dezembro 18, 2018 Denunciar Compartilhar Postado Dezembro 18, 2018 Seu tópico foi marcado como Inativo. Para reverter está ação, entre em contato com a equipe de Moderação. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados