-
Total de itens
761 -
Registro em
-
Última visita
Tudo que abidux postou
-
abidux#6637
-
Acho que meu servidor está bugado as mensagens acentuadas estão saindo bugadas
tópico respondeu ao Edudograuyt de abidux em Dúvidas resolvidas
verifica a formatação, se a versão for maior que 1.13, use UTF-8, caso contrário, use ANSI -
bota umas prints ae :v
-
a ideia é legal.
-
se não conseguir, me chama que te ajudo.
-
perdão, eu errei no if, seria: if (itemMap.size() < 100) { final int size = itemMap.size(); for (int i = size; i < 100; i++) { System.out.println(i); itemMap.put(i, null); } }
-
se você tem um item com 2% e outro com 30%, tens 32% de chance de cair algo, 68% de não cair nada. você pode fazer assim: public class Main { private static final Object[][] items = new Object[][] {new Object[] {"Item 1", 30}, new Object[] {"Item 2", 2}}; private static final HashMap<Integer, Object[]> itemMap = new HashMap<>(); private static final Random random = new Random(); public static void main(String[] args) { for (Object[] item : items) { final int chance = (int) item[1]; final int size = itemMap.size(); for (int i = size; i < chance + size; i++) { itemMap.put(i, item); } } if (itemMap.size() < 100) { for (int i = itemMap.size(); i < 100 - itemMap.size(); i++) { itemMap.put(i, null); } } final int random = Main.random.nextInt(100); final Object[] item = itemMap.get(random); if (item != null) { System.out.println("Nome: " + item[0]); System.out.println("Chance: " + item[1] + "%"); System.out.println("Número: " + random); } else System.out.println("Você não ganhou nada. (" + random + ")"); } } não tem todas as verificações que poderia ter, mas funciona. se precisar de ajuda para entender me chama no discord.
-
Esse tópico vai ser dividido em 2 áreas, "básica" e "matemática", para quem quiser entender melhor BÁSICA primeiramente, temos que escrever umas variáveis. public static final int NORTE = 180, SUL = 0, LESTE = 270, OESTE = 90, NORDESTE = 225, NOROESTE = 135, SUDESTE = -45, SUDOESTE = 45; esses são alguns ângulos importantes para isso. primeiro, precisamos determinar a distâncias pelas direções. private static int[] getDirections(Location l) { final int[] location = new int[] {l.getBlockX(), l.getBlockZ()}; final int[] target = new int[] {track[0], track[1]}; int east = 0, west = 0, south = 0, north = 0; if (location[0] > target[0]) { west += location[0] - target[0]; } else if (location[0] != target[0]) { east += target[0] - location[0]; } if (location[1] > target[1]) { north += location[1] - target[1]; } else if (location[1] != target[1]) { south += target[1] - location[1]; } return new int[] {north, south, east, west}; } isso vai retornar os blocos que temos que andar para cada direção, mas ainda não é preciso o suficiente, agora vamos pegar o ângulo certo. private static double distance(int[] a, int[] b) { int m1 = a[0] - b[0]; int m2 = a[1] - b[1]; return Math.sqrt(m1*m1 + m2*m2); } public static void lookAtTarget(Entity entity) { if (track != null) { final int[] d = getDirections(entity.getLocation()); double angle = 0; if (d[0] > 0) { angle = NORTE; if (d[2] > 0) { angle = NORDESTE; int[] u = {d[2], d[0]}; int[] v = {0, d[0]}; angle = (180 - angle(u, v)) * -1; } else if (d[3] > 0) { angle = NOROESTE; int[] u = {d[3], d[0]}; int[] v = {0, d[0]}; angle = 180 - angle(u, v); } } else if (d[1] > 0) { angle = SUL; if (d[2] > 0) { angle = SUDESTE; int[] u = {d[2], d[1]}; int[] v = {0, d[1]}; angle = angle(u, v) * -1; } else if (d[3] > 0) { angle = SUDOESTE; int[] u = {d[3], d[1]}; int[] v = {0, d[1]}; angle = angle(u, v); } } else if (d[2] > 0) { angle = LESTE; } else if (d[3] > 0) { angle = OESTE; } Location location = entity.getLocation(); location.setYaw((float) angle); entity.teleport(location); } } private static double angle(int[] u, int[] v) { int[] base = {0, 0}; double cosO = (u[0] * v[0] + u[1] * v[1]) / (distance(u, base) * distance(v, base)); return Math.toDegrees(Math.acos(cosO)); } esses métodos entram na matemática, então não vou explicar muito, mas para usar é só executar lookAtTarget(entity); track é uma variável int[] com as coordenadas X e Z do bloco que você quer mirar. Como criar a track: int[] track = {x, z}; track = new int[] {x, z}; MATEMÁTICA a distância é basicamente um plano cartesiano, então a fórmula é: √(a1 - b1)^2 + (a2 - b2)^2 a distância é usada com base em 2 pontos, que são calculados a partir da matemática com vetores... o primeiro ponto é baseado em uma array com as seguintes condições int[] u = {east||west, north||south}; int[] v = {0, north||south}; o ângulo é calculado por a1*b1 + a2*b2 sobre o módulo de a vezes o módulo de b desculpa se o tópico não ficou bom ou didático, comente se tiver alguma dica para melhorar.
-
open src?
-
https://github.com/mabidux/JarUtils coloca essa classe no teu plugin, cria uma pasta "lib" e coloca a jar lá.
-
me chama no discord que te ajudo a separar em yml se quiser
-
https://www.baeldung.com/java-email acho que isso pode ajudar
-
legal, quando abrir me manda uma msg no discord que eu com certeza vou jogar
-
ignora esse mano aí, gosta de criticar por qualquer coisa... parece muito legal seu plugin :)
-
a propósito, ele só manda o comando quando mata, não tem porcentagem nem nada, se quiser um mais completo, pede pro lucas aí
-
tá aí, meu filho, seja feliz KillCommand.jar não testei, mas deve estar funcionando
-
você pode usar a parte de chat do vault para remover a dependência do pex :)
-
fiz um igual para 1.16.5 há um tempo, parabéns pelo pl
-
cqReportsV2 - Um dos melhores plugins de report!
tópico respondeu ao ClarkQuentee de abidux em Vendido
parece mt bom -
muito bonito, com certeza compraria se meu servidor fosse de FullPvP, RankUP ou Factions. Boa sorte, amigo.
-
@Deus atualiza muito, desnecessário para um plugin tão simples
-
@Deus prefiro evitar playermoveevent
-
obrigado 😄