mirror of
https://github.com/YouHaveTrouble/PreventStabby.git
synced 2026-05-12 05:16:55 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ee3526c55d | |||
| 2189616a9e |
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>me.youhavetrouble</groupId>
|
<groupId>me.youhavetrouble</groupId>
|
||||||
<artifactId>PreventStabby</artifactId>
|
<artifactId>PreventStabby</artifactId>
|
||||||
<version>2.0.0-pre-4</version>
|
<version>2.0.0-pre-5</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>PreventStabby</name>
|
<name>PreventStabby</name>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package me.youhavetrouble.preventstabby.config;
|
package me.youhavetrouble.preventstabby.config;
|
||||||
|
|
||||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@@ -33,6 +34,7 @@ public class ConfigCache {
|
|||||||
public final double combat_time, login_protection_time, teleport_protection_time, bucket_stopper_radius,
|
public final double combat_time, login_protection_time, teleport_protection_time, bucket_stopper_radius,
|
||||||
fire_stopper_radius, block_stopper_radius;
|
fire_stopper_radius, block_stopper_radius;
|
||||||
private final Set<String> combatBlockedCommands = new HashSet<>();
|
private final Set<String> combatBlockedCommands = new HashSet<>();
|
||||||
|
private final Set<Material> dangerousBlocks = new HashSet<>();
|
||||||
|
|
||||||
private final FileConfiguration config;
|
private final FileConfiguration config;
|
||||||
|
|
||||||
@@ -124,6 +126,19 @@ public class ConfigCache {
|
|||||||
2.5,
|
2.5,
|
||||||
List.of("Distance from the player where placing dangerous blocks will be disallowed")
|
List.of("Distance from the player where placing dangerous blocks will be disallowed")
|
||||||
);
|
);
|
||||||
|
List<String> rawDangerousBlocks = getList(
|
||||||
|
"settings.environmental.block_stopper.blocks",
|
||||||
|
List.of("tnt", "magma_block", "cactus", "campfire"),
|
||||||
|
List.of("List of dangerous blocks that will be blocked when placed near players with pvp off")
|
||||||
|
);
|
||||||
|
for (String block : rawDangerousBlocks) {
|
||||||
|
Material material = Material.matchMaterial(block);
|
||||||
|
if (material != null) {
|
||||||
|
dangerousBlocks.add(material);
|
||||||
|
} else {
|
||||||
|
plugin.getLogger().warning("Invalid material: " + block);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -175,6 +190,10 @@ public class ConfigCache {
|
|||||||
return Collections.unmodifiableSet(combatBlockedCommands);
|
return Collections.unmodifiableSet(combatBlockedCommands);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Set<Material> getDangerousBlocks() {
|
||||||
|
return Collections.unmodifiableSet(dangerousBlocks);
|
||||||
|
}
|
||||||
|
|
||||||
private String getString(String path, @NotNull String def) {
|
private String getString(String path, @NotNull String def) {
|
||||||
return getString(path, def, null);
|
return getString(path, def, null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,13 +78,14 @@ public class EnvironmentalListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onBlockIgnite(BlockPlaceEvent event) {
|
public void onDangerousBlockPlace(BlockPlaceEvent event) {
|
||||||
ConfigCache config = plugin.getConfigCache();
|
ConfigCache config = plugin.getConfigCache();
|
||||||
if (!config.block_stopper_enabled) return;
|
if (!config.block_stopper_enabled) return;
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
Location location = event.getBlock().getLocation().toCenterLocation();
|
Location location = event.getBlock().getLocation().toCenterLocation();
|
||||||
Target target = Target.getTarget(player);
|
Target target = Target.getTarget(player);
|
||||||
if (target == null) return;
|
if (target == null) return;
|
||||||
|
if (!config.getDangerousBlocks().contains(event.getBlock().getType())) return;
|
||||||
double radius = config.block_stopper_radius;
|
double radius = config.block_stopper_radius;
|
||||||
|
|
||||||
BoundingBox boundingBox = BoundingBox.of(location.toVector(), radius, radius, radius);
|
BoundingBox boundingBox = BoundingBox.of(location.toVector(), radius, radius, radius);
|
||||||
|
|||||||
Reference in New Issue
Block a user