diff --git a/.idea/artifacts/TotalFreedomMod_jar.xml b/.idea/artifacts/TotalFreedomMod_jar.xml deleted file mode 100644 index 483f1042..00000000 --- a/.idea/artifacts/TotalFreedomMod_jar.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - $PROJECT_DIR$/target - - - - - diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index 9898a0e5..00000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index 0f7bc519..00000000 --- a/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 8ceb59f3..00000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index af673e73..00000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/TotalFreedomMod.iml b/TotalFreedomMod.iml deleted file mode 100644 index 0e2948f4..00000000 --- a/TotalFreedomMod.iml +++ /dev/null @@ -1,288 +0,0 @@ - - - - - - - - - - PAPER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java index 8c467d14..4b54e31e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java @@ -1,5 +1,6 @@ package me.totalfreedom.totalfreedommod.blocking; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import me.totalfreedom.totalfreedommod.FreedomService; @@ -9,19 +10,14 @@ import me.totalfreedom.totalfreedommod.util.Groups; import org.bukkit.Material; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeModifier; +import org.bukkit.block.data.AnaloguePowerable; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Powerable; import org.bukkit.entity.Entity; import org.bukkit.entity.Tameable; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.block.BlockBurnEvent; -import org.bukkit.event.block.BlockDispenseEvent; -import org.bukkit.event.block.BlockFromToEvent; -import org.bukkit.event.block.BlockGrowEvent; -import org.bukkit.event.block.BlockIgniteEvent; -import org.bukkit.event.block.BlockPistonExtendEvent; -import org.bukkit.event.block.BlockPistonRetractEvent; -import org.bukkit.event.block.BlockRedstoneEvent; -import org.bukkit.event.block.LeavesDecayEvent; +import org.bukkit.event.block.*; import org.bukkit.event.entity.EntityCombustEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; @@ -31,6 +27,7 @@ import org.bukkit.event.entity.FireworkExplodeEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.material.Redstone; public class EventBlocker extends FreedomService { @@ -199,7 +196,7 @@ public class EventBlocker extends FreedomService } } - @EventHandler(priority = EventPriority.HIGH) + //@EventHandler(priority = EventPriority.HIGH) public void onBlockRedstone(BlockRedstoneEvent event) { if (!ConfigEntry.ALLOW_REDSTONE.getBoolean()) @@ -208,6 +205,20 @@ public class EventBlocker extends FreedomService } } + // TODO: Revert back to old redstone block system when (or if) it is fixed in Bukkit, Spigot or Paper. + private ArrayList redstoneBlocks = new ArrayList<>(Arrays.asList(Material.REDSTONE, Material.DISPENSER, Material.DROPPER, Material.REDSTONE_LAMP)); + @EventHandler + public void onBlockPhysics(BlockPhysicsEvent event) { + if (!ConfigEntry.ALLOW_REDSTONE.getBoolean()) + { + // Check if the block is involved with redstone. + if(event.getBlock().getBlockData() instanceof AnaloguePowerable || event.getBlock().getBlockData() instanceof Powerable || redstoneBlocks.contains(event.getBlock().getType())) + { + event.setCancelled(true); + } + } + } + @EventHandler(priority = EventPriority.NORMAL) public void onPlayerRespawn(PlayerRespawnEvent event) {