

zMathi
Membros-
Total de itens
545 -
Registro em
-
Última visita
Tudo que zMathi postou
-
O nome da package está: com.emiefi.fox.Main O em 'main' na plugin.yml você colocou: com.emifi.fox.Main
-
Ora, habilite a conexão apenas pela porta do Lobby, e desative de todos as outras portas de servidores.
-
[Off-Topic] Projeto do melhor AntiBot possível
tópico respondeu ao AlexHackers de zMathi em Arquivos
Só uma dica, pra tu não fazer várias checagens inúteis: crie métodos que são possíveis apenas antes do servidor pedir as informações do jogador pra Mojang, pq depois disso é inútil, já que o servidor já vai ter gasto CPU e Net nessa conexão. -
inativo !Leia! Você pode estar banindo um player inocente!
tópico respondeu ao CracKiller de zMathi em Arquivos
No máximo do máximo, podemos interceptar as packets de chat com ".fakehacker ..." e kickar o jogador que executou, porém, obviamente, vários clients utilizam de GUIs para ativar, então é inútil -
String[] args = new String[3]; List<String> list = getConfig().isSet("World."+ args[2]) ? getConfig().getStringList("World."+ args[2]) : Collections.emptyList(); list.add(args[1]); getConfig().set("World."+ args[2], list); saveDefaultConfig();
-
//Bloquear clique no inventário @EventHandler public void onInventoryClick(InventoryClickEvent event){ event.setCancelled(true); } //Cancelar interação, logo nenhum item da hotbar funciona @EventHandler public void onInteract(PlayerInteractEvent event){ event.setCancelled(true); } //Cancelar pulo @EventHandler public void onMove(PlayerMoveEvent event){ if (event.getPlayer().getVelocity().getY() > 0 && !event.getPlayer().isOnGround()){ event.setCancelled(true); } }
-
Nem precisa de plugin pra isso. É só fazer uma configuração básica no IPTables, e pronto, o jogador nem vai chegar á se conectar ao servidor, evitando tráfego desnecessário.
-
Bom, Taco é o mais otimizado, é uma fork do Paper, porém, Paper tem mais atualizações, o que, pra mim, acaba fazendo Paper ser a melhor opção.
-
Cara, você tem que entender que a partir do momento que uma loja online posta alguma coisa para ser enviada, ela não tem mais controle algum sobre o produto, ou o rastreamento, ou ao tempo! Suas encomendas provavelmente pararam em Curitiba, e quando para por lá, demora MUITO, MUITO MESMO, questão de meses, graças ao maravilhoso monopólio chamado Correios. Quem costuma comprar online de sites do exterior sabem bem disso.
-
resolvido Impedir Inventario de Fechar
pergunta respondeu ao Lucas_Br de zMathi em Dúvidas resolvidas
Não é possível cancelar o jogador de fechar o inventário, porém podemos ficar abrindo novamente o inventário que o jogador fechar. @EventHandler public void onInventoryClose(InventoryCloseEvent event) { Inventory inventory = event.getInventory(); if (inventory.getTitle().equals("Name of This Shit")){ event.getPlayer().openInventory(inventory); } } -
inativo [Projeto] TintaCurso - Aprenda de forma fácil
tópico respondeu ao AlexHackers de zMathi em Arquivos
Acho que pra vender cursos em uma área é necessário ter o conhecimento TOTAL dela, para poder passar um aprendizado lapidado, o que, vendo os seus códigos, eu já vi que não é seu caso. E você realmente quer cobrar isso num curso de BUKKIT? Com metade disso, 1.200 reais, eu compro o melhor plano no Alura.com.br, que me disponibiliza 5 0 1 cursos, das mais diversas áreas, com o conhecimento de vários professores GRADUADOS, e ainda me fornece certificado. -
Recomendo ein
-
Legal. Mas seria mais daora ainda se tivesse contas um pouco mais complexas como raiz, frações, expressões, etc.
-
for (String ids : config.getStringList("Lista-IDs")){ Material material = Material.getMaterial(Integer.valueOf(ids)); } Isso? Se isso tiver dando erro, é por quê você esqueceu de carregar a config, ou Lista-IDs não existe, ou slá, algum erro teu
-
resolvido Relative Metadata um bloco de distância
pergunta respondeu ao Ducky de zMathi em Dúvidas resolvidas
Cara... equals numa classe, vai retornar uma classe igual, nesse caso retorna uma List. É questão de lógica e observação. Uso correto: if (!e.getBlock().getRelative(BlockFace.NORTH).getMetadata("nome").get(0).asString().equals(p.getName())){ Obs: use get(0) caso tenha apenas UMA metadata no bloco. Pois é uma lista de metadata. -
Se você quiser verificar quando ele COMER terá que usar outro evento. @EventHandler public void onConsume(PlayerItemConsumeEvent event) { Player player = event.getPlayer(); ItemStack item = event.getItem(); if (item.getType() == Material.APPLE && item.getItemMeta().getDisplayName().equalsIgnoreCase("Nome da maçã")){ //O que irá fazer } }
-
entrevista Conversando com o aventureiro TequilAxBr na taverna
tópico respondeu ao Skip de zMathi em Entrevistas
Único estilo de entrevista que dá vontade de ler, parabéns e continue. -
resolvido Erro no meu pl (Nivel de putisse em 101%)
pergunta respondeu ao Niigote de zMathi em Dúvidas resolvidas
@Override public void onEnable() { pl = this; prefix = getConfig().getString("prefix").replaceAll("&", "§"); getCommand("niigotecassino").setExecutor(new Help()); Bukkit.getConsoleSender().sendMessage(""); Bukkit.getConsoleSender().sendMessage(Main.prefix + " §cPlugin foi iniciado com sucesso!"); Bukkit.getConsoleSender().sendMessage(Main.prefix + " §aAutor: Niigote"); Bukkit.getConsoleSender().sendMessage(Main.prefix + " §aVersão: 1.0"); Bukkit.getConsoleSender().sendMessage(""); Bukkit.getPluginManager().registerEvents(new GuiVillager(), this); Bukkit.getPluginManager().registerEvents(new SetData(), this); Bukkit.getPluginManager().registerEvents(new NoPushItem(), this); saveDefaultConfig(); Aqui está o erro, você está tentando pegar a string "prefix" antes mesmo do saveDefaultConfig(); -
resolvido [Dúvida] Cache / Cacheamento
pergunta respondeu ao PandaTwo de zMathi em Dúvidas resolvidas
Ao iniciar o plugin carregar o dado em uma variável, fazendo assim, não precisar pegar toda hora o dado direto do arquivo, pois pra isso seria usado CPU para ler o arquivo, gastando um pouco de máquina desnecessáriamente. Pode parecer algo simples, mas são os detalhes que fazem a diferença na fluidez de um plugin. -
Nem tinha testado mesmo. O erro estava no setBaseColor no getBanner e também algumas patterns erradas. Mas está tudo corrigido.
-
Sim, algumas pessoas já postaram classes com a mesma função, porém, com códigos bem feinhos e nada eficazes/fluídos/limpos, então fiz do meu modo Código: Como usar: BannerAlphabetic.A.getBanner(); //Caso você não especifique os parâmetros como abaixo, as cores seram BRANCO e PRETA. BannerAlphabetic.B.getBanner(DyeColor.RED, DyeCOLOR.WHITE); //RED = Cor da letra/número WHITE = Cor de fundo. BannerAlphabetic.getBannerByLetter("A"); //Vai retornar a BannerAlphabetic da letra A. É isso aí. Deixa seu like por quê fiz agora de madrugada e com sono.
-
rt e easy peazee fazer sql injection aí
-
Poxa, um programador faz o plugin, e você vai lá e renomeia o plugin, tirando a única forma de divulgar o trabalho dele? Extrema cuzisse isso. Pra você que é programador e quer evitar isso, coloque o seguinte código no seu onEnable: if (!getDescription().getName().equals("Nome do plugin")){ getServer().getPluginManager().disablePlugin(this); getServer().getConsoleSender().sendMessage("Plugin não será iniciado pois foi RENOMEADO!"); return; } Adios.
-
Isso vai parar a Thread-Main, ou seja, TUDO, o SERVIDOR INTEIRO vai parar... @EDIT: Nossa cara, esse teu último exemplo vai matar a máquina... vai criar 3 runnables pra cada jogador, no final do loop vai ter (jogadores * 3) runnables rodando '-' Melhor forma seria: public void count() { new BukkitRunnable() { int i = 0; @Override public void run() { i++; if (i <= 3) { for (Player p : Bukkit.getOnlinePlayers()) { p.sendMessage("CONTAGEM: " + i); } } else { cancel(); } } }.runTaskTimer(plugin, 0L, 20L); }
-
private BlockFace[] FACES = {BlockFace.SELF, BlockFace.EAST, BlockFace.NORTH, BlockFace.WEST, BlockFace.SOUTH}; private Location CHEST = null; //Localização do baú que não pode ser duplo. (Você pode salvar na config, e pegar quando o plugin iniciar) @EventHandler public void onPlace(BlockPlaceEvent event) { Player player = event.getPlayer(); ItemStack item = player.getItemInHand(); Block block = event.getBlockPlaced(); if (item != null && item.getType() == Material.CHEST) { for (BlockFace faces : FACES) { //Vai percorrer todos os lados do baú que foi colocado Block side = block.getRelative(faces); if (side.getType() == Material.CHEST && side.getLocation().equals(CHEST)) { //Vai verificar se o bloco do lado é CHEST e se é o que está salvo player.sendMessage("Esse baú não pode ser duplo."); return; } } } }