Skip to content

Commit

Permalink
Updated for WorldEdit 6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
DarkArc committed Sep 2, 2014
1 parent d7f2ac5 commit fa1e1b7
Show file tree
Hide file tree
Showing 6 changed files with 95 additions and 122 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>1.7.2-R0.1-SNAPSHOT</version>
<version>1.7.5-R0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
Expand All @@ -54,7 +54,7 @@
<dependency>
<groupId>com.sk89q</groupId>
<artifactId>worldedit</artifactId>
<version>5.5</version>
<version>6.0.0-SNAPSHOT</version>
</dependency>
</dependencies>

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/de/diddiz/LogBlock/LogBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import de.diddiz.LogBlock.listeners.ToolListener;
import de.diddiz.LogBlock.listeners.WitherLogging;
import de.diddiz.util.MySQLConnectionPool;
import de.diddiz.worldedit.LogBlockEditSessionFactory;
import de.diddiz.worldedit.WorldEditLoggingHook;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
Expand Down Expand Up @@ -110,7 +110,7 @@ public void onEnable() {
if (noDb)
return;
if (pm.getPlugin("WorldEdit") != null) {
LogBlockEditSessionFactory.initialize(this);
new WorldEditLoggingHook(this).hook();
}
commandsHandler = new CommandsHandler(this);
getCommand("lb").setExecutor(commandsHandler);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.Material;
import org.bukkit.projectiles.ProjectileSource;

import static de.diddiz.LogBlock.config.Config.getWorldConfig;
import static de.diddiz.LogBlock.config.Config.logCreeperExplosionsAsPlayerWhoTriggeredThese;
Expand Down Expand Up @@ -57,7 +58,7 @@ public void onEntityExplode(EntityExplodeEvent event) {
name = "Creeper";
} else if (source instanceof Fireball) {
Fireball fireball = (Fireball) source;
Entity shooter = fireball.getShooter();
ProjectileSource shooter = fireball.getShooter();
if (shooter == null) {
return;
}
Expand Down
78 changes: 0 additions & 78 deletions src/main/java/de/diddiz/worldedit/LogBlockEditSession.java

This file was deleted.

39 changes: 0 additions & 39 deletions src/main/java/de/diddiz/worldedit/LogBlockEditSessionFactory.java

This file was deleted.

89 changes: 89 additions & 0 deletions src/main/java/de/diddiz/worldedit/WorldEditLoggingHook.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
package de.diddiz.worldedit;

import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.blocks.BaseBlock;
import com.sk89q.worldedit.entity.Player;
import com.sk89q.worldedit.event.extent.EditSessionEvent;
import com.sk89q.worldedit.extension.platform.Actor;
import com.sk89q.worldedit.extent.logging.AbstractLoggingExtent;
import com.sk89q.worldedit.util.eventbus.Subscribe;
import de.diddiz.LogBlock.LogBlock;
import de.diddiz.LogBlock.Logging;
import de.diddiz.LogBlock.config.Config;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.Sign;

public class WorldEditLoggingHook {

private LogBlock plugin;

public WorldEditLoggingHook(LogBlock plugin) {
this.plugin = plugin;
}

public void hook() {
WorldEdit.getInstance().getEventBus().register(new Object() {
@Subscribe
public void wrapForLogging(final EditSessionEvent event) {
final Actor actor = event.getActor();
if (actor == null || !(actor instanceof Player)) return;

// Check to ensure the world should be logged
String worldName = event.getWorld().getName();
// If config becomes reloadable, this check should be moved
if (!(Config.isLogging(worldName, Logging.WORLDEDIT))) {
return;
}

final org.bukkit.World bukkitWorld = Bukkit.getWorld(worldName);
if (bukkitWorld == null) {
return;
}

event.setExtent(new AbstractLoggingExtent(event.getExtent()) {
@Override
protected void onBlockChange(Vector pt, BaseBlock block) {

if (event.getStage() != EditSession.Stage.BEFORE_CHANGE) {
return;
}

Location location = new Location(bukkitWorld, pt.getBlockX(), pt.getBlockY(), pt.getBlockZ());

Block origin = location.getBlock();
int typeBefore = origin.getTypeId();
byte dataBefore = origin.getData();
// If we're dealing with a sign, store the block state to read the text off
BlockState stateBefore = null;
if (typeBefore == Material.SIGN_POST.getId() || typeBefore == Material.SIGN.getId()) {
stateBefore = origin.getState();
}

// Check to see if we've broken a sign
if (Config.isLogging(location.getWorld().getName(), Logging.SIGNTEXT) && (typeBefore == Material.SIGN_POST.getId() || typeBefore == Material.SIGN.getId())) {
plugin.getConsumer().queueSignBreak(actor.getName(), (Sign) stateBefore);
if (block.getType() != Material.AIR.getId()) {
plugin.getConsumer().queueBlockPlace(actor.getName(), location, block.getType(), (byte) block.getData());
}
} else {
if (dataBefore != 0) {
plugin.getConsumer().queueBlockBreak(actor.getName(), location, typeBefore, dataBefore);
if (block.getType() != Material.AIR.getId()) {
plugin.getConsumer().queueBlockPlace(actor.getName(), location, block.getType(), (byte) block.getData());
}
} else {
plugin.getConsumer().queueBlock(actor.getName(), location, typeBefore, block.getType(), (byte) block.getData());
}
}
}
});
}
});
}
}

0 comments on commit fa1e1b7

Please sign in to comment.