package eu.univento.teamvento.commands; import eu.univento.commons.player.Rank; import eu.univento.core.api.AutoCommand; import eu.univento.core.api.languages.Messages; import eu.univento.core.api.schematic.Cuboid; import eu.univento.core.api.player.CustomPlayer; import eu.univento.teamvento.TeamVento; import eu.univento.teamvento.utils.WorldEdit; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.List; /** * @author joethei * @version 0.1 */ public class Set extends AutoCommand{ public Set(TeamVento plugin, String command, String description, String... aliases) { super(plugin, command, description, aliases); } @Override public boolean execute(CommandSender sender, String label, String[] args) { if(sender instanceof Player) { CustomPlayer p = CustomPlayer.getPlayer(sender.getName()); if(p.getDatabasePlayer().isAllowed(Rank.Builder)) { Material material; if(args.length == 0) { material = p.getInventory().getItemInMainHand().getType(); setBlocks(material, p); } if(args.length == 1) { if(Material.getMaterial(args[0]) != null) { material = Material.getMaterial(args[0]); setBlocks(material, p); }else{ int id = Integer.parseInt(args[0]); material = Material.getMaterial(id); setBlocks(material, p); } }else{ p.sendMessage(p.getMessages().PREFIX() + "§cYou need to give me some kind of stuff"); } }else{ p.sendMessage(p.getMessages().PREFIX() + p.getMessages().NO_PERMS()); } }else{ sender.sendMessage(Messages.Console.NOT_A_PLAYER); } return true; } @Override public List tabComplete(CommandSender sender, String label, String[] args) { return null; } private void setBlocks(Material material, CustomPlayer p) { if(material.isBlock()) { if(WorldEdit.getPos1(p) == null || WorldEdit.getPos2(p) == null) { p.sendMessage(p.getMessages().PREFIX() + "§ca location has not been set"); return; } Cuboid cb = new Cuboid(WorldEdit.getPos1(p).getLocation(), WorldEdit.getPos2(p).getLocation()); Bukkit.getScheduler().runTaskAsynchronously(TeamVento.getInstance(), () -> { long i = 0; for(Block b : cb.getBlocks()) { i++; Bukkit.getScheduler().scheduleSyncDelayedTask(TeamVento.getInstance(), () -> b.setType(material), i / 90); } }); p.sendMessage(p.getMessages().PREFIX() + "§ayou have changed the material of the blocks"); }else{ p.sendMessage(p.getMessages().PREFIX() + "§cthe item needs to be a block"); } } }