async chunk finding

This commit is contained in:
SuperRonanCraft 2020-08-05 19:59:44 -04:00
parent d48e258907
commit b66a188592
2 changed files with 32 additions and 15 deletions

View File

@ -12,6 +12,7 @@ import org.bukkit.*;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -173,6 +174,9 @@ public class RTP {
private void sendPlayer(final CommandSender sendi, final Player p, final Location loc, final int price, private void sendPlayer(final CommandSender sendi, final Player p, final Location loc, final int price,
final int attempts) throws NullPointerException { final int attempts) throws NullPointerException {
new BukkitRunnable(){
@Override
public void run() {
if (sendi != p) if (sendi != p)
checkPH(sendi, p.getDisplayName(), loc, price, false, attempts); checkPH(sendi, p.getDisplayName(), loc, price, false, attempts);
if (pl.getText().getTitleSuccessChat()) if (pl.getText().getTitleSuccessChat())
@ -188,6 +192,8 @@ public class RTP {
if (pl.getText().getSoundsEnabled()) if (pl.getText().getSoundsEnabled())
sounds(p); sounds(p);
} }
}.runTask(pl);
}
private void checkPH(CommandSender sendi, String player, Location loc, int price, boolean sameAsPlayer, private void checkPH(CommandSender sendi, String player, Location loc, int price, boolean sameAsPlayer,
int attempts) { int attempts) {

View File

@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.Main;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -124,8 +125,18 @@ public class Commands {
if (timer != 0) if (timer != 0)
if (sendi == player) if (sendi == player)
delay = true; delay = true;
//pl.getRTP().start(player, sendi, world, biomes, delay);
tpSync(player, sendi, world, biomes, delay);
}
}
private void tpSync(Player player, CommandSender sendi, String world, List<String> biomes, boolean delay) {
new BukkitRunnable(){
@Override
public void run() {
pl.getRTP().start(player, sendi, world, biomes, delay); pl.getRTP().start(player, sendi, world, biomes, delay);
} }
}.runTaskAsynchronously(pl);
} }
private boolean checkDelay(CommandSender sendi, Player player) { private boolean checkDelay(CommandSender sendi, Player player) {