Added DYE protection flag

https://github.com/BentoBoxWorld/BentoBox/issues/653
(cherry picked from commit e94000528791e1abb30d19305e36529d825287b9)
This commit is contained in:
tastybento 2019-05-01 14:43:35 -07:00 committed by Florian CUNY
parent df8a93e9f1
commit 9e15907f93
3 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,43 @@
package world.bentobox.bentobox.listeners.flags.protection;
import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import world.bentobox.bentobox.api.flags.FlagListener;
import world.bentobox.bentobox.lists.Flags;
/**
* Protects against dying
* @author tastybento
*/
public class DyeListener extends FlagListener {
/**
* Prevent dying
* @param e - event
*/
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onPlayerInteract(final PlayerInteractEvent e) {
if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK) && e.getClickedBlock().getType().name().contains("SIGN")) {
checkIsland(e, e.getPlayer(), e.getClickedBlock().getLocation(), Flags.DYE);
return;
}
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onPlayerInteract(final PlayerInteractEntityEvent e) {
if (e.getRightClicked().getType().equals(EntityType.SHEEP)) {
checkIsland(e, e.getPlayer(), e.getRightClicked().getLocation(), Flags.DYE);
return;
}
}
}

View File

@ -16,6 +16,7 @@ import world.bentobox.bentobox.listeners.flags.protection.BlockInteractionListen
import world.bentobox.bentobox.listeners.flags.protection.BreakBlocksListener;
import world.bentobox.bentobox.listeners.flags.protection.BreedingListener;
import world.bentobox.bentobox.listeners.flags.protection.BucketListener;
import world.bentobox.bentobox.listeners.flags.protection.DyeListener;
import world.bentobox.bentobox.listeners.flags.protection.EggListener;
import world.bentobox.bentobox.listeners.flags.protection.EntityInteractListener;
import world.bentobox.bentobox.listeners.flags.protection.ExperiencePickupListener;
@ -391,6 +392,14 @@ public final class Flags {
*/
public static final Flag NATURAL_SPAWNING_OUTSIDE_RANGE = new Flag.Builder("NATURAL_SPAWNING_OUTSIDE_RANGE", Material.ZOMBIE_SPAWN_EGG).type(Type.WORLD_SETTING).listener(new NaturalSpawningOutsideRangeListener()).defaultSetting(true).build();
/**
* Protects against visitors dying stuff, like sheep or signs
*
* @since 1.5.0
* @see DyeListener
*/
public static final Flag DYE = new Flag.Builder("DYE", Material.LIGHT_BLUE_DYE).type(Type.PROTECTION).listener(new DyeListener()).build();
/**
* Provides a list of all the Flag instances contained in this class using reflection.
* @return List of all the flags in this class

View File

@ -594,6 +594,10 @@ protection:
&cThis does not protect it from being
&cplaced or broken.
hint: "No Dragon Egg interaction"
DYE:
description: "Prevent dye use"
name: "Dye use"
hint: "No dying allowed"
EGGS:
description: "Toggle egg throwing"
name: "Egg throwing"