Add support for teleporting Entities on API level (Necessary for #26)

This commit is contained in:
Phoenix616 2019-03-25 21:28:48 +01:00
parent b9c1f02e2e
commit 93149fe488
3 changed files with 13 additions and 12 deletions

View File

@ -259,11 +259,11 @@ public class RandomTeleport extends JavaPlugin {
parser.parse(searcher, optionArgs);
}
searcher.getTargets().forEach(p -> sendMessage(p, "search", "world", searcher.getCenter().getWorld().getName()));
searcher.getTargets().forEach(e -> sendMessage(e, "search", "world", searcher.getCenter().getWorld().getName()));
searcher.search().thenApply(targetLoc -> {
searcher.getTargets().forEach(p -> {
p.teleport(targetLoc);
sendMessage(p, "teleport",
searcher.getTargets().forEach(e -> {
e.teleport(targetLoc);
sendMessage(e, "teleport",
"world", center.getWorld().getName(),
"x", String.valueOf(center.getBlockX()),
"y", String.valueOf(center.getBlockY()),
@ -274,7 +274,7 @@ public class RandomTeleport extends JavaPlugin {
}).exceptionally(ex -> {
sendMessage(sender, "error.location");
sender.sendMessage(ex.getMessage());
searcher.getTargets().forEach(p -> sendMessage(p, "error.location"));
searcher.getTargets().forEach(e -> sendMessage(e, "error.location"));
return true;
});
return searcher;

View File

@ -26,7 +26,7 @@ import io.papermc.lib.PaperLib;
import org.apache.commons.lang.Validate;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.entity.Entity;
import java.util.ArrayList;
import java.util.List;
@ -41,7 +41,7 @@ public class RandomSearcher {
private Random random = RandomTeleport.RANDOM;
private List<Player> targets = new ArrayList<>();
private List<Entity> targets = new ArrayList<>();
private long seed = -1;
private Location center;
@ -64,10 +64,10 @@ public class RandomSearcher {
}
/**
* Get all players targeted by this searcher
* @return The players to target
* Get all entities targeted by this searcher
* @return The entitiy to target
*/
public List<Player> getTargets() {
public List<Entity> getTargets() {
return targets;
}

View File

@ -20,6 +20,7 @@ package de.themoep.randomteleport.searcher.validators;
import de.themoep.randomteleport.searcher.RandomSearcher;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
public class ProtectionValidator extends LocationValidator {
@ -33,8 +34,8 @@ public class ProtectionValidator extends LocationValidator {
if (searcher.getTargets().isEmpty()) {
return true;
}
for (Player player : searcher.getTargets()) {
if (!searcher.getPlugin().getHookManager().canBuild(player, location)) {
for (Entity entity : searcher.getTargets()) {
if (entity instanceof Player && !searcher.getPlugin().getHookManager().canBuild((Player) entity, location)) {
return false;
}
}