85 lines
3.2 KiB
Java
85 lines
3.2 KiB
Java
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<TeamVento>{
|
|
|
|
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<String> 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");
|
|
}
|
|
}
|
|
}
|