-
Total de itens
2.229 -
Registro em
-
Última visita
Tudo que leonardosc postou
-
Há vários problemas nesse código... 1: Tire isso: Location cAleatorio = (Location) randomLoc.getWorld(); não faz sentido! Você está tentando converter um MUNDO para uma Localização '-' 2: O retorno dessa chamada de método randomLoc.getWorld().getHighestBlockAt(randomLoc); não está sendo usado em lugar nenhum. Você deve setar o Y do randomLoc para o valor retornado por essa função. Ex: randomLoc.setY(randomLoc.getWorld().getHighestBlockAt(randomLoc).getY()); Senão ela não terá efeito. 3: Tire isso player.teleport(Bukkit.getWorld("minerar").getSpawnLocation()); Não faz sentido também. Você já está teleportando o jogador pra randomLoc, por que teleportar ele pro spawnLocation novamente? 4: O jogador não será teleportado na primeira vez que executar o comando pois na linha 7 você está dizendo que ele só será teleportado caso o metadado tempoMinerar exista, porém, na primeira vez que ele executar o comando, isso não existirá... O mais correto seria verificar se o tempoMinerar existe, e se o delay já expirou antes de chegar na lógica de teleportar. Por exemplo: if (tem o metadado tempoMinerar) { // verifica se o delay já expirou aqui, retorne caso não tenha expirado. } resto da lógica aqui... 5: A lógica do delay está errada. Você precisa verificar tempo (System.currentTimeMillis) atual MENOS o tempo que você salvou no metadado é menor que 1000. Você está apenas pegando o tempo atual e verificando se é menor do que 1000, isso SEMPRE será falso... Isso deve funcionar: @Override public boolean onCommand(CommandSender sender, Command cmd, String clabel, String[] args) { Player player = (Player) sender; if (clabel.equalsIgnoreCase("minerar")) { if (player.hasPermission("mts.minerar")) { // Verifica o delay antes de chegar na lógica do comando if (player.hasMetadata("tempoMinerar")) { System.out.println("Executado parte 4 setmetadata"); long tempoQueFoiExecutado = player.getMetadata("tempoMinerar").get(0).asLong(); long tempo = System.currentTimeMillis() - tempoQueFoiExecutado; System.out.println("Executado parte 5 long tempo"); if (tempo <= 1000) { System.out.println("Executado parte 6 long verificado"); player.sendMessage(ChatColor.GREEN + "Aguarde para usar o comando novamente"); System.out.println("Executado parte 6 tempo igual menor 1000"); return true; } } System.out.println("Executado parte 1"); Random random = new Random(); World world = Bukkit.getWorld("minerar"); int X = 20000; int Z = 20000; int x = random.nextInt(X); int y = 1; int z = random.nextInt(Z); Location randomLoc = new Location(world, x, y, z); randomLoc.setY(randomLoc.getWorld().getHighestBlockAt(randomLoc).getY()); player.teleport(randomLoc); System.out.println("Executado parte 2 random"); player.sendMessage(ChatColor.GREEN + "Teleportado ao Mundo Minerar"); player.sendMessage(ChatColor.GREEN + "Mundo de Mineracao! Aqui voce so podera coletar recursos"); player.sendMessage(ChatColor.GREEN + "Nada que construir aqui e protegido!"); System.out.println("Executado parte 3 teleporte e mensagens"); // Você só deve setar o metadado apenas se ele executar o comando, não antes. player.setMetadata("tempoMinerar", new FixedMetadataValue(plugin, System.currentTimeMillis())); } else { player.sendMessage(ChatColor.RED + "Voce nao tem permissao para isso"); System.out.println("sem permissao"); return true; } } return false; }
-
Stranger Things
-
@edit Post duplicado. Se algum MOD puder apagar eu agradeço.
-
Daria na mesma coisa do quê? Pelo que foi informado acima, ele só precisa se comunicar entre os MODS dele (rodando no CLIENTE), não com um servidor e nem entre clientes. Dá pra pensar nesse MOD intermediário como aqueles "COREs/Libs" que alguns usam. A diferença é que esses COREs têm funcionalidades/módulos/'utils' que serão utilizadas pelos plugins do desenvolvedor, e o MOD intermediário seria, a princípio, para guardar dados que seriam compartilhados entre os MODS. Então dá pra fazer algo mais simples ainda: você pode usar o sistema de arquivos. Basta criar um arquivo que será acessado pelos seus MODS.
-
Não tenho muita experiência com mods, mas talvez você possa usar um mod intermediário, que seja usado como dependência dos seus outros mods. Assim você pode salvar dados (como a ultima vez que a mensagem foi enviada) no mod intermediário e acessá-los a partir dos outros mods. http://www.minecraftforge.net/forum/topic/60566-solved-access-to-other-mods-requirements-1121/
-
Seriam mods diferentes né...? Quem usaria 10 mods iguais '-' Essa mensagem seria enviada apenas no chat do jogo (da pessoa)?
-
Os clientes precisam se comunicar entre si ou com um servidor? Você pode ser mais especifico sobre o que deseja fazer? Talvez possamos te ajudar melhor.
-
Quer um cache bem simples? Para leitura: Pega o dado do jogador do banco de dados quando ele entrar no servidor e salva na memoria. Geralmente, é usado uma HashMap, tendo como chave o identificador do jogador (idealmente é o UUID) e como valor o dado que você deseja 'cachear', pois ela tem um tempo de leitura/escrita, na maioria das vezes, constante (fora que é o que você geralmente precisa em um cache: uma estrutura de dados que mapeie um determinado valor a uma chave.) Para escrita: Você pode simplesmente atualizar o dado no cache (de leitura) e depois executar uma query assincronamente (ou seja, fora da thread principal do servidor) para atualizar o dado no banco de dados.
-
Foi só analogia com Bukkit ou você vai usar isso em plugins?
-
ConfigManager - Facilitando sua vida com as config.yml
tópico respondeu ao TequilAxBr de leonardosc em Projetos
Isso vai dar erro se for uma List e você tentar fazer o cast para String. Sabe como eu fiz no meu? Viu aquele @ApplyConverter(ChatColorConverter.class)? Ele que é responsável por dar replace nas cores caso eu queira. Funciona tanto para String quanto para uma lista de strings. É simples, basta verificar o tipo do objeto que está naquele path: - Se for uma string basta usar o ChatColor.translateAlternateColorCodes; - Se for uma lista, basta percorrer os items, verificar se são Strings e fazer a mesma coisa do 1° caso. -
ConfigManager - Facilitando sua vida com as config.yml
tópico respondeu ao TequilAxBr de leonardosc em Projetos
Também fiz uma parecida no ultimo PL q fiz. Btw, acho que você quis dizer path (que é o caminho na config) e não patch -
inativo Como posso fazer um sistema de delay, de dias por exemplo?
tópico respondeu ao paauum de leonardosc em Arquivos
Basta salvar o currentTimeMillis de quando o delay iniciou e a duração do delay em milisegundos. Para verificar se o delay expirou é só fazer: (currentTimeMillis que tu salvou) + (delay em milisegundos) < System.currentTimeMillis() -
inativo Player Bater em Mobs de Plots sem precisar de add - PlotSquared
tópico respondeu ao iVictoorG de leonardosc em Arquivos
Lá no final, tenta trocar isso flags: use: 63,68 pra isso flags: use: 63,68 pve: true https://github.com/IntellectualSites/PlotSquared/wiki/Usage:-Plot-flags#default-flags -
Você precisa chamar o método Run em algum lugar.
-
mc-player-counter | Contador de players no seu site com 2 linhas de HTML
tópico respondeu ao leonardosc de leonardosc em Projetos
Dever ser algo relacionado a sua host. Ela tá recusando a conexão da api (Como pode ver no erro: "Connection refused")... -
mc-player-counter | Contador de players no seu site com 2 linhas de HTML
tópico respondeu ao leonardosc de leonardosc em Projetos
Tem certeza que o ip tá certo? Como pode ver aqui: https://use.gameapis.net/mc/query/players/beatless.[Art. 23 - Removido].hostinga API não tá conseguindo se conectar... -
Como verificar se o inventário de um player esta vazio
tópico respondeu ao RUSHyoutuber de leonardosc em Tutoriais
Tua lógica tá meio bugada. Se o firstEmpty retorna -1 quando NÃO HÁ NENHUM SLOT VAZIO como que isso significa que o inventário está vazio? '-' O firstEmpty retorna -1 quando todos os slots têm pelo menos UM item. -
mc-player-counter | Contador de players no seu site com 2 linhas de HTML
tópico respondeu ao leonardosc de leonardosc em Projetos
Ali no VERSÃO é a versão do script, não do servidor. Deve ser https://cdn.jsdelivr.net/gh/leonardosnt/[email protected]/dist/mc-player-counter.min.js que é a versão do script mais atualizada. -
mc-player-counter | Contador de players no seu site com 2 linhas de HTML
tópico respondeu ao leonardosc de leonardosc em Projetos
Qual a versão do seu servidor? O seu site está online? Caso esteja, poderia mandar o link para eu verificar? -
Você sabe criar arquivos yml separados? Dá pra fazer um arquivo pra cada linguagem, aí depois é só abrir o arquivo da linguagem correspondente e pegar as mensagens.
-
O caso do download foi só um exemplo. No teu caso não creio que seja possível fazer automaticamente. Talvez de pra fazer algo semi-automático com Future, mas não acho que valha a pena.
-
[Tutorial] Descomplicando a API Reflection
tópico respondeu ao Out of Orbit de leonardosc em Tutoriais
Bom, se a String que você quer modificar estiver em um Field e este field não for final (porque, se for final, o compilador já vai ter "inline-zado" a String, fazendo com que a alteração tenha efeito), basta modificar o valor do Field. Caso contrário você terá que alterar direto no arquivo .class. Você pode tentar usar esta ferramenta que eu fiz: https://leonardosnt.github.io/jar-string-editor/que permite alterar as strings de um jar.- 8 respostas
-
1
-
- tutorial
- reflection
-
(e %d mais)
Tags:
-
Creio que o membro Xuxinha estava se referindo à pergunta da imagem (Já participou da equipe de algum servidor...).
-
Eu iniciei no mundo de programação vendo os vídeos da Universidade XTI, isso em 2014. Antes de assistir as aulas, eu tinha bastante dificuldade em criar qualquer projeto, o mais simples que fosse, pois não sabia nada de Java. Porém, após concluir o curso, comecei a fazer VÁRIOS projetos, desde plugins de Minecraft até aplicações com Swing etc, tudo isso sem muita dificuldade. Quando comecei a assistir, não sabia praticamente NADA sobre programação, lógica ou algorítimos. Esse curso me ensinou a realmente programar. Porém, creio que o segredo para as aulas terem realmente se fixado na minha cabeça foi a pratica. Eu praticava BASTANTE, principalmente com Minecraft (Bukkit). Logo que aprendia uma coisa nova eu tentava colocar em pratica em algum plugin. E isso é uma dica que eu sempre dou: treine bastante! Não adianta só ficar vendo teoria, é preciso colocar em pratica o que você aprendeu. Pelo menos comigo é assim. Vale ressaltar que não é por que esse curso funcionou para mim que necessariamente vai funcionar para você. Mas realmente acho que vale a pena dar uma olhada. Isso vai depender da pessoa (e do livro também...). Se ela costuma ler, é bem provável que seja mais fácil aprender lendo. Você não precisa necessariamente comprar um livro. Há vários ebooks sobre Java (e vários outros assuntos) gratuitamente na internet. Eu mesmo já li alguns sobre java, como por exemplo Effective Java e Java 8 In Action (ambos em inglês). Não costumo ler ebooks sobre programação em português, então não tenho como opinar sobre os mesmos.
-
Qual foi a pergunta então?