Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.vildaberper.Edit;
- import java.util.LinkedList;
- import java.util.List;
- import org.bukkit.Material;
- import org.bukkit.block.Block;
- import org.bukkit.block.BlockFace;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.Event.Priority;
- import org.bukkit.event.Event.Type;
- import org.bukkit.plugin.java.JavaPlugin;
- public class Edit extends JavaPlugin{
- private final EditPlayerListener playerListener = new EditPlayerListener();
- private int taskId = 0;
- private Player rfplayer = null;
- public void onDisable(){
- this.getServer().getScheduler().cancelTask(this.taskId);
- System.out.println(this.getDescription().getName() + " " + this.getDescription().getVersion() + " is disabled.");
- }
- public void onEnable(){
- this.getServer().getPluginManager().registerEvent(Type.PLAYER_INTERACT, playerListener, Priority.Normal, this);
- System.out.println(this.getDescription().getName() + " " + this.getDescription().getVersion() + " is enabled.");
- }
- public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args){
- if(sender instanceof Player){
- Player player = (Player) sender;
- if(!player.isOp()){
- return false;
- }
- if(command.getName().equalsIgnoreCase("cuboid") || command.getName().equalsIgnoreCase("c")){
- if(args.length != 1){
- return false;
- }
- if(Material.matchMaterial(args[0]) == null){
- player.sendMessage("Fail material.");
- }
- if(EditList.getSelection(player.getName()) != null){
- if(EditList.getSelection(player.getName()).getBlock1() == null || EditList.getSelection(player.getName()).getBlock2() == null){
- player.sendMessage("Fail region.");
- }
- int x1, x2, y1, y2, z1, z2;
- if(EditList.getSelection(player.getName()).getBlock1().getX() < EditList.getSelection(player.getName()).getBlock2().getX()){
- x1 = EditList.getSelection(player.getName()).getBlock1().getX();
- x2 = EditList.getSelection(player.getName()).getBlock2().getX();
- }else{
- x2 = EditList.getSelection(player.getName()).getBlock1().getX();
- x1 = EditList.getSelection(player.getName()).getBlock2().getX();
- }
- if(EditList.getSelection(player.getName()).getBlock1().getY() < EditList.getSelection(player.getName()).getBlock2().getY()){
- y1 = EditList.getSelection(player.getName()).getBlock1().getY();
- y2 = EditList.getSelection(player.getName()).getBlock2().getY();
- }else{
- y2 = EditList.getSelection(player.getName()).getBlock1().getY();
- y1 = EditList.getSelection(player.getName()).getBlock2().getY();
- }
- if(EditList.getSelection(player.getName()).getBlock1().getZ() < EditList.getSelection(player.getName()).getBlock2().getZ()){
- z1 = EditList.getSelection(player.getName()).getBlock1().getZ();
- z2 = EditList.getSelection(player.getName()).getBlock2().getZ();
- }else{
- z2 = EditList.getSelection(player.getName()).getBlock1().getZ();
- z1 = EditList.getSelection(player.getName()).getBlock2().getZ();
- }
- for(int i1 = x1; i1 <= x2; i1++){
- for(int i2 = y1; i2 <= y2; i2++){
- for(int i3 = z1; i3 <= z2; i3++){
- player.getWorld().getBlockAt(i1, i2, i3).setType(Material.matchMaterial(args[0]));
- }
- }
- }
- return true;
- }
- player.sendMessage("Fail region.");
- }else if(command.getName().equalsIgnoreCase("replace") || command.getName().equalsIgnoreCase("r")){
- if(args.length < 2){
- return false;
- }
- for(int i = 0; i < args.length; i++){
- if(Material.matchMaterial(args[i]) == null){
- player.sendMessage("Fail material.");
- }
- }
- if(EditList.getSelection(player.getName()) != null){
- if(EditList.getSelection(player.getName()).getBlock1() == null || EditList.getSelection(player.getName()).getBlock2() == null){
- player.sendMessage("Fail region.");
- }
- int x1, x2, y1, y2, z1, z2;
- if(EditList.getSelection(player.getName()).getBlock1().getX() < EditList.getSelection(player.getName()).getBlock2().getX()){
- x1 = EditList.getSelection(player.getName()).getBlock1().getX();
- x2 = EditList.getSelection(player.getName()).getBlock2().getX();
- }else{
- x2 = EditList.getSelection(player.getName()).getBlock1().getX();
- x1 = EditList.getSelection(player.getName()).getBlock2().getX();
- }
- if(EditList.getSelection(player.getName()).getBlock1().getY() < EditList.getSelection(player.getName()).getBlock2().getY()){
- y1 = EditList.getSelection(player.getName()).getBlock1().getY();
- y2 = EditList.getSelection(player.getName()).getBlock2().getY();
- }else{
- y2 = EditList.getSelection(player.getName()).getBlock1().getY();
- y1 = EditList.getSelection(player.getName()).getBlock2().getY();
- }
- if(EditList.getSelection(player.getName()).getBlock1().getZ() < EditList.getSelection(player.getName()).getBlock2().getZ()){
- z1 = EditList.getSelection(player.getName()).getBlock1().getZ();
- z2 = EditList.getSelection(player.getName()).getBlock2().getZ();
- }else{
- z2 = EditList.getSelection(player.getName()).getBlock1().getZ();
- z1 = EditList.getSelection(player.getName()).getBlock2().getZ();
- }
- for(int i1 = x1; i1 <= x2; i1++){
- for(int i2 = y1; i2 <= y2; i2++){
- for(int i3 = z1; i3 <= z2; i3++){
- for(int i = 0; i < args.length - 1; i++){
- if(Material.matchMaterial(args[i]) == player.getWorld().getBlockAt(i1, i2, i3).getType()){
- player.getWorld().getBlockAt(i1, i2, i3).setType(Material.matchMaterial(args[args.length - 1]));
- }
- }
- }
- }
- }
- return true;
- }
- player.sendMessage("Fail region.");
- }else if(command.getName().equalsIgnoreCase("walls") || command.getName().equalsIgnoreCase("w")){
- if(args.length != 1){
- return false;
- }
- if(Material.matchMaterial(args[0]) == null){
- player.sendMessage("Fail material.");
- }
- if(EditList.getSelection(player.getName()) != null){
- if(EditList.getSelection(player.getName()).getBlock1() == null || EditList.getSelection(player.getName()).getBlock2() == null){
- player.sendMessage("Fail region.");
- }
- int x1, x2, y1, y2, z1, z2;
- if(EditList.getSelection(player.getName()).getBlock1().getX() < EditList.getSelection(player.getName()).getBlock2().getX()){
- x1 = EditList.getSelection(player.getName()).getBlock1().getX();
- x2 = EditList.getSelection(player.getName()).getBlock2().getX();
- }else{
- x2 = EditList.getSelection(player.getName()).getBlock1().getX();
- x1 = EditList.getSelection(player.getName()).getBlock2().getX();
- }
- if(EditList.getSelection(player.getName()).getBlock1().getY() < EditList.getSelection(player.getName()).getBlock2().getY()){
- y1 = EditList.getSelection(player.getName()).getBlock1().getY();
- y2 = EditList.getSelection(player.getName()).getBlock2().getY();
- }else{
- y2 = EditList.getSelection(player.getName()).getBlock1().getY();
- y1 = EditList.getSelection(player.getName()).getBlock2().getY();
- }
- if(EditList.getSelection(player.getName()).getBlock1().getZ() < EditList.getSelection(player.getName()).getBlock2().getZ()){
- z1 = EditList.getSelection(player.getName()).getBlock1().getZ();
- z2 = EditList.getSelection(player.getName()).getBlock2().getZ();
- }else{
- z2 = EditList.getSelection(player.getName()).getBlock1().getZ();
- z1 = EditList.getSelection(player.getName()).getBlock2().getZ();
- }
- for(int i1 = x1; i1 <= x2; i1++){
- for(int i2 = y1; i2 <= y2; i2++){
- player.getWorld().getBlockAt(i1, i2, z1).setType(Material.matchMaterial(args[0]));
- }
- }
- for(int i1 = x1; i1 <= x2; i1++){
- for(int i2 = y1; i2 <= y2; i2++){
- player.getWorld().getBlockAt(i1, i2, z2).setType(Material.matchMaterial(args[0]));
- }
- }
- for(int i2 = y1; i2 <= y2; i2++){
- for(int i3 = z1; i3 <= z2; i3++){
- player.getWorld().getBlockAt(x1, i2, i3).setType(Material.matchMaterial(args[0]));
- }
- }
- for(int i2 = y1; i2 <= y2; i2++){
- for(int i3 = z1; i3 <= z2; i3++){
- player.getWorld().getBlockAt(x2, i2, i3).setType(Material.matchMaterial(args[0]));
- }
- }
- }
- return true;
- }else if(command.getName().equalsIgnoreCase("cuboidhollow") || command.getName().equalsIgnoreCase("ch")){
- if(args.length != 1){
- return false;
- }
- if(Material.matchMaterial(args[0]) == null){
- player.sendMessage("Fail material.");
- }
- if(EditList.getSelection(player.getName()) != null){
- if(EditList.getSelection(player.getName()).getBlock1() == null || EditList.getSelection(player.getName()).getBlock2() == null){
- player.sendMessage("Fail region.");
- }
- int x1, x2, y1, y2, z1, z2;
- if(EditList.getSelection(player.getName()).getBlock1().getX() < EditList.getSelection(player.getName()).getBlock2().getX()){
- x1 = EditList.getSelection(player.getName()).getBlock1().getX();
- x2 = EditList.getSelection(player.getName()).getBlock2().getX();
- }else{
- x2 = EditList.getSelection(player.getName()).getBlock1().getX();
- x1 = EditList.getSelection(player.getName()).getBlock2().getX();
- }
- if(EditList.getSelection(player.getName()).getBlock1().getY() < EditList.getSelection(player.getName()).getBlock2().getY()){
- y1 = EditList.getSelection(player.getName()).getBlock1().getY();
- y2 = EditList.getSelection(player.getName()).getBlock2().getY();
- }else{
- y2 = EditList.getSelection(player.getName()).getBlock1().getY();
- y1 = EditList.getSelection(player.getName()).getBlock2().getY();
- }
- if(EditList.getSelection(player.getName()).getBlock1().getZ() < EditList.getSelection(player.getName()).getBlock2().getZ()){
- z1 = EditList.getSelection(player.getName()).getBlock1().getZ();
- z2 = EditList.getSelection(player.getName()).getBlock2().getZ();
- }else{
- z2 = EditList.getSelection(player.getName()).getBlock1().getZ();
- z1 = EditList.getSelection(player.getName()).getBlock2().getZ();
- }
- for(int i1 = x1; i1 <= x2; i1++){
- for(int i2 = y1; i2 <= y2; i2++){
- player.getWorld().getBlockAt(i1, i2, z1).setType(Material.matchMaterial(args[0]));
- }
- }
- for(int i1 = x1; i1 <= x2; i1++){
- for(int i2 = y1; i2 <= y2; i2++){
- player.getWorld().getBlockAt(i1, i2, z2).setType(Material.matchMaterial(args[0]));
- }
- }
- for(int i2 = y1; i2 <= y2; i2++){
- for(int i3 = z1; i3 <= z2; i3++){
- player.getWorld().getBlockAt(x1, i2, i3).setType(Material.matchMaterial(args[0]));
- }
- }
- for(int i2 = y1; i2 <= y2; i2++){
- for(int i3 = z1; i3 <= z2; i3++){
- player.getWorld().getBlockAt(x2, i2, i3).setType(Material.matchMaterial(args[0]));
- }
- }
- for(int i1 = x1; i1 <= x2; i1++){
- for(int i3 = z1; i3 <= z2; i3++){
- player.getWorld().getBlockAt(i1, y1, i3).setType(Material.matchMaterial(args[0]));
- }
- }
- for(int i1 = x1; i1 <= x2; i1++){
- for(int i3 = z1; i3 <= z2; i3++){
- player.getWorld().getBlockAt(i1, y2, i3).setType(Material.matchMaterial(args[0]));
- }
- }
- }
- return true;
- }else if(command.getName().equalsIgnoreCase("cuboidwireframe") || command.getName().equalsIgnoreCase("cw")){
- if(args.length != 1){
- return false;
- }
- if(Material.matchMaterial(args[0]) == null){
- player.sendMessage("Fail material.");
- }
- if(EditList.getSelection(player.getName()) != null){
- if(EditList.getSelection(player.getName()).getBlock1() == null || EditList.getSelection(player.getName()).getBlock2() == null){
- player.sendMessage("Fail region.");
- }
- int x1, x2, y1, y2, z1, z2;
- if(EditList.getSelection(player.getName()).getBlock1().getX() < EditList.getSelection(player.getName()).getBlock2().getX()){
- x1 = EditList.getSelection(player.getName()).getBlock1().getX();
- x2 = EditList.getSelection(player.getName()).getBlock2().getX();
- }else{
- x2 = EditList.getSelection(player.getName()).getBlock1().getX();
- x1 = EditList.getSelection(player.getName()).getBlock2().getX();
- }
- if(EditList.getSelection(player.getName()).getBlock1().getY() < EditList.getSelection(player.getName()).getBlock2().getY()){
- y1 = EditList.getSelection(player.getName()).getBlock1().getY();
- y2 = EditList.getSelection(player.getName()).getBlock2().getY();
- }else{
- y2 = EditList.getSelection(player.getName()).getBlock1().getY();
- y1 = EditList.getSelection(player.getName()).getBlock2().getY();
- }
- if(EditList.getSelection(player.getName()).getBlock1().getZ() < EditList.getSelection(player.getName()).getBlock2().getZ()){
- z1 = EditList.getSelection(player.getName()).getBlock1().getZ();
- z2 = EditList.getSelection(player.getName()).getBlock2().getZ();
- }else{
- z2 = EditList.getSelection(player.getName()).getBlock1().getZ();
- z1 = EditList.getSelection(player.getName()).getBlock2().getZ();
- }
- for(int i1 = x1; i1 <= x2; i1++){
- player.getWorld().getBlockAt(i1, y1, z1).setType(Material.matchMaterial(args[0]));
- }
- for(int i1 = x1; i1 <= x2; i1++){
- player.getWorld().getBlockAt(i1, y1, z2).setType(Material.matchMaterial(args[0]));
- }
- for(int i1 = x1; i1 <= x2; i1++){
- player.getWorld().getBlockAt(i1, y2, z1).setType(Material.matchMaterial(args[0]));
- }
- for(int i1 = x1; i1 <= x2; i1++){
- player.getWorld().getBlockAt(i1, y2, z2).setType(Material.matchMaterial(args[0]));
- }
- for(int i2 = y1; i2 <= y2; i2++){
- player.getWorld().getBlockAt(x1, i2, z1).setType(Material.matchMaterial(args[0]));
- }
- for(int i2 = y1; i2 <= y2; i2++){
- player.getWorld().getBlockAt(x2, i2, z1).setType(Material.matchMaterial(args[0]));
- }
- for(int i2 = y1; i2 <= y2; i2++){
- player.getWorld().getBlockAt(x1, i2, z2).setType(Material.matchMaterial(args[0]));
- }
- for(int i2 = y1; i2 <= y2; i2++){
- player.getWorld().getBlockAt(x2, i2, z2).setType(Material.matchMaterial(args[0]));
- }
- for(int i3 = z1; i3 <= z2; i3++){
- player.getWorld().getBlockAt(x1, y1, i3).setType(Material.matchMaterial(args[0]));
- }
- for(int i3 = z1; i3 <= z2; i3++){
- player.getWorld().getBlockAt(x1, y2, i3).setType(Material.matchMaterial(args[0]));
- }
- for(int i3 = z1; i3 <= z2; i3++){
- player.getWorld().getBlockAt(x2, y1, i3).setType(Material.matchMaterial(args[0]));
- }
- for(int i3 = z1; i3 <= z2; i3++){
- player.getWorld().getBlockAt(x2, y2, i3).setType(Material.matchMaterial(args[0]));
- }
- }
- return true;
- }else if(command.getName().equalsIgnoreCase("/")){
- if(!EditList.getPickaxe(player.getName())){
- player.sendMessage("Pickaxe enabled.");
- EditList.setPickaxe(player.getName(), true);
- }else{
- player.sendMessage("Pickaxe disabled.");
- EditList.setPickaxe(player.getName(), false);
- }
- return true;
- }else if(command.getName().equalsIgnoreCase("//")){
- if(!EditList.getBuilder(player.getName())){
- player.sendMessage("Builder enabled.");
- EditList.setBuilder(player.getName(), true);
- }else{
- player.sendMessage("Builder disabled.");
- EditList.setBuilder(player.getName(), false);
- }
- return true;
- }else if(command.getName().equalsIgnoreCase("rf")){
- rfplayer = player;
- this.taskId = this.getServer().getScheduler().scheduleAsyncDelayedTask(
- this,
- new Runnable(){
- @Override
- public void run(){
- rfplayer.sendMessage("Cleared " + Con.clearConnectedBlocks(rfplayer.getTargetBlock(null, 100)) + " blocks.");
- }
- }
- );
- return true;
- }else if(command.getName().equalsIgnoreCase("chop")){
- rfplayer = player;
- this.taskId = this.getServer().getScheduler().scheduleAsyncDelayedTask(
- this,
- new Runnable(){
- @Override
- public void run(){
- rfplayer.sendMessage("Cleared " + Con.chopBlocks(rfplayer.getTargetBlock(null, 100), Material.AIR) + " blocks.");
- }
- }
- );
- return true;
- }
- }
- return false;
- }
- public static class Con{
- static List<Block>
- unchecked = new LinkedList<Block>();
- public static int clearConnectedBlocks(Block block){
- BlockFace bf = null;
- int count = 0;
- unchecked.clear();
- unchecked.add(block);
- while(unchecked.size() > 0){
- for(int i = 0; i < 6; i++){
- if(i == 0){
- bf = BlockFace.DOWN;
- }else if(i == 1){
- bf = BlockFace.EAST;
- }else if(i == 2){
- bf = BlockFace.NORTH;
- }else if(i == 3){
- bf = BlockFace.SOUTH;
- }else if(i == 4){
- bf = BlockFace.UP;
- }else if(i == 5){
- bf = BlockFace.WEST;
- }
- if(!unchecked.get(0).getFace(bf).getType().equals(Material.AIR) && !isUnchecked(unchecked.get(0).getFace(bf))){
- unchecked.add(unchecked.get(0).getFace(bf));
- }
- }
- unchecked.get(0).setType(Material.AIR);
- count++;
- unchecked.remove(0);
- try {
- Thread.sleep(10);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- return count;
- }
- public static int chopBlocks(Block block, Material material){
- BlockFace bf = null;
- int count = 0;
- unchecked.clear();
- unchecked.add(block);
- while(unchecked.size() > 0){
- for(int i = 0; i < 4; i++){
- if(i == 0){
- bf = BlockFace.EAST;
- }else if(i == 1){
- bf = BlockFace.NORTH;
- }else if(i == 2){
- bf = BlockFace.SOUTH;
- }else if(i == 3){
- bf = BlockFace.WEST;
- }
- if(!unchecked.get(0).getFace(bf).getType().equals(Material.AIR) && !isUnchecked(unchecked.get(0).getFace(bf))){
- unchecked.add(unchecked.get(0).getFace(bf));
- }
- }
- if(unchecked.get(0) != null){
- unchecked.get(0).setType(material);
- }
- count++;
- unchecked.remove(0);
- }
- return count;
- }
- private static boolean isUnchecked(Block block){
- for(int i = 0; i < unchecked.size(); i++){
- if(unchecked.get(i).equals(block)){
- return true;
- }
- }
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement