Skip to content

Commit

Permalink
(experimental) schematic comamnd auto nophysics
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Jan 1, 2017
1 parent 88b21a1 commit 1760ba3
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
Expand Up @@ -4,6 +4,7 @@
import net.aufdemrand.denizen.objects.dCuboid;
import net.aufdemrand.denizen.objects.dLocation;
import net.aufdemrand.denizen.objects.dMaterial;
import net.aufdemrand.denizen.utilities.DenizenAPI;
import net.aufdemrand.denizen.utilities.blocks.CuboidBlockSet;
import net.aufdemrand.denizen.utilities.debugging.dB;
import net.aufdemrand.denizencore.exceptions.CommandExecutionException;
Expand All @@ -17,6 +18,10 @@
import net.aufdemrand.denizencore.tags.Attribute;
import net.aufdemrand.denizencore.tags.ReplaceableTagEvent;
import net.aufdemrand.denizencore.tags.TagManager;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPhysicsEvent;

import java.io.File;
import java.io.FileInputStream;
Expand All @@ -26,12 +31,23 @@
import java.util.HashMap;
import java.util.Map;

public class SchematicCommand extends AbstractCommand implements Holdable {
public class SchematicCommand extends AbstractCommand implements Holdable, Listener {

@Override
public void onEnable() {
TagManager.registerTagEvents(this);
schematics = new HashMap<String, CuboidBlockSet>();
noPhys = false;
Bukkit.getPluginManager().registerEvents(this, DenizenAPI.getCurrentInstance());
}

public static boolean noPhys = false;

@EventHandler
public void onBlockPhysics(BlockPhysicsEvent event) {
if (noPhys) {
event.setCancelled(true);
}
}


Expand Down
Expand Up @@ -4,6 +4,7 @@
import net.aufdemrand.denizen.nms.interfaces.BlockData;
import net.aufdemrand.denizen.nms.util.jnbt.*;
import net.aufdemrand.denizen.objects.dCuboid;
import net.aufdemrand.denizen.scripts.commands.world.SchematicCommand;
import net.aufdemrand.denizen.utilities.DenizenAPI;
import net.aufdemrand.denizen.utilities.debugging.dB;
import net.aufdemrand.denizencore.utilities.CoreUtilities;
Expand Down Expand Up @@ -81,6 +82,7 @@ public void setBlocksDelayed(final Location loc, final Runnable runme, final boo
new BukkitRunnable() {
@Override
public void run() {
SchematicCommand.noPhys = true;
long start = System.currentTimeMillis();
while (index.theInt < goal) {
long z = index.theInt % ((long) (z_height));
Expand All @@ -91,9 +93,11 @@ public void run() {
}
index.theInt++;
if (System.currentTimeMillis() - start > 50) {
SchematicCommand.noPhys = false;
return;
}
}
SchematicCommand.noPhys = false;
if (runme != null) {
runme.run();
}
Expand All @@ -105,6 +109,7 @@ public void run() {

@Override
public void setBlocks(Location loc, boolean noAir) {
SchematicCommand.noPhys = true;
int index = 0;
for (int x = 0; x < x_width; x++) {
for (int y = 0; y < y_length; y++) {
Expand All @@ -116,6 +121,7 @@ public void setBlocks(Location loc, boolean noAir) {
}
}
}
SchematicCommand.noPhys = false;
}

public void rotateOne() {
Expand Down

0 comments on commit 1760ba3

Please sign in to comment.