BlockState Hanging Punch in 1.7.2

This commit is contained in:
Jascha Starke 2013-12-09 23:07:44 +01:00
parent 8a76616969
commit 06e08c630e
3 changed files with 35 additions and 3 deletions

View file

@ -3,13 +3,13 @@
<groupId>de.jaschastarke</groupId>
<artifactId>LimitedCreative</artifactId>
<name>LimitedCreative</name>
<version>2.2-SNAPSHOT</version>
<version>2.3-SNAPSHOT</version>
<url>https://github.com/possi/LimitedCreative</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<plib.version>1.4-SNAPSHOT</plib.version>
<bukkit.version>1.6.4-R1.0</bukkit.version>
<bukkit.version>1.7.2-R0.1-SNAPSHOT</bukkit.version>
</properties>
<scm>

View file

@ -5,9 +5,11 @@ import java.util.Date;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.entity.ItemFrame;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.hanging.HangingBreakEvent;
import org.bukkit.event.hanging.HangingPlaceEvent;
import org.bukkit.event.player.PlayerInteractEntityEvent;
@ -48,6 +50,34 @@ public class HangingListener implements Listener {
}
}
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerLeftInteractEntity(EntityDamageByEntityEvent event) {
if (mod.getConfig().getIgnoredWorlds().contains(event.getEntity().getWorld().getName()))
return;
if (event.getDamager() instanceof Player && event.getEntity() instanceof ItemFrame) {
if (mod.getModel().isRestricted(event.getEntity().getLocation().getBlock())) {
if (mod.isDebug())
mod.getLog().debug("Modifying hanging: " + event.getEntity().getLocation().toString());
if (((Player) event.getDamager()).getGameMode() != GameMode.CREATIVE) {
if (mod.isDebug())
mod.getLog().debug("... was placed by creative. Modify prevented");
event.setCancelled(true);
return;
}
} else {
BlockState s = new BlockState();
s.setLocation(event.getEntity().getLocation().getBlock().getLocation());
s.setPlayer((Player) event.getDamager());
s.setDate(new Date());
if (mod.isDebug())
mod.getLog().debug("Saving BlockState: " + s.toString());
mod.getModel().setState(s);
}
}
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onHangingBreak(HangingBreakEvent event) {

View file

@ -92,7 +92,9 @@ public class GMPermConfig extends Configuration implements IConfigurationSubGrou
*/
@IsConfigurationNode(order = 300)
public String getAdventureGroup() {
return config.getString("adventureGroup");
if (config.isBoolean("adventureGroup"))
return null;
return config.getString("adventureGroup", null);
}
@Override