mirror of
https://github.com/EngineHub/WorldGuard.git
synced 2025-02-14 19:31:58 +01:00
Added gameplay.block-potions.
This commit is contained in:
parent
1bdd7f9a6b
commit
fede549b51
@ -31,6 +31,7 @@
|
|||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
@ -74,6 +75,7 @@ public class WorldConfiguration {
|
|||||||
public boolean simulateSponge;
|
public boolean simulateSponge;
|
||||||
public int spongeRadius;
|
public int spongeRadius;
|
||||||
public boolean disableExpDrops;
|
public boolean disableExpDrops;
|
||||||
|
public Set<PotionEffectType> blockPotions;
|
||||||
public boolean pumpkinScuba;
|
public boolean pumpkinScuba;
|
||||||
public boolean redstoneSponges;
|
public boolean redstoneSponges;
|
||||||
public boolean noPhysicsGravel;
|
public boolean noPhysicsGravel;
|
||||||
@ -288,6 +290,17 @@ private void loadConfiguration() {
|
|||||||
disableExpDrops = getBoolean("protection.disable-xp-orb-drops", false);
|
disableExpDrops = getBoolean("protection.disable-xp-orb-drops", false);
|
||||||
disableObsidianGenerators = getBoolean("protection.disable-obsidian-generators", false);
|
disableObsidianGenerators = getBoolean("protection.disable-obsidian-generators", false);
|
||||||
|
|
||||||
|
blockPotions = new HashSet<PotionEffectType>();
|
||||||
|
for (String potionName : getStringList("gameplay.block-potions", null)) {
|
||||||
|
PotionEffectType effect = PotionEffectType.getByName(potionName);
|
||||||
|
|
||||||
|
if (effect == null) {
|
||||||
|
plugin.getLogger().warning("Unknown potion effect type '" + potionName + "'");
|
||||||
|
} else {
|
||||||
|
blockPotions.add(effect);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
simulateSponge = getBoolean("simulation.sponge.enable", true);
|
simulateSponge = getBoolean("simulation.sponge.enable", true);
|
||||||
spongeRadius = Math.max(1, getInt("simulation.sponge.radius", 3)) - 1;
|
spongeRadius = Math.max(1, getInt("simulation.sponge.radius", 3)) - 1;
|
||||||
redstoneSponges = getBoolean("simulation.sponge.redstone", false);
|
redstoneSponges = getBoolean("simulation.sponge.redstone", false);
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
@ -54,7 +55,8 @@
|
|||||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
import org.bukkit.event.player.PlayerRespawnEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
|
import org.bukkit.potion.Potion;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
import com.sk89q.worldedit.blocks.BlockType;
|
import com.sk89q.worldedit.blocks.BlockType;
|
||||||
import com.sk89q.worldguard.LocalPlayer;
|
import com.sk89q.worldguard.LocalPlayer;
|
||||||
@ -420,6 +422,22 @@ public void onPlayerInteract(PlayerInteractEvent event) {
|
|||||||
player.sendMessage(ChatColor.RED + "Infinite stack removed.");
|
player.sendMessage(ChatColor.RED + "Infinite stack removed.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (wcfg.blockPotions.size() > 0
|
||||||
|
&& !plugin.hasPermission(player, "worldguard.override.potions")) {
|
||||||
|
ItemStack item = event.getItem();
|
||||||
|
if (item.getType() == Material.POTION) {
|
||||||
|
Potion potion = Potion.fromItemStack(item);
|
||||||
|
for (PotionEffect effect : potion.getEffects()) {
|
||||||
|
if (wcfg.blockPotions.contains(effect.getType())) {
|
||||||
|
player.sendMessage(ChatColor.RED + "Sorry, potions with "
|
||||||
|
+ effect.getType().getName() + " are presently disabled.");
|
||||||
|
event.setUseItemInHand(Result.DENY);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user