package me.fromgate.reactions.commands;
import me.fromgate.reactions.activators.Activator;
import me.fromgate.reactions.activators.Activators;
import me.fromgate.reactions.util.Util;
import me.fromgate.reactions.util.message.M;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@CmdDefine(command = "react", description = M.CMD_CHECK, permission = "reactions.config",
subCommands = {"check"}, allowConsole = false, shortDescription = "&3/react check [radius]")
public class CmdCheck extends Cmd {
@Override
public boolean execute(Player player, String[] args) {
int radius = args.length > 1 && Util.isIntegerGZ(args[1]) ? Integer.parseInt(args[1]) : 8;
printActivatorsAround(player, radius);
return true;
}
public void printActivatorsAround(Player player, int radius) {
int playerX = player.getLocation().getBlockX();
int playerY = player.getLocation().getBlockY();
int playerZ = player.getLocation().getBlockZ();
Set<String> lst = new HashSet<>();
for (int x = playerX - radius; x <= playerX + radius; x++) {
for (int y = playerY - radius; y <= playerY + radius; y++) {
for (int z = playerZ - radius; z <= playerZ + radius; z++) {
List<Activator> found = Activators.getActivatorInLocation(player.getWorld(), x, y, z);
if (found.isEmpty()) continue;
for (Activator aFound : found) {
lst.add(aFound.toString());
}
}
}
}
List<String> plst = new ArrayList<>(lst);
M.printPage(player, plst, M.MSG_CHECK, 1, 100, true);
}
}