Add support for teleporting Entities on API level (Necessary for #26)
This commit is contained in:
parent
b9c1f02e2e
commit
93149fe488
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue