-
Total de itens
188 -
Registro em
-
Última visita
Tudo que FilipeNock postou
-
resolvido [Duvida] Fazer uma scoreboard
pergunta respondeu ao Frogguer de FilipeNock em Dúvidas resolvidas
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 -
resolvido Configurações carregadas no onEnable (configs em cache é isso?)
pergunta respondeu ao RUSHyoutuber de FilipeNock em Dúvidas resolvidas
Os cara puxando o SQL toda vez que o player entra e sai do servidor... ou YAML, man quando o servidor iniciar carrega todos os dados da config, exemplo Servidor Inicia: Carrega todos os dados para um HashMap com o Objeto Quando o jogador entrar: checa se existe algum Objeto com o UUID dele na HashMap, caso não existir adicione um novo Objeto na HashMap Servidor Desligando: salva todos os dados no YML, SQL Puxar da config toda vez que o player entrar isso vai pesar o servidor -
resolvido Bota lapis lazuli no altar
pergunta respondeu ao Frogguer de FilipeNock em Dúvidas resolvidas
Continuando o que o Alomax falou.. é simples quando ele abrir o inv adiciona o item, cancela o evento do click e quando ele fechar o inv remove o item @EventHandler public void open(InventoryOpenEvent e) { if (e.getInventory() instanceof EnchantingInventory) { e.getInventory().setItem(1, new ItemStack(Material.INK_SACK, 64, (short)1, (byte)4)); } } @EventHandler public void click(InventoryClickEvent e) { if (e.getClickedInventory() instanceof EnchantingInventory && e.getSlot() == 1) { e.setCancelled(true); } } @EventHandler public void close(InventoryCloseEvent e) { if (e.getInventory() instanceof EnchantingInventory) { e.getInventory().setItem(1, new ItemStack(Material.AIR)); } } -
Nope 0% de lag nesse evento.. mas tbm depende do que voce colocar a seguir, tipo colocar uns loop doido ai, dai vai dar lag
-
o que te impede de usar o BukkitRunnable? ele ja é uma api porque precisaria de outra?
-
resolvido Sistema de porcentagem
pergunta respondeu ao iVictor777z de FilipeNock em Dúvidas resolvidas
//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: -
resolvido Como pegar o nome do fundador do clan
pergunta respondeu ao Bieuzitos de FilipeNock em Dúvidas resolvidas
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 -
a plugin.yml tah fora da src boy '-' mova o arquivo para a src que vai funcionar a plugin.yml ta na referenced Libraries como vi na imagem
-
Bom provavelmente voce ja resolveu seu problema mas depois de umas horas quebrando a cabeça pensei em um jeitinho de vc evitar tanto trabalho fiz um codigo pra voce pegar as layers diretamente do Site public static ArrayList<Pattern> getPatterns(String cmdcode) { ArrayList<Pattern> patterns = new ArrayList<>(); String fullcode = cmdcode; String replacedcode = fullcode.replace("{BlockEntityTag:{", ""); String[] coded = replacedcode.split(",Patterns:\\["); String[] coded2 = coded[1].split("\\},\\{"); for (int i = 0; i<coded2.length;i++) { String out = coded2[i].replace("]", "").replace("[", "").replace("{", "").replace("}", ""); String[] outlenght = out.split(","); String pattern = outlenght[0].replace("Pattern:", ""); String color = outlenght[1].replace("Color:", ""); patterns.add(new Pattern(DyeColor.getByDyeData(Byte.parseByte(color)), PatternType.getByIdentifier(pattern))); } return patterns; } Essa é a API, Como usa-la? é bem simples faça seu banner no site, Clique no /give lá no generate code e copie para um arquivo de texto qualquer Após colocar em um arquivo de texto remova o inicio como mostra na imagem abaixo e use o codigo desse jeito: public void test(Player player) { ItemStack stack = new ItemStack(Material.BANNER); BannerMeta meta = (BannerMeta) stack.getItemMeta(); meta.setBaseColor(DyeColor.WHITE); //TEXTO cmd DO SITE - obs: DEVE COPIAR DE ACORDO COM ESTE EXEMPLO A PARTIR DO {BlockEntityTag: String fullcode = "{BlockEntityTag:{Base:15,Patterns:[{Pattern:sc,Color:0},{Pattern:drs,Color:0},{Pattern:dls,Color:0},{Pattern:mc,Color:13}]}}"; for (Pattern p : getPatterns(fullcode)) { meta.addPattern(p); } stack.setItemMeta(meta); player.getInventory().addItem(stack); } No Jogo voce tem esse resultado:
-
ele te enviou um link agr voce deve ir no seu codigo e colocar layer por layer de acordo com a ordem que voce fez no site, sinto muito mas não existe um codigo pronto pra isso! ItemStack stack = new ItemStack(Material.BANNER); BannerMeta bm = (BannerMeta)stack.getItemMeta(); //SETA AS LAYERS stack.setItemMeta(bm);
-
itembuilder ItemStack Builder [Classs & GUI] Config ItemStack
tópico respondeu ao FilipeNock de FilipeNock em Projetos
As vezes invento algumas parada mas é bom kibar aashasuashsauas basicamente faço de tudo mas kibar é bom -
Aqui ta toda a documentação do Messaging Channel do Bukkit, só seguir os passos que voce consegue de boa, mas pense bem antes de fazer ele não envia dados de um servidor para o outro ele envia para a proxy (Bungeecord) ou recebe! é possivel enviar de um servidor para o outro mas é preciso passar pela Proxy antes https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/ Se quiser um tutorial com codigos prontos. https://www.spigotmc.org/threads/tutorial-advanced-plugin-messaging-spigot-bungeecord.53440/
-
resolvido [Duvida] Como usar PlayerPoints, adicionar saldo e retirar!
pergunta respondeu ao yLR111 de FilipeNock em Dúvidas resolvidas
https://dev.bukkit.org/projects/playerpoints/pages/api Ai tem todas instruções -
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()
-
resolvido [Duvida] Como remover essas tag do Item
pergunta respondeu ao yLR111 de FilipeNock em Dúvidas resolvidas
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 -
UUID nunca vai mudar se voce entrar com pirata ou original se o nome for o mesmo vai ser o mesmo uuid /:
-
itembuilder ItemStack Builder [Classs & GUI] Config ItemStack
tópico respondeu ao FilipeNock de FilipeNock em Projetos
Sim mas vo pegar na net as classes do nescessarias do bukkit pra remover ele da buildpath o layout do programa fiz com o WindowBuilder do eclipse -
itembuilder ItemStack Builder [Classs & GUI] Config ItemStack
tópico respondeu ao FilipeNock de FilipeNock em Projetos
comecei a fazer programas em java faz pouco tempo mas to tentando deixar o projeto mais leve isso é um bom começo eu achava que o java não era tão grande assim mas da pra explorar muito mais! e pretendo ir fundo -
itembuilder ItemStack Builder [Classs & GUI] Config ItemStack
tópico respondeu ao FilipeNock de FilipeNock em Projetos
to usando o discord as vezes Perfil: Nock#0422 vlw ^^ gui vc é outro sumido tbm né -
itembuilder ItemStack Builder [Classs & GUI] Config ItemStack
um tópico no fórum postou FilipeNock Projetos
Olá a todos! Bom já fiz vários tipos de Plugins/Minigames e meio que enjoei de tudo sempre a mesma coisa e decidi ir mais além, fiz uma classe com um itemBuilder e com config serializable. 1º - Coloque a classe em seu Projeto ItemBuilder.class: https://pastebin.com/cCi9XN0N 2º - Você pode usar o itemBuilder padrão seguindo o exemplo: ItemStack exemplo = new ItemBuilder(Material.WOOL, 5).setName("§cColoured Woll").addLoreLine("Adicionando uma lore").build(); //removeFlags() deixa o item encantado mas sem aparecer que esta ItemStack exemplo2 = new ItemBuilder(Material.WOOL, 5).setName("§cColoured Woll").addEnchant(Enchantment.ARROW_DAMAGE, 5).removeFlags().build(); ItemStack exemplo3 = new ItemBuilder(Material.SKULL_ITEM, 3).setSkullOwner("FilipeNock").build(); 3º - Como Voce viu acima isso é um metodo de fazer um itemStack facil mas ja existem varias classes na net que fazem isso e então fiz um deserialize/serialize para config, e fiz com um programa pra ajudar! o programa ainda nao esta completo mas vou mostrar como usa-lo. Este é o construtor voce pode fazer manualmente escolhendo partes dele: // id=TEXT/NUMBER : data=NUMBER : amount=16 : name=TEXT : lore=TEXT/-/TEXT : // enchant=DAMAGE_ALL;5 : hideflags=BOOLEAN : potioneffect=SPEED;10;2;true : texture=TEXT Voce pode selecionar o Item e a data do item e clicar em "Criar" Após isso voce pode adicionar encantamentos e o nome seguindo a Imagem Agora voce pode clicar em "Copiar" e colar na sua config e usar o método na sua classe config.yml ITEM: "id=DIAMOND_SWORD : data=0 : enchant=DAMAGE_ALL;5 : name=&6NomeDoItem" ItemStack exemplo = ItemBuilder.Serialize(getConfig().getString("ITEM")); ItemStack exemplo2 = ItemBuilder.Serialize("id=DIAMOND_SWORD : data=0 : enchant=DAMAGE_ALL;5 : name=&6NomeDoItem"); DOWNLOAD DO PROGRAMA: http://www.mediafire.com/file/z8lcscbvo572elt/ItemStack+Builder+1.1.jar UPDATE: 1.1 Estou aceitando pedidos de Plugins ou Programas se alguém quiser estou dísponivel -
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"); } } }
-
realmente não to entendendo o que voce quer fazer!
-
voce tah fazendo ao contrario! UUID não muda somente o nome então sempre vai ser o mesmo uuid @EventHandler public void join(PlayerJoinEvent e) { Player p = e.getPlayer(); if (!getConfig().contains(p.getUniqueId().toString())) { getConfig().set(p.getUniqueId().toString()+".Nome", p.getName()); } } public boolean eOmesmoNome(Player player) { if (getConfig().contains(player.getUniqueId().toString())) { String nome = getConfig().getString(player.getUniqueId().toString()+".Nome"); if (nome.equalsIgnoreCase(player.getName())) { return true; } } return false; } voce tem que checar o nome do player nao o UUID
-
resolvido [Duvida] evento para command send
pergunta respondeu ao mabazi de FilipeNock em Dúvidas resolvidas
@EventHandler public void cmds(PlayerCommandPreprocessEvent e) { Player p = e.getPlayer(); String msg = e.getMessage(); if (msg.equalsIgnoreCase("/comando")) { e.setCancelled(true); p.sendMessage("Voce nao pode usar este comando"); } } PlayerCommandPreprocessEvent -
resolvido Cancelar Drop De um player quando morre
pergunta respondeu ao dudu de FilipeNock em Dúvidas resolvidas
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); } }