Ir para conteúdo

smgabriel

Membros
  • Total de itens

    227
  • Registro em

  • Última visita

Tudo que smgabriel postou

  1. Gostei, a musica da um clima muito bom. Como vai funcionar o closed beta? É 11/10
  2. void spawnVillager(){ Villager v = (Villager) Bukkit.getWorld("world").spawn(new Location(Bukkit.getWorld("world"), 100, Bukkit.getWorld("world").getHighestBlockYAt(100, 100), 100), Villager.class); noAI(v); v.setBaby(); v.setCustomName("JUBILEU"); v.setCustomNameVisible(true); } @EventHandler public void onClickEntity(PlayerInteractAtEntityEvent e){ Entity et = e.getRightClicked(); if(et.getCustomName().equalsIgnoreCase("JUBILEU")){ Inventory inv = Bukkit.createInventory(null, 9 , "Inventario do Jubileu"); e.getPlayer().openInventory(inv); } } void noAI(Entity bukkitEntity) { net.minecraft.server.v1_8_R3.Entity nmsEntity = ((CraftEntity) bukkitEntity).getHandle(); NBTTagCompound tag = nmsEntity.getNBTTag(); if (tag == null) { tag = new NBTTagCompound(); } nmsEntity.c(tag); tag.setInt("NoAI", 1); nmsEntity.f(tag); }
  3. void setEnchantment(String location, ItemStack item) { ItemMeta m = item.getItemMeta(); if (location.indexOf(":") >= 1) { // verifica se na string contem mais de um caractere : String[] partes = location.split(":"); String encNome = partes[0]; // Pega o encantamento int level = Integer.parseInt(partes[1]); // Pega o level do encantamento boolean ignore = Boolean.parseBoolean(partes[2]); // Pega o valor logico(se quer que ultrapasse ou não o limite dos encantamentos) m.addEnchant(Enchantment.getByName(encNome), level, ignore); // adiciona o encantamento ao item } item.setItemMeta(m); } Um exemplo da config.yml: Sword: Encantamentos: "FIRE_ASPECT:1:true"
  4. É bem complexo mexer com EXP... Tente o método abaixo, o ruim é por que vai ficar com um som que ele ganhou exp..: if (getPlayer().getTotalExperience() >= 1000) { int exp = getPlayer().getTotalExperience() - 1000; getPlayer().setTotalExperience(0); getPlayer().setLevel(0); getPlayer().setExp(0); getPlayer().giveExp(exp); Bukkit.broadcastMessage("" + /*????*/getPlayer().getTotalExperience()); } getPlayer() == Player p;
  5. Tente: if (player.getTotalExperience() >= 1000) { player.setTotalExperience(player.getTotalExperience() - 1000); } Não cheguei a testar, mas eu acho que funciona.
  6. Usa saveConfig() e reloadConfig()? se sim, talvez seja o motivo, eu lembro que quando eu usei deu muito trabalho... Se eu não tou enganado, minha solução foi usar uma classe que o @Lüigi! me passou(não lembro qual foi e onde eu achei, tente perguntar a ele, na real, lembro que o nome era mais ou menos simpleconfig). Se não for isso, tente ver a formatação do seu projeto.
  7. Dye d = new Dye(); d.setColor(DyeColor.BLUE); ItemStack i = d.toItemStack(); i.setAmount(10); p.getInventory().addItem(i);
  8. Tem que registrar na classe principal também(geralmente denominada de Main) getServer().getPluginManager().registerEvents(this/*classe do evento*/, this/*classe principal*/);
  9. Vish não sei o porquê desse erro... testei e não apareceu isso(versão 1.8.8)
  10. Não enviou nem se quer o primeiro broadcast? "Bukkit.broadcastMessage("1");" se não, verifique se você registrou o evento e se seu método esta correto, pois eu testei e funcionou perfeitamente.
  11. Qual versão do spigot? https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/inventory/InventoryClickEvent.html#getClickedInventory()
  12. Bem, eu não sabia da existência do InventoryAction no InventoryClickEvent, então eu fiz uma gambiarra, utilizando o evento InventoryClickEvent, tente isso: Bukkit.broadcastMessage("1"); Player p = (Player) e.getWhoClicked(); if (p.getOpenInventory().getTitle().equalsIgnoreCase("UP!")) { Bukkit.broadcastMessage("2"); if(e.getAction() == InventoryAction.MOVE_TO_OTHER_INVENTORY){ if (e.getCurrentItem() != null && e.getCurrentItem().getType().equals(Material.DIAMOND)) { Bukkit.broadcastMessage("3"); p.sendMessage("Você upou com sucesso!"); p.closeInventory(); return; } else { Bukkit.broadcastMessage("4"); p.sendMessage("Item invalido."); return; } } } Introdução rápida: Quando o player usar o SHIFT + Item(o diamante), o item será movido para o inventario e vai fazer essa verificação se é um diamante ou não, se sim, fecha o inventario. Eu acho que se ele mover o item com o mouse não vai dar mt certo, tente verificar os ENUMs se tem algum com essa função, caso não tenha, use o InventoryDragEvent. Acabei de observar que o InventoryMoveItemEvent não é utilizável para isso.
  13. InventoryClickEvent só é ''ativado'' quando o player clica em um inventario, portanto, se o player colocar o item no inventario criado, ele ta clicando no inventario dele, então, não acontecerá nada. Use InventoryCloseEvent ou use os outros eventos que eu mencionei...
  14. Na parte do comando, você cria um inventario e abre ele ex: if (command.getName().equalsIgnoreCase("up")) { if (sender instanceof Player) { Inventory inv = Bukkit.createInventory(null, 9, "UP!"); ((Player) sender).openInventory(inv); } } Agora, crie o evento chamado InventoryCloseEvent e adicione esse código: if (e.getInventory().getTitle().equalsIgnoreCase("UP!")) { if (e.getInventory().contains(Material.DIAMOND)) { e.getPlayer().sendMessage("Você upou com sucesso!"); return; } else { e.getPlayer().sendMessage("Item invalido."); return; } } Para verificar o item em ''tempo real'', tente fazer essa verificação com os eventos InventoryMoveItemEvent e InventoryDragEvent(eu recomendo o InventoryMoveItemEvent)
  15. Você terá que fazer um ''hook'' utilizando o Vault, após baixar o vault, abra sua classe principal e siga esses passos: No topo, coloque esse objeto: public static Economy eco = null; Agora, adicione esse método em sua classe: private boolean setupEconomy(){ RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class); if (economyProvider != null) { eco = economyProvider.getProvider(); } return (eco != null); } No onEnable, ''chame'' o método setupEconomy(): @Override public void onEnable() { m = this; setupEconomy(); } Agora, você pode adicionar/retirar o money do player: eco.getBalance("GabrielSm_"); // retorna o money do player eco.bankDeposit("GabrielSm_"/*nick do player, pode usar o método p.getName() também.*/, 10/*quantia que vai ser depositada*/); // deposita money eco.withdrawPlayer("GabrielSm_"/*nick do player, pode usar o método p.getName() também.*/, 10/*quantia que vai ser retirada*/); //retira o money do player
  16. UP! *04/05/2017 Uma nova função adicionada: Cooldown configurável, não quer deixar que seus players ganhe coins toda hora? adicione um cooldown! ; *04/05/2017 Source disponível. *Para aqueles que baixaram, recomendo baixar novamente.
  17. Faça um debugg e veja aonde para. Você falou que mesmo usando replace, não adiantou, você usou replace nas duas strings ou apenas em uma? Já verificou se o diretorio da config está certo? Eu fiz um debugg e aqui funcionou perfeitamente: http://imgur.com/AHxuxJd Bukkit.broadcastMessage("[1]"); String a = e.getLine(0).replace("&", "§"); String b = getConfig().getString("placa.linha0").replace("&", "§"); if(a.equalsIgnoreCase(b)){ Bukkit.broadcastMessage("[2]"); System.out.println("SIM"); }else{ Bukkit.broadcastMessage("[3]"); System.out.println("Não"); } Bukkit.broadcastMessage("[4F]"); } Caso não tenha resultados positivos, mostre seu método.
  18. String a = e.getLine(0); String b = m.getConfig().getString("Outra); if (a.equalsIgnoreCase(b)) { sout("É igual"); }else{ sout("Não é igual"); } Tente esse método, não testei e fiz pelo navegador.
  19. UP! SONS Agora, este plugin tem uma nova função de sons, quando você carrega o plugin pela primeira vez, ele irá gerar um arquivo compactado chamado sons, dentro desse arquivo contém alguns arquivos de texto(.txt). Esses arquivos de textos contém todos os tipos de sons disponíveis nas versões disponíveis. *Para aqueles que baixaram, recomendo baixar novamente.
  20. Tinha/tem um servidor que eu jogava que tinha/tem esses minijogos, jogo da velha e outros que eu esqueci agora, então eu tive a ideia de fazer um de campo minado. Sim, smminado.admin - permite criar placas(personalizadas) Bom uso, qualquer erro, me avise :) Vlw :), vou disponibilizar a src em breve(irei deixar o plugin mais otimizado e um código mais limpo) Vlw :), jaja sai uma nova versão compatível com a versão 1.5.2. @Edit Nova versão disponível compatível com a versão MC1.5.2 . Vlw :) Plugin atualizado. *Para aqueles que baixaram, recomendo baixar novamente.
×
×
  • Criar Novo...