Ir para conteúdo

bieel1503

Membros
  • Total de itens

    130
  • Registro em

  • Última visita

Tudo que bieel1503 postou

  1. O Spigot tem uma página falando sobre isso: https://www.spigotmc.org/wiki/what-is-spigot-craftbukkit-bukkit-vanilla-forg/.
  2. é só usar o método "contains". Exemplo: List<Player> list = ...; Player player = ...; new BukkitRunnable(){ public void run(){ if(list.contains(player)){ } } }.runTaskTimer(plugin, 20, 20);
  3. Só o jogador que você mandou vai ouvir. SOURCE
  4. Aqui: https://puu.sh/B5LMT.jar. A permissão para não ser cobrado é "capiroto.bypass".
  5. Setar a skin por um "UUID aleatório"...? Como assim? Você tá falando da "UUID aleatória" de um offline-mode server? Se for, tem como pegar a "UUID verdadeira" de um nome usando a API da Mojang.
  6. bieel1503

    Lore

    Não vai lagar para apenas setar uma lore, mas você pode fazer async também. E quando ele fechar, apenas cancela a task.
  7. bieel1503

    Lore

    É só pegar o item do inventário e setar uma nova lore, não? Ou pegar a linha que é para atualizar, setar a linha com as informações atualizadas e setar novamente a lore.
  8. Usando o 'void remove​(ItemStack item)', o item será totalmente removido, e isso só acontece se o material e a quantia do item forem iguais. Tenta apenas setar como -1 na quantia do item.
  9. Checa o "ClickType" e cancela se for "NUMBER_KEY". source: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/inventory/InventoryClickEvent.html#getClick--.
  10. CraftBukkit: Spigot: Paper: TacoSpigot: source: https://www.spigotmc.org/wiki/what-is-spigot-craftbukkit-bukkit-vanilla-forg/.
  11. Bem, isso apenas faz com que mande um comando via console... não seria melhor apenas usar o "TextComponent" que a própria Spigot tem? Um exemplo: Player player = ...; TextComponent sup = new TextComponent("Sup"); sup.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/suicide")); player.spigot().sendMessage(sup); tutorial: https://www.spigotmc.org/wiki/the-chat-component-api/.
  12. Não tem como fazer isso... você pelo menos testou, ou pelo menos viu a API? o "getBlock" da classe vai retornar apenas o bloco dentro da chunk.
  13. Não entendi... o "getBlock" vai retornar um objeto do tipo "Block", é só você usar o método "getLocation" da classe.
  14. Certo... primeiro você vai precisar criar um novo arquivo com o ".yml" como extensão dentro de seu projeto. Eu vou deixa-lo como "custom.yml". Ah, e eu vou estar usando a Main como exemplo. Depois de criar o arquivo, na nossa classe, crie duas variáveis, uma como tipo "File" e outra como "YamlConfiguration". Ficará assim: File file; YamlConfiguration yamlconfiguration; A variável "file" vai ser o nosso arquivo(custom.yml) e a "yamlconfiguration" vai ser o acesso para os dados. Agora já criamos o arquivo, definimos as variáveis, e agora falta extrairmos o arquivo para a pasta de nosso plugin. Vamos ter que criar um método para isso, e nosso método vai retornar um objeto do tipo "File". Eu vou criá-lo como "extractFile". Ficou assim: File extractFile(){ } Dentro do método, crie uma variável do tipo "File" e faça também um "try-catch". Colocaremos um "return null" dentro do "catch" para se caso der erro retornar como nulo. Ficará assim: File extractFile(){ File file; try{ }catch(Exception e){ return null; } } Na variável "file", vamos criar uma nova instância do objeto e colocaremos "getDataFolder().getAbsolutePath()" em seu parâmetro. O "getDataFolder()" é um método da classe "JavaPlugin", ele me retorna a pasta aonde o nosso plugin está e como isso retorna um arquivo, vamos usar o método "getAbsolutePath()" da classe "File" para podermos pegá-lo como "String" o seu "caminho". Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ }catch(Exception e){ return null; } } É possível que não exista a pasta do plugin e teremos que criarmos. Agora, dentro do "try-catch", vamos checar se ela existe com o método "exists" da classe "File" e se não existir, vamos criá-la com o método "mkdir". Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ //com o "!" no começo, é a mesma coisa que fizermos "if(file.exists == false)". if(!file.exists){ file.mkdir(); } }catch(Exception e){ return null; } } Já checamos se a pasta do plugin existe, e se não existir, a gente cria uma. Agora vamos dar outro valor para a variável "file", teremos que criar outra instância e vamos colocar o parâmetro como "file.getAbsolutePath() + "/custom.yml". Isso vai retornar o nosso arquivo e de primeira, ele não vai existir, mas é possível que você já tenha extraído uma vez, então temos que checar. Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ if(!file.exists){ file.mkdir(); } file = new File(file.getAbsolutePath() + "/custom.yml"); if(!file.exists){ } }catch(Exception e){ return null; } } Agora, depois de checarmos se ele não existe, teremos que pegar o arquivo "custom.yml" de dentro da nossa jar e extrairmos. Coloque esse código dentro: InputStream tocopy = getClass().getResourceAsStream("/custom.yml"); Files.copy(tocopy, file.getAbsoluteFile().toPath()); tocopy.close(); Isso vai extrair para a pasta de nosso plugin. Ah, e não se esqueça de retornar o arquivo depois disso. Ficará assim: File extractFile(){ File file = new File(getDataFolder().getAbsolutePath()); try{ if(!file.exists){ file.mkdir(); } file = new File(file.getAbsolutePath() + "/custom.yml"); if(!file.exists){ InputStream tocopy = getClass().getResourceAsStream("/custom.yml"); Files.copy(tocopy, file.getAbsoluteFile().toPath()); tocopy.close(); } return file; }catch(Exception e){ return null; } } Agora na "onEnable", vamos dar os valores para as nossas variáveis "file" e a "yamlconfiguration". O da "file", vai ser o arquivo que retornar do nosso método "extractFile" e o "yamlconfiguration", a gente vai fazer que carregue os dados do "file" como nosso valor. Ficará assim: public void onEnable(){ file = extractFile(); yamlconfiguration = YamlConfiguration.loadConfiguration(file); } E pronto, agora você tem um yml customizado. Ah, e você usará o "yamlconfiguration" para ter acesso aos dados.
  15. É para isso que o "getBlock" da classe existe. Por exemplo, se caso você fazer "getBlock(0, y, 0)", ele vai te retorna o primeiro da chunk. source: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Chunk.html#getBlock-int-int-int-.
  16. Só é possível pegar o NPC pelo uniqueid, id e entity. Pelo menos é o que vi na documentação. source: http://jd.citizensnpcs.co/net/citizensnpcs/api/npc/NPCRegistry.html
  17. pode me mandar o plugin? talvez eu posso arrumar/criar um para bloquear isso.
  18. Você precisa modificar o "location" antes de criar o hologram. Pode deixar apenas: Hologram hologram = HologramsAPI.createHologram(Main.plugin, location.add(0D,1D,0D)); //O "add" no "location" serve para adicionar +1 para o Y;
  19. É simples criar um holograma com a API do HolographicDisplays, basta só fazer isso: HologramsAPI.createHologram(plugin, npclocation); //você pode fazer "npclocation.add(0D, 1D, 0D)" para o holograma ficar em cima da cabeça dele API: https://ci.filoghost.me/job/HolographicDisplays/javadoc/index.html?com/gmail/filoghost/holographicdisplays/api/HologramsAPI.html
  20. As .classes estão em: <workspacedir>/<project>/bin
  21. Boa iniciativa! Eu vou tentar conseguir uma vaga!
  22. Desculpa, mas não é isso, eu apenas já tive servidor hospedado com a Virtus e nunca tive problema ou lag, então eu apenas fiz uma recomendação. Eu não vi as letras pequenas, desculpa.
  23. Acho que a melhor em host brasileira é a Virtushost.
×
×
  • Criar Novo...