Skip to content

Commit 9485fa3

Browse files
committed
Add TNT Minecarts to tnt-disallow-time flag
1 parent f0b4e77 commit 9485fa3

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

src/main/java/parallelmc/parallelutils/modules/parallelflags/events/ParallelFlagsInteractListener.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.sk89q.worldguard.protection.flags.*;
99
import com.sk89q.worldguard.protection.regions.RegionContainer;
1010
import com.sk89q.worldguard.protection.regions.RegionQuery;
11+
import org.bukkit.Material;
1112
import org.bukkit.Statistic;
1213
import org.bukkit.block.Block;
1314
import org.bukkit.block.data.type.TNT;
@@ -17,6 +18,7 @@
1718
import org.bukkit.event.EventPriority;
1819
import org.bukkit.event.Listener;
1920
import org.bukkit.event.player.PlayerInteractEvent;
21+
import org.bukkit.inventory.ItemStack;
2022
import parallelmc.parallelutils.Parallelutils;
2123
import parallelmc.parallelutils.modules.parallelflags.CustomFlagRegistry;
2224

@@ -29,15 +31,22 @@ public class ParallelFlagsInteractListener implements Listener {
2931
@EventHandler(priority = EventPriority.HIGHEST)
3032
public void onPlayerInteract(PlayerInteractEvent event) {
3133
Block block = event.getClickedBlock();
34+
ItemStack item = event.getItem();
3235

33-
if (block == null) return;
36+
if (block == null && item == null) return;
3437

3538
if (container == null) {
3639
container = WorldGuard.getInstance().getPlatform().getRegionContainer();
3740
}
3841

3942
RegionQuery query = container.createQuery();
40-
ApplicableRegionSet set = query.getApplicableRegions(BukkitAdapter.adapt(block.getLocation()));
43+
ApplicableRegionSet set;
44+
if(block != null) {
45+
set = query.getApplicableRegions(BukkitAdapter.adapt(block.getLocation()));
46+
}
47+
else{
48+
set = query.getApplicableRegions(BukkitAdapter.adapt(event.getPlayer().getLocation()));
49+
}
4150
if (set.isVirtual()) return;
4251

4352
LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(event.getPlayer());
@@ -49,7 +58,7 @@ public void onPlayerInteract(PlayerInteractEvent event) {
4958

5059
if (trapdoorsFlag != null) {
5160

52-
if (block.getBlockData() instanceof TrapDoor) {
61+
if (block != null && block.getBlockData() instanceof TrapDoor) {
5362
StateFlag.State state = set.queryState(localPlayer, trapdoorsFlag);
5463

5564
if (state == StateFlag.State.DENY) {
@@ -62,7 +71,8 @@ public void onPlayerInteract(PlayerInteractEvent event) {
6271
IntegerFlag tntFlag = registry.getIntegerFlag("tnt-disallow-time");
6372

6473
if (tntFlag != null) {
65-
if (block.getBlockData() instanceof TNT) {
74+
if ((block != null && block.getBlockData() instanceof TNT) ||
75+
(item != null && item.getType().equals(Material.TNT_MINECART))) {
6676
Integer val = set.queryValue(localPlayer, tntFlag); // In hours
6777

6878
if (val != null) {

0 commit comments

Comments
 (0)