Fix WorldEdit integration stopping edits
It's been only more than a year, it's fine
This commit is contained in:
parent
e4548069dc
commit
dcd3ff31db
4 changed files with 41 additions and 43 deletions
|
@ -1,13 +1,12 @@
|
|||
package de.jaschastarke.minecraft.limitedcreative;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
import de.jaschastarke.hooking.BooleanHooker;
|
||||
import de.jaschastarke.hooking.GetHooker;
|
||||
import de.jaschastarke.minecraft.limitedcreative.hooks.MultiVerseHooks;
|
||||
import de.jaschastarke.minecraft.limitedcreative.hooks.PlayerCheckHooker;
|
||||
import de.jaschastarke.minecraft.limitedcreative.hooks.WorldTypeHooker;
|
||||
import de.jaschastarke.minecraft.limitedcreative.hooks.xAuthHooks;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
public final class Hooks {
|
||||
public static PlayerCheckHooker IsLoggedIn = new PlayerCheckHooker(true);
|
||||
|
@ -53,7 +52,8 @@ public final class Hooks {
|
|||
public static boolean isAuthMePresent() {
|
||||
if (isPluginEnabled("AuthMe")) {
|
||||
try {
|
||||
return Class.forName("uk.org.whoami.authme.api.API") != null;
|
||||
Class.forName("uk.org.whoami.authme.api.API");
|
||||
return true;
|
||||
} catch (ClassNotFoundException e) {
|
||||
return false;
|
||||
}
|
||||
|
@ -64,7 +64,8 @@ public final class Hooks {
|
|||
public static boolean isXAuth20Present() {
|
||||
if (isPluginEnabled("xAuth")) {
|
||||
try {
|
||||
return Class.forName("com.cypherx.xauth.xAuth") != null;
|
||||
Class.forName("com.cypherx.xauth.xAuth");
|
||||
return true;
|
||||
} catch (ClassNotFoundException e) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,6 @@ public class ModInventories extends CoreModule<LimitedCreative> {
|
|||
return "Inventory";
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public void initialize(ModuleEntry<IModule> entry) {
|
||||
super.initialize(entry);
|
||||
|
|
|
@ -166,44 +166,41 @@ public class BlockStateCommand extends BukkitCommand implements IHelpDescribed {
|
|||
|
||||
final BlockVector3 min = selection.getMinimumPoint();
|
||||
final BlockVector3 max = selection.getMaximumPoint();
|
||||
|
||||
mod.getPlugin().getServer().getScheduler().runTaskAsynchronously(mod.getPlugin(), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (mod.isDebug())
|
||||
mod.getLog().debug("Scheduler: Asynchronous Task run");
|
||||
DBTransaction update = mod.getModel().groupUpdate();
|
||||
int count = 0;
|
||||
World w = selection.getWorld();
|
||||
assert w != null;
|
||||
org.bukkit.World bw = BukkitAdapter.adapt(w);
|
||||
|
||||
Cuboid c = new Cuboid();
|
||||
c.add(new Location(bw, min.getBlockX(), min.getBlockY(), min.getBlockZ()));
|
||||
c.add(new Location(bw, max.getBlockX(), max.getBlockY(), max.getBlockZ()));
|
||||
mod.getModel().cacheStates(c);
|
||||
|
||||
BlockState seed = new BlockState();
|
||||
seed.setPlayer(context.getPlayer());
|
||||
seed.setGameMode(tgm);
|
||||
seed.setSource(Source.COMMAND);
|
||||
seed.setDate(new Date());
|
||||
for (int x = min.getBlockX(); x <= max.getBlockX(); x++) {
|
||||
for (int y = min.getBlockY(); y <= max.getBlockY(); y++) {
|
||||
for (int z = min.getBlockZ(); z <= max.getBlockZ(); z++) {
|
||||
BlockVector3 loc = BlockVector3.at(x, y, z);
|
||||
if (!w.getBlock(loc).getBlockType().getMaterial().isAir() && selection.contains(loc)) {
|
||||
seed.setLocation(new Location(bw, x, y, z));
|
||||
update.setState(new BlockState(seed));
|
||||
count++;
|
||||
}
|
||||
|
||||
mod.getPlugin().getServer().getScheduler().runTaskAsynchronously(mod.getPlugin(), () -> {
|
||||
if (mod.isDebug())
|
||||
mod.getLog().debug("Scheduler: Asynchronous Task run");
|
||||
DBTransaction update = mod.getModel().groupUpdate();
|
||||
int count = 0;
|
||||
World w = selection.getWorld();
|
||||
assert w != null;
|
||||
org.bukkit.World bw = BukkitAdapter.adapt(w);
|
||||
|
||||
Cuboid c = new Cuboid();
|
||||
c.add(new Location(bw, min.getBlockX(), min.getBlockY(), min.getBlockZ()));
|
||||
c.add(new Location(bw, max.getBlockX(), max.getBlockY(), max.getBlockZ()));
|
||||
mod.getModel().cacheStates(c);
|
||||
|
||||
BlockState seed = new BlockState();
|
||||
seed.setPlayer(context.getPlayer());
|
||||
seed.setGameMode(tgm);
|
||||
seed.setSource(Source.COMMAND);
|
||||
seed.setDate(new Date());
|
||||
for (int x = min.getBlockX(); x <= max.getBlockX(); x++) {
|
||||
for (int y = min.getBlockY(); y <= max.getBlockY(); y++) {
|
||||
for (int z = min.getBlockZ(); z <= max.getBlockZ(); z++) {
|
||||
BlockVector3 loc = BlockVector3.at(x, y, z);
|
||||
if (!w.getBlock(loc).getBlockType().getMaterial().isAir() && selection.contains(loc)) {
|
||||
seed.setLocation(new Location(bw, x, y, z));
|
||||
update.setState(new BlockState(seed));
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
update.finish();
|
||||
|
||||
context.response(L("command.blockstate.command_updated", count));
|
||||
}
|
||||
update.finish();
|
||||
|
||||
context.response(L("command.blockstate.command_updated", count));
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ public class EditSessionExtent extends AbstractDelegateExtent {
|
|||
private ModBlockStates mod;
|
||||
private Player player = null;
|
||||
private World world;
|
||||
|
||||
|
||||
public EditSessionExtent(Extent extent, ModBlockStates mod, Player player, World world) {
|
||||
super(extent);
|
||||
this.mod = mod;
|
||||
|
@ -29,13 +29,13 @@ public class EditSessionExtent extends AbstractDelegateExtent {
|
|||
/**
|
||||
* Called when a block is being changed.
|
||||
*
|
||||
* @param pt the position
|
||||
* @param pt the position
|
||||
* @param newBlock the new block to replace the old one
|
||||
*/
|
||||
@Override
|
||||
public <T extends BlockStateHolder<T>> boolean setBlock(BlockVector3 pt, T newBlock) throws WorldEditException {
|
||||
if (mod.isDebug())
|
||||
mod.getLog().debug("WorldEdit-Integration: BlockChange: "+pt.toString()+" BB: " + newBlock.toString());
|
||||
mod.getLog().debug("WorldEdit-Integration: BlockChange: " + pt.toString() + " BB: " + newBlock.toString());
|
||||
Location loc = new Location(world, pt.getBlockX(), pt.getBlockY(), pt.getBlockZ());
|
||||
if (newBlock.getBlockType().getMaterial().isAir()) {
|
||||
mod.getModel().removeState(loc.getBlock());
|
||||
|
@ -51,9 +51,10 @@ public class EditSessionExtent extends AbstractDelegateExtent {
|
|||
s.setSource(Source.EDIT);
|
||||
if (mod.isDebug())
|
||||
mod.getLog().debug("WorldEdit-Integration: Saving BlockState: " + s.toString());
|
||||
|
||||
|
||||
mod.getModel().setState(s);
|
||||
}
|
||||
super.setBlock(pt, newBlock);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue