-
Total de itens
457 -
Registro em
-
Última visita
Tudo que Lucca. postou
-
tranquilo! vlw dudubs, <33
-
SCROLLER DIFERENCIADO! (SCOREBOARD) Olá! bom, neste tutorial irei ensinar como fazer um scoreboard com um título que fica trocando de cores! (GIRANDO) e.e Exemplo: temos esta String: "DUALVIADAO" Este scroller, fará o seguinte: Ele irá deixar todas as letras com a cor que você escolheu, e depois, passará de letra por letra trocando as cores. (se isso te bugou, é semelhante ao mineplex/hypixel). Explicação²: Ficará tipo assim, só que automático: §eDUALVIADAO §6§lDUALVIADAO §eD§6§lU§eALVIADAO §eDU§6§lA§eLVIADAO Até zerar a string, depois recomeçará novamente este ciclo. Agora, vamos ao code: Em seu code de scoreboard, basta adicionar: final String texto = "EXEMPLO"; final String cor1 = "§e"; final String cor2 = "§6§l"; new BukkitRunnable() { int c = 0; public void run() { if(c + 1 < texto.length()) { String msg = cor1 + texto.substring(0, c) + cor2 + texto.substring(c, c+1) + cor1 + texto.substring(c+1); c += 1; score.setDisplayName(msg); }else{ c = 0; } } }.runTaskTimer(Main.c, 0, 6); LEMBRANDO: score é a variável de seu scoreboard. OBS: Não fui eu que criei este code! OBS²: Não sei quem foi, então não tem como por créditos.. (se alguém souber, me avise) Para editar as cores, basta alterar a string: ''cor1'' e ''cor2'', e para alterar o texto: String ''texto'' Se eu ajudei, da uma laikada aew! \o
-
[Resolvido] Checar se o player tem clan está retornando NullPointerException?
pergunta respondeu ao Dery de Lucca. em Dúvidas resolvidas
\o -
Flw, mas se você estava aqui só por cargo, já vai tarde! :)
-
Ok! mas, code que funcione assim, acredito que você não ache um MUITOOOOO menor, D:
-
[Resolvido] Checar se o player tem clan está retornando NullPointerException?
pergunta respondeu ao Dery de Lucca. em Dúvidas resolvidas
Tente: ClanPlayer pclanplayer = this.sc.getClanManager().getClanPlayer(p.getName()); Clan pclan = pclanplayer.getClan(); if (pclan == null) { //oque acontece se o clan for nulo. } @EDIT caso não funcione, acredito que você tenha esquecido de declarar a variável na main: public SimpleClans sc; public void onEnable() { Plugin plug = getServer().getPluginManager().getPlugin("SimpleClans"); if (plug != null) { this.sc = ((SimpleClans)plug); } } @EDIT² Se eu ajudei da um like ai parça -
MENSAGENS CENTRALIZADAS! Olá! hoje irei ensinar como enviar uma mensagem centralizada para algum player no chat! OBS: Não fui eu que criei este code! OBS²: Não sei quem foi, então não tem como por créditos.. (se alguém souber, me avise) Bom, basta você adicionar o seguinte método a sua class: private final static int CENTER_PX = 154; public static void sendCenteredMessage(Player player, String message){ if(message == null || message.equals("")) player.sendMessage(""); message = ChatColor.translateAlternateColorCodes('&', message); int messagePxSize = 0; boolean previousCode = false; boolean isBold = false; for(char c : message.toCharArray()){ if(c == '§'){ previousCode = true; continue; }else if(previousCode == true){ previousCode = false; if(c == 'l' || c == 'L'){ isBold = true; continue; }else isBold = false; }else{ DefaultFontInfo dFI = DefaultFontInfo.getDefaultFontInfo(c); messagePxSize += isBold ? dFI.getBoldLength() : dFI.getLength(); messagePxSize++; } } int halvedMessageSize = messagePxSize / 2; int toCompensate = CENTER_PX - halvedMessageSize; int spaceLength = DefaultFontInfo.SPACE.getLength() + 1; int compensated = 0; StringBuilder sb = new StringBuilder(); while(compensated < toCompensate){ sb.append(" "); compensated += spaceLength; } player.sendMessage(sb.toString() + message); } Após isso, basta fazer apenas isto: sendCenteredMessage(p, "Teste gamersboard"); E sua mensagem será enviada ao player p, totalmente centralizada! @EDIT Você também precisará criar uma class de nome DefaultFontInfo, contendo o seguinte code: CLIQUE AQUI PARA VER O CODE E lembrando, este code suporta totalmente o uso de cores (§).
-
Bom tutorial! vai ajudar muita gente \o
-
Utilize: System.out.printLn("Sua string aq\nString da outra linha");
-
uhum, tá serto -q
-
-
-
Olá! bom, neste tutorial irei ensinar um sistema básico de proteção pelo sistema da DEVHUB.. Bom, e oque é a dev hub? Caso queira entender TUDO sobre a devhub, veja o tópico do próprio criador, mas, caso você tenha preguiça (que nem eu), irei explicar + - aqui. Para acessar a devhub clique aqui A devhub é um site totalmente free, onde você cria sua conta, e, após criada, você pode criar PROJETOS no site, para ser o ''manager'' de proteção de seu plugin. Quando você estiver criando seu projeto, você precisará inserir 2 dados, para concluir a criação. Após criado, seu projeto terá 4 ''dados'', que são: Tag (Nome de seu projeto), Key (Key que você cria), Ip(O ip, caso, você habilite a ''proteção de ip'' na hora de criar o projeto, ele irá marcar toda vez que alguém utiliza sua key, qual ip foi), e a SecretKey(Uma key extra de segurança gerada pelo próprio site). Será + - assim: Bom, após fazer tudo isso, partiremos para parte em seu plugin! Primeiramente, (em meu caso), faremos um arquivo .yml, onde você colocará os dados de seu projeto: public File key; public FileConfiguration key_conf; Após isso, partiremos para o método onLoad(), que será a parte onde o plugin ''carrega'', e criaremos o arquivo da ''key.yml'', onde ficará os dados necessários: public void onLoad(){ UUID uuid = UUID.randomUUID(); //Aqui, geraremos uma key aleatória apenas para setar na config como exemplo String myRandom = uuid.toString(); //Aqui transformaremos a key gerada em uma string, para setar na config. this.key = new File(getDataFolder(), "key.yml"); this.key_conf = YamlConfiguration.loadConfiguration(this.key); if (!this.key.exists()) { try { this.key.createNewFile(); this.key_conf.set("Authentication.Key", "0000-0000-0000-0000"); this.key_conf.set("Authentication.Secret Key", myRandom.substring(0,20).replace("-", myRandom.substring(0,1))); //Aqui pegamos a key gerada, reduzimos o tamanho da string a 20 caracteres, e como toda UUID gerada possui alguns traços nela, daremos replace nesses traços com outras letras aleatórias this.key_conf.save(this.key); } catch (IOException e) { e.printStackTrace(); } } } Após isso, precisaremos checar se a licença está correta, certo? Então vamos lá: Primeiramente, adicione este code a sua class: public static String lerURL(String url){ try { URL eita = new URL(url); BufferedReader br = new BufferedReader(new InputStreamReader(eita.openStream())); String s; String z = ""; while ((s = br.readLine()) != null) { z+=s; } br.close(); return z.replace("<br>", "\n"); } catch (MalformedURLException excecao) {} catch (IOException excecao) {Bukkit.getConsoleSender().sendMessage("§c[" + prefix2 + "§c] §4§lIOException error! Há algo errado em sua key.yml");} return ""; } Este code, será para ler tudo que a pagina retornará quando fazer a leitura (O site retorna um JSON, dizendo se a licença foi aceita o não). Bom, agora vamos para parte da checagem: Crie uma boolean em sua class: boolean keycheck = false; Agora, ainda no onLoad(), adicione isto após a parte de criação da key: if (lerURL("http://devhub.mcdevelopersbr.net/api/auth/<NOME DE SEU PROJETO>/" + this.key_conf.getString("Authentication.Key") + "/" + this.key_conf.getString("Authentication.Secret Key") + "").contains("true")){ //Esta parte, será onde checamos se a key está totalmente correta Bukkit.getConsoleSender().sendMessage(" §a§l-=ANTI§2PIRATARIA§a=-"); Bukkit.getConsoleSender().sendMessage("§a[" + prefix2 + "§a] §3Sua licenca foi aceita!"); Bukkit.getConsoleSender().sendMessage("§a[" + prefix2 + "§a] §3Plugin iniciando."); Bukkit.getConsoleSender().sendMessage(" §a§l-=ANTI§2PIRATARIA§a=-"); keycheck = true; } else { //Caso a key não esteja correta, iremos dizer esta mensagem: Bukkit.getConsoleSender().sendMessage(" §c§l-=ANTI§4PIRATARIA§c=-"); Bukkit.getConsoleSender().sendMessage("§c[" + prefix2 + "§c] §4Sua licenca não foi encontrada!"); keycheck = false; //Agora, checaremos porque a licença não foi aceita: if (lerURL("http://devhub.mcdevelopersbr.net/api/auth/<NOME DE SEU PROJETO>/" + this.key_conf.getString("Authentication.Key") + "/" + this.key_conf.getString("Authentication.Secret Key") + "").contains("Key")){ //Caso apenas a KEY esteja incorreta, diremos isto: Bukkit.getConsoleSender().sendMessage("§c[" + prefix2 + "§c] §4§lKEY §cincorreta!"); //Caso não for a KEY que esteja incorreta, checaremos se é a SECRET-KEY: } else if (lerURL("http://devhub.mcdevelopersbr.net/api/auth/<NOME DE SEU PROJETO>/" + this.key_conf.getString("Authentication.Key") + "/" + this.key_conf.getString("Authentication.Secret Key") + "").contains("Secret")){ //Agora, caso apenas a SECRET-KEY esteja incorreta, diremos isto: Bukkit.getConsoleSender().sendMessage("§c[" + prefix2 + "§c] §4§lSECRET-KEY §cincorreta!"); } Bukkit.getConsoleSender().sendMessage(" §c§l-=ANTI§4PIRATARIA§c=-"); } Agora, no onEnable() (void em que o plugin se inicia), adicionaremos: if (!keycheck){ //Caso a key não foi encontrada, a boolean será false e o plugin não funcionará, porém caso for TRUE, este método será ignorado. Bukkit.getPluginManager().disablePlugin(this); return; } Pronto! sua ''proteção'' está finalizada. Agora, explicando o método da checagem com palavras: Quando a checagem é feita no site, pelo método lerURL, o site retornará algo parecido com isto: {"authorized":true,"ainfo-1":"FrameMc","ainfo-2":""} Por isso, na checagem, após ''lerURL'', temos: lerURL(<url>).contains("true") pois se a licença estiver correta, nesta JSON teremos TRUE, e se estiver errado, FALSE. E em relação a boolean, ela será alterada de acordo com a checagem, se a licença aceita, a boolean será TRUE, caso não, false.. Por isso a checagem também no onEnable(). Fim de tutorial, espero que tenham entendido, caso não tenham, basta perguntar aqui no tópico que explicarei melhor! LEMBRANDO QUE ESTE MÉTODO NÃO E 100% SEGURO, ALIÁS, NENHUM MÉTODO DE PROTEÇÃO DE PLUGIN SERÁ 100% SEGURO! Se gostou da um like aew, não cai o dedo \o
-
Belo tutorial, irá ajudar muitos, porém este título está meio errado, não? o.O
-
AUEHaUHEUAHEUAHEAUEHUAEHAEHUAEHUE
-
Kit Untrap? plugin do Wombo editado? kk
-
[Skript]DSuporte - Atualização e melhorias do TzSuporte
tópico respondeu ao UmSerUmano de Lucca. em Projetos
só não sei porque insistem em dizer ''TICKS''. TICK é uma ''medida'' de tempo, em java amigão. Acho que o correto, seria TICKETS né? -
como resolveu! pode ajudar?
-
Erro de versão de JAVA*
-
qm é essa mina aew? @topic 1
-
dev [Resolvido] Load file schematic
pergunta respondeu ao Critical_XxX de Lucca. em Dúvidas resolvidas
Custa dar uma pesquisada no google? Com um simples ''schematic loading bukkit code'', achei isto. Eu uso esse. -
inativo FIX Spigot NBT Exploit (1.5.2 e 1.7)
tópico respondeu ao Jhoni o Silva de Lucca. em Arquivos
parece q o jogo virou, não é mesmo? kkkkjjjk @topic Boa gionis -
[Resolvido] Criar ScoreBoard sem conflitos.
pergunta respondeu ao _Kurimatzu_ de Lucca. em Dúvidas resolvidas
hashmap. -
Tem algum evento custom nesse plugin?