9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-30 04:29:05 +00:00

Instant changes

This commit is contained in:
Daniel Mills
2020-09-09 00:29:22 -04:00
parent 1d11585fcd
commit 8ffe6fa8fb
36 changed files with 298 additions and 65 deletions

View File

@@ -0,0 +1,17 @@
package com.volmit.iris.edit;
import java.io.Closeable;
import org.bukkit.block.data.BlockData;
public interface BlockEditor extends Closeable
{
public long last();
public void set(int x, int y, int z, BlockData d);
public BlockData get(int x, int y, int z);
@Override
public void close();
}

View File

@@ -0,0 +1,40 @@
package com.volmit.iris.edit;
import org.bukkit.World;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.util.M;
public class BukkitBlockEditor implements BlockEditor
{
private final World world;
public BukkitBlockEditor(World world)
{
this.world = world;
}
@Override
public void set(int x, int y, int z, BlockData d)
{
world.getBlockAt(x, y, z).setBlockData(d, false);
}
@Override
public BlockData get(int x, int y, int z)
{
return world.getBlockAt(x, y, z).getBlockData();
}
@Override
public void close()
{
}
@Override
public long last()
{
return M.ms();
}
}

View File

@@ -0,0 +1,51 @@
package com.volmit.iris.edit;
import org.bukkit.World;
import org.bukkit.block.data.BlockData;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.math.BlockVector3;
import com.volmit.iris.util.M;
public class WEBlockEditor implements BlockEditor
{
private final World world;
private final EditSession es;
private long last;
public WEBlockEditor(World world)
{
last = M.ms();
this.world = world;
es = WorldEdit.getInstance().newEditSessionBuilder().world(BukkitAdapter.adapt(world)).build();
}
@Override
public void set(int x, int y, int z, BlockData d)
{
last = M.ms();
es.rawSetBlock(BlockVector3.at(x, y, z), BukkitAdapter.adapt(d));
world.getBlockAt(x, y, z).setBlockData(d, false);
}
@Override
public BlockData get(int x, int y, int z)
{
return world.getBlockAt(x, y, z).getBlockData();
}
@Override
public void close()
{
es.close();
return;
}
@Override
public long last()
{
return last;
}
}