-
Posts
2,229 -
Joined
-
Last visited
About leonardosc

Informações pessoais
-
Sexo
Outro
-
Localização
Brazil
Recent Profile Visitors
9,466 profile views
-
jhullyo started following leonardosc
-
GbrielxD__ started following leonardosc
-
Orlandine started following leonardosc
-
zBrunooow started following leonardosc
-
Wilker25 reacted to a post in a topic: Vídeos/Playlists para quem quer começar a fazer plugins Bukkit.
-
zNonym started following leonardosc
-
Caabraal reacted to a post in a topic: [G]OLD'S - LsMobsVsPlayers
-
ZeDroguinha reacted to a post in a topic: [Bukkit] Lista de eventos
-
gonssalviz started following leonardosc
-
Keverson reacted to a post in a topic: Documentação Bukkit / Spigot
-
Capricho reacted to a post in a topic: 5 Motivos para não comprar plugin com licença
-
Dksmenberfull started following leonardosc
-
darshannon reacted to a post in a topic: LsMito - Mito do pvp bem feito...
-
leonardosc reacted to a post in a topic: [FREE] BSMito >> Novo Plugin de Mito do PVP
-
iVictor777z reacted to an answer to a question: Enviar comandos entre servidores (Bungee)
-
iVictor777z reacted to an answer to a question: Enviar comandos entre servidores (Bungee)
-
Beckeroi reacted to a post in a topic: Becker... cadê você ;=;
-
salfjusaghyfasuy reacted to a post in a topic: Vídeos/Playlists para quem quer começar a fazer plugins Bukkit.
-
leonardosc changed their profile photo
-
leonardosc reacted to a post in a topic: Ajuda com setMetadata e Random
-
INATIVOS Ajuda com setMetadata e Random
Maticus_ replied to topic's leonardosc in Inativos & Irregulares
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.
-
leonardosc reacted to an answer to a question: duvida sobre java
-
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
TequilAxBr replied to topic's leonardosc in 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. -
leonardosc reacted to a post in a topic: ConfigManager - Facilitando sua vida com as config.yml
-
ConfigManager - Facilitando sua vida com as config.yml
TequilAxBr replied to topic's leonardosc in 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 -
INATIVOS Como posso fazer um sistema de delay, de dias por exemplo?
paauum replied to topic's leonardosc in Inativos & Irregulares
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() -
leonardosc reacted to a post in a topic: TintaDropStack - Sistema de stackar drops
-
Você precisa chamar o método Run em algum lugar.
-
mc-player-counter | Contador de players no seu site com 2 linhas de HTML
leonardosc replied to topic's leonardosc in Projetos
Dever ser algo relacionado a sua host. Ela tá recusando a conexão da api (Como pode ver no erro: "Connection refused")...