Skip to content

Commit

Permalink
BlockState Hanging Punch in 1.7.2
Browse files Browse the repository at this point in the history
  • Loading branch information
possi committed Dec 9, 2013
1 parent 8a76616 commit 06e08c6
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 3 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Expand Up @@ -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>
Expand Down
Expand Up @@ -5,9 +5,11 @@
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;
Expand Down Expand Up @@ -48,6 +50,34 @@ public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
}
}
}
@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) {
Expand Down
Expand Up @@ -92,7 +92,9 @@ public String getCreativeGroup() {
*/
@IsConfigurationNode(order = 300)
public String getAdventureGroup() {
return config.getString("adventureGroup");
if (config.isBoolean("adventureGroup"))
return null;
return config.getString("adventureGroup", null);
}

@Override
Expand Down

0 comments on commit 06e08c6

Please sign in to comment.