yLR111 Postado Março 24, 2018 Denunciar Compartilhar Postado Março 24, 2018 Estou querendo fazer um plugin de SlimeChunk para servidor de Rankup, queria que quando o jogador passar em cima de uma slime chunk apitar um som! Link para o comentário Compartilhar em outros sites More sharing options...
0 TequilAxBr Postado Março 24, 2018 Denunciar Compartilhar Postado Março 24, 2018 Na 1.8: @EventHandler private void onMove(PlayerMoveEvent event) { if(isSlimeChunk(event.getPlayer().getLocation().getChunk())) { event.getPlayer().playSound(event.getPlayer().getLocation(), Sound.EXPLODE, 1.0f, 1.2f); } } private boolean isSlimeChunk(Chunk chunk) { final long worldSeed = chunk.getWorld().getSeed(); final int x = chunk.getX(); final int z = chunk.getZ(); final Random random = new Random(worldSeed + x * x * 4987142 + x * 5947611 + z * z * 4392871L + z * 389711 ^ 0x3AD8025FL); return random.nextInt(10) == 0; } Eu dei uma pesquisa e acho que é assim, não testei nada. Em versões mais recentes, existe um método dentro da class Chunk. Link para o comentário Compartilhar em outros sites More sharing options...
0 RUSHyoutuber Postado Março 24, 2018 Denunciar Compartilhar Postado Março 24, 2018 Na 1.8: @EventHandler private void onMove(PlayerMoveEvent event) { if(isSlimeChunk(event.getPlayer().getLocation().getChunk())) { event.getPlayer().playSound(event.getPlayer().getLocation(), Sound.EXPLODE, 1.0f, 1.2f); } } private boolean isSlimeChunk(Chunk chunk) { final long worldSeed = chunk.getWorld().getSeed(); final int x = chunk.getX(); final int z = chunk.getZ(); final Random random = new Random(worldSeed + x * x * 4987142 + x * 5947611 + z * z * 4392871L + z * 389711 ^ 0x3AD8025FL); return random.nextInt(10) == 0; } Eu dei uma pesquisa e acho que é assim, não testei nada. Em versões mais recentes, existe um método dentro da class Chunk. Eu fiz algo parecido quando estava trabalhando no meu "essentials" da uma olhada: package rush.comandos; import java.util.Random; import org.bukkit.Chunk; import org.bukkit.Sound; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import rush.Main; public class ComandoSlime implements Listener, CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command cmd, String lb, String[] args) { if (cmd.getName().equalsIgnoreCase("slime")) { if (!(sender instanceof Player)) { sender.sendMessage(Main.aqui.getMensagens().getString("Console-Nao-Pode").replaceAll("&", "§")); return true;} } Player p = (Player)sender; long worldSeed = p.getPlayer().getWorld().getSeed(); Chunk playerChunk; int xChunk; int zChunk; Random random = new Random(worldSeed + (xChunk = (playerChunk = p.getPlayer().getWorld().getChunkAt(p.getLocation())).getX()) * xChunk * 4987142 + xChunk * 5947611 + (zChunk = playerChunk.getZ()) * zChunk * 4392871L + zChunk * 389711 ^ 0x3AD8025F); if (random.nextInt(10) == 0) { p.sendMessage(Main.aqui.getMensagens().getString("SlimeChunk.Esta").replaceAll("&", "§")); p.playSound(p.getLocation(), Sound.SLIME_WALK2, 1, 1); } else { p.sendMessage(Main.aqui.getMensagens().getString("SlimeChunk.NaoEsta").replaceAll("&", "§")); p.playSound(p.getLocation(), Sound.VILLAGER_NO, 1, 1); } return false; } } Ao usar o comando /slime o plugin verifica, caso o player esta em cima de uma slime chunk uma mensagem em verde aparece no chat e o som de um slime é reproduzido, caso contrario uma mensagem em vermelho é exibida no chat e o som da negação do villager é executado Link para o comentário Compartilhar em outros sites More sharing options...
0 TequilAxBr Postado Março 25, 2018 Denunciar Compartilhar Postado Março 25, 2018 Eu fiz algo parecido quando estava trabalhando no meu "essentials" da uma olhada: package rush.comandos; import java.util.Random; import org.bukkit.Chunk; import org.bukkit.Sound; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import rush.Main; public class ComandoSlime implements Listener, CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command cmd, String lb, String[] args) { if (cmd.getName().equalsIgnoreCase("slime")) { if (!(sender instanceof Player)) { sender.sendMessage(Main.aqui.getMensagens().getString("Console-Nao-Pode").replaceAll("&", "§")); return true;} } Player p = (Player)sender; long worldSeed = p.getPlayer().getWorld().getSeed(); Chunk playerChunk; int xChunk; int zChunk; Random random = new Random(worldSeed + (xChunk = (playerChunk = p.getPlayer().getWorld().getChunkAt(p.getLocation())).getX()) * xChunk * 4987142 + xChunk * 5947611 + (zChunk = playerChunk.getZ()) * zChunk * 4392871L + zChunk * 389711 ^ 0x3AD8025F); if (random.nextInt(10) == 0) { p.sendMessage(Main.aqui.getMensagens().getString("SlimeChunk.Esta").replaceAll("&", "§")); p.playSound(p.getLocation(), Sound.SLIME_WALK2, 1, 1); } else { p.sendMessage(Main.aqui.getMensagens().getString("SlimeChunk.NaoEsta").replaceAll("&", "§")); p.playSound(p.getLocation(), Sound.VILLAGER_NO, 1, 1); } return false; } } Ao usar o comando /slime o plugin verifica, caso o player esta em cima de uma slime chunk uma mensagem em verde aparece no chat e o som de um slime é reproduzido, caso contrario uma mensagem em vermelho é exibida no chat e o som da negação do villager é executado É praticamente a mesma coisa do código que enviei, a única diferença é que o seu está dentro de um onCommand e envia mensagens também. 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Pedroemfrente Postado Março 25, 2018 Denunciar Compartilhar Postado Março 25, 2018 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas. Atenciosamente, Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
yLR111
Estou querendo fazer um plugin de SlimeChunk para servidor de Rankup, queria que quando o jogador passar em cima de uma slime chunk apitar um som!
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados