Ir para conteúdo

FilipeNock

Membros
  • Total de itens

    188
  • Registro em

  • Última visita

Respostas na Comunidade

  1. FilipeNock's postagem in [Duvida] Fazer uma scoreboard was marked as the answer   
    Continuando o Kaway falou com algumas correções.. voce pode usar os teams para setar 48 caracteres na score
    setando a 
    prefix, entry, e suffix fiz um exemplo
    public static void setScore(Player player) { Scoreboard s = Bukkit.getScoreboardManager().getNewScoreboard(); Objective o = s.registerNewObjective("nock", "dummy"); o.setDisplaySlot(DisplaySlot.SIDEBAR); o.setDisplayName("§e§lSKY WARS"); //REGISTRANDO O TEAM DO SLOT 1 Team team = s.registerNewTeam("SLOT_1"); //DIVIDINDO 16 LETRAS PARA PREFIX E 16 PARA SUFFIX String somente16letras1 = "§bsomente 48 c"; String entry16letras = "aracteres aqui"; String somente16letras3 = " para score"; team.setPrefix(somente16letras1); team.addEntry(entry16letras); //ENTRY DO SCORE team.setSuffix(somente16letras3); //SETANDO O SCORE DE ACORDO COM A ENTRY o.getScore(entry16letras).setScore(1); player.setScoreboard(s); } public static void updateScore(Player player) { Scoreboard b = player.getScoreboard(); String randomcolor = "§"+new Random().nextInt(9); //PEGANDO O TEAM Team team = b.getTeam("SLOT_1"); //DIVIDINDO 16 LETRAS PARA PREFIX E 16 PARA SUFFIX String somente16letras1 = randomcolor+"somente 48 c"; //randomcolor é só pra pegar uma cor aleatoria String entry16letras = "aracteres aqui"; String somente16letras3 = " para score"; team.setPrefix(somente16letras1); team.addEntry(entry16letras); //ENTRY DO SCORE team.setSuffix(somente16letras3); } RESULTADO:

     
    Se quiser pode usar minha API
    https://hastebin.com/atetekirup.java
     
    Como usar:
    https://hastebin.com/agitujejun.cs
  2. FilipeNock's postagem in Sistema de porcentagem was marked as the answer   
    //LEVEL | MAX | QUANTIDADE DE BARS | barCHAR | COR DOS COMPLETOS | COR DOS INCOMPLETOS p.sendMessage(getProgressBar(30, 100, 20, "|", "§a", "§7")); Outro exemplo:
    int level = 20; //LEVEL DO PLAYER; String bar = getProgressBar(level, 100, 40, "|", "§a", "§7"); p.sendMessage(bar+" §a"+level+"%");  Codigo:
    public String getProgressBar(int current, int max, int totalBars, String barChar, String completedColor, String notCompletedColor) { float percent = (float) current / max; int progressBars = (int) (totalBars * percent); return StringUtils.repeat(completedColor + barChar, progressBars)+StringUtils.repeat(notCompletedColor + barChar, totalBars - progressBars); } Resultado:

  3. FilipeNock's postagem in Como pegar o nome do fundador do clan was marked as the answer   
    Uso o simpleclans e pra pegar o primeiro dono no caso o que criou o clan uso isso
    public void test(Player player) { Clan clan = SimpleClans.getInstance().getClanManager().getClanByPlayerName(player.getName()); ClanPlayer cplayer = null; for (ClanPlayer cp : clan.getLeaders()) { if (cplayer == null) cplayer = cp; if (cp.getJoinDate() < cplayer.getJoinDate()) { cplayer = cp; } } cplayer.getName(); //RETORNA O NOME DO LIDER DO CLAN Player lider = Bukkit.getPlayer(cplayer.getName()); //RETORNA O LIDER (SE ESTIVER ONLINE) OBS: tem que checar se o clan não é nulo no caso se o player nao estiver em um clan vai dar erro
  4. FilipeNock's postagem in [Duvida] Como usar PlayerPoints, adicionar saldo e retirar! was marked as the answer   
    https://dev.bukkit.org/projects/playerpoints/pages/api
     
    Ai tem todas instruções
  5. FilipeNock's postagem in Evento autoiniciar was marked as the answer   
    no java é simples no seu plugin deve ter um task ou seja executando de hora em hora ou minuto em minuto vai por voce!
    LocalDate data = LocalDate.now(); Calendar calender = Calendar.getInstance(TimeZone.getTimeZone("BRST")); if (data.getDayOfWeek() == DayOfWeek.SUNDAY || data.getDayOfWeek() == DayOfWeek.FRIDAY) { System.out.println(calender.getTime().getHours()+":"+calender.getTime().getMinutes()); } usando esse exemplo voce pode checar o dia da semana e o horario
    calender.getTime().getHours()
    calender.getTime().getMinutes()
    calender.getTime().getSeconds()
  6. FilipeNock's postagem in [Duvida] Como remover essas tag do Item was marked as the answer   
    ItemStack is = #; ItemMeta im = is.getItemMeta(); im.addItemFlags(ItemFlag.HIDE_ATTRIBUTES); im.addItemFlags(ItemFlag.HIDE_ENCHANTS); im.addItemFlags(ItemFlag.HIDE_UNBREAKABLE); im.addItemFlags(ItemFlag.HIDE_POTION_EFFECTS); is.setItemMeta(im); Isso foi testado na 1.8 nas versões anteriores pode nao ter
  7. FilipeNock's postagem in UUID na config que contem was marked as the answer   
    public void setNome(Player player, String nome) { getConfig().set(nome, player.getUniqueId().toString()); saveConfig(); } @EventHandler public void check(AsyncPlayerPreLoginEvent e) { //NOME QUE O PLAYER ESTA ENTRANDO String player = e.getName(); //CHECA SE ESTE NOME CONTEM NA CONFIG if (getConfig().contains(player)) { //SE CONTER PEGA O UUID SALVO LÁ String uuidsalvo = getConfig().getString(player); //SE O UUID SALVO NAO FOR O DELE IRA KIKAR if (!e.getUniqueId().toString().equalsIgnoreCase(uuidsalvo)) { e.disallow(Result.KICK_OTHER, "Voce nao pode entrar com este Nick"); } } }
  8. FilipeNock's postagem in Cancelar Drop De um player quando morre was marked as the answer   
    Basicamente ele vai dropar todos os items, o que voce precisa fazer é ver os items que são armaduras e setar para o player quando ele renascer
    public HashMap<Player, ItemStack[]> pitems = new HashMap<>(); @EventHandler public void playerd(PlayerDeathEvent e) { Player p = e.getEntity(); pitems.put(p, p.getInventory().getArmorContents()); e.getDrops().removeAll(Arrays.asList(p.getInventory().getArmorContents())); } @EventHandler public void playerr(PlayerRespawnEvent e) { Player p = e.getPlayer(); if (pitems.containsKey(p)) { p.getInventory().setArmorContents(pitems.get(p)); } }   isso é só um exemplo n sei se funciona fiz pelo navegador msm mas se vc pensar um pouco consegue fazer melhor!
     
    EDIT:
    public HashMap<Player, ItemStack[]> pitems = new HashMap<>(); public HashMap<Player, ItemStack[]> pinvitems = new HashMap<>(); public boolean salvarInventario = false; public boolean salvarArmaduras = true; @EventHandler public void playerd(PlayerDeathEvent e) { Player p = e.getEntity(); if (salvarArmaduras) { pitems.put(p, p.getInventory().getArmorContents()); e.getDrops().removeAll(Arrays.asList(p.getInventory().getArmorContents())); } if (salvarInventario) { pinvitems.put(p, p.getInventory().getContents()); e.getDrops().removeAll(Arrays.asList(p.getInventory().getContents())); } } @EventHandler public void playerr(PlayerRespawnEvent e) { Player p = e.getPlayer(); if (pitems.containsKey(p)) { p.getInventory().setArmorContents(pitems.get(p)); pitems.remove(p); } if (pinvitems.containsKey(p)) { p.getInventory().setContents(pinvitems.get(p)); pinvitems.remove(p); } }
  9. FilipeNock's postagem in [Duvida] Face do pistao was marked as the answer   
    @EventHandler public void placee(BlockPlaceEvent e) { if (e.getBlock().getType() == Material.PISTON_BASE) { Block b = e.getBlockPlaced(); //0 - PARA BAIXO //1 - PARA CIMA //2, 3 ,4 ,5 são para rotação do pistao //ISSO SÓ FUNCIONA PRA BLOCOS, SE VC TENTAR ISSO PARA BAUS E PLACAS //TERA QUE FAZER DIFERENTE b.setData((byte)0, true); b.getState().update(); } }
  10. FilipeNock's postagem in [Dúvida] Placa Colocada was marked as the answer   
    public static Block getBlockBehindSign(Block block) {
    if (block.getType().equals(Material.WALL_SIGN))
    switch (block.getData()) {
    case 2:
    return block.getRelative(BlockFace.WEST);
    case 3:
    return block.getRelative(BlockFace.EAST);
    case 4:
    return block.getRelative(BlockFace.SOUTH);
    case 5:
    return block.getRelative(BlockFace.NORTH);
    }
    return null;
    }


    Block block = getBlockBehindSign(BLOCO DA PLACA)

  11. FilipeNock's postagem in Sistema de resetar arena com Problemas! was marked as the answer   
    Pode fechar consegui resolver!! depois de horas
    Simplesmente antes de spawnar a cage eu n usei a localização salva no objeto criei uma nova Localização com os dados salvos
    Location teleportLoc = new Location(Bukkit.getWorld(getName()), is.getSpawn().getX(), is.getSpawn().getY(), is.getSpawn().getZ(), is.getSpawn().getYaw(), is.getSpawn().getPitch()); Util.setSoloCage(teleportLoc, cage.getItem().getType(), cage.getItem().getData().getData());
  12. FilipeNock's postagem in Duvida was marked as the answer   
    se vc vai fazer um rankup o correto seria criar um Objeto "Rank" e armazenar todas as informações nele
    caso contrario se vc vai mandar só as mensagens
    for (String rank : getConfig().getConfigurationSection("Ranks").getKeys(false)) { String id = getConfig().getString("Ranks." +rank); p.sendMessage(id + " - " + rank); }
  13. FilipeNock's postagem in Duvida was marked as the answer   
    faz um item Deserializer fiz um aqui rapidão pra vc ver
    public ItemStack deserializeItem(String item) { String[] split = item.split(" : "); ItemStack stack = new ItemStack(Material.AIR); if (split.length == 1) { stack = new ItemStack(Material.getMaterial(split[0])); } if (split.length == 2) { stack = new ItemStack(Material.getMaterial(split[0]), 1, (short)1, Byte.valueOf(split[1])); } if (split.length == 3) { stack = new ItemStack(Material.getMaterial(split[0]), 1, (short)1, Byte.valueOf(split[1])); ItemMeta meta = stack.getItemMeta(); meta.setDisplayName(split[2].replace("&", "§")); stack.setItemMeta(meta); } return stack; } Na Config:
    Items: #ITEM : DATA : NOME - 'DIAMOND_SWORD : 0 : &bEspada Foda' - 'DIAMOND : 0 : &6Meu Diamante' - 'WOOL : 5 : &9La Colorida' para dar os items para o player
    public void darItems(Player player) { for (String item : getConfig().getStringList("Items")) { ItemStack temp = deserializeItem(item); player.getInventory().addItem(temp); } } o seu método de deserializar os items pode conter tudo, Lore enchants então depende mt da sua capacidade de fazer fiz isso em uns 5 minutos
     
    EDIT:
    Fiz um mais complexo com lore e algumas coisas diferentes
    https://hastebin.com/nahawecoyo.vbs
     
    Config:
    Items: #ITEM : DATA : name=NOME : lore=LORE - '276 : 0 : name=&bEspada Foda : lore=&bLinha1, &6Linha2, &9Linha3' - 'DIAMOND : 0 : name=&6Meu Diamante' - '35 : 5 : name=&9La Colorida'
  14. FilipeNock's postagem in messages.yml was marked as the answer   
    o plugin é sua main, seria setup(this)
     
    eu fiz um Objeto pra config isso porque eu costumo criar vários tipos de arquivos separados
    https://pastebin.com/PVyYYg8J
     
    na sua Main

  15. FilipeNock's postagem in Sistema de licença was marked as the answer   
    public void onEnable() { if (!getServer().getIp().equals("192.168.0.0")) { Bukkit.getConsoleSender().sendMessage("§cVOCE NAO TEM A LICENÇA PARA USAR ESTE PLUGIN"); getPluginLoader().disablePlugin(this); } } '-- Coloca o ip do servidor ali! mas isso é fácil de burlar com qualquer bytecode editor vc pode modificar isso! voce pode usar um obfuscador que mude as strings, assim evita que o plugin seja alterado! eu uso um chamado Stringer Obfuscator
    exemplo:
     
  16. FilipeNock's postagem in Linhas da scoreboard duplicando was marked as the answer   
    usa essa API, feita pelo meu amigo @GremoryDev
    https://pastebin.com/cVLgAjp2
    public HashMap<Player, ScoreManager> scoreboard = new HashMap<>(); //invoca isso quando o player entrar no servidor public void AddPlayertoScoreboard(Player player) { ScoreManager board = new ScoreManager(player, "§E§LTITULO") { @Override public String placeHolders(String str) { return str.replace("%players%", Bukkit.getOnlinePlayers().size()+"").replace("%player%", player.getName()); } }; board.add("LINHA-1"); board.blank(); //ESPAÇO board.add("LINHA-2"); board.blank(); //ESPAÇO board.add("LINHA-3"); board.updateScoreboard(); if (scoreboard.containsKey(player)) { scoreboard.remove(player); } scoreboard.put(player, board); } public void onEnable() { Bukkit.getScheduler().runTaskTimer(this, new Runnable() { @Override public void run() { for (ScoreManager board : scoreboard.values()) { board.updateScoreboard(); } } }, 0, 20); } no onenable vc cria um scheduler para ele fazer update
  17. FilipeNock's postagem in [Ajuda] config subistituindo valor was marked as the answer   
    File file = new File(Main.getInstance().getDataFolder() + "/livros/" + player + ".yml"); YamlConfiguration edit = YamlConfiguration.loadConfiguration(file); edit.set("Resposta.1", "teste"); try { edit.save(file); } catch (IOException e) { e.printStackTrace(); } eu uso esse método e funciona
  18. FilipeNock's postagem in [Dúvida] Por que tá funcionando no inventário do Player? was marked as the answer   
    @EventHandler
    public void on(InventoryClickEvent e) {
    e.getClickedInventory(); //INVENTARIO CLICADO
    e.getWhoClicked(); //PLAYER
    if (e.getCurrentItem() == null) {
    return;
    }
    if (e.getClickedInventory().getName().equals("§bMENU")) {
    Player p = (Player) e.getWhoClicked();
    e.setCancelled(true);
    }
    }

  19. FilipeNock's postagem in Duvida!! was marked as the answer   
    Usa o vault '- eu uso quando preciso pegar a prefix ou grupo
    VaultHook.chat.getPrimaryGroup(p); VaultHook.chat.getPlayerPrefix(p);
×
×
  • Criar Novo...