mirror of
https://github.com/BentoBoxWorld/BentoBox.git
synced 2024-09-28 14:47:30 +02:00
Renamed flags to Flag because it was confusing.
Had to rename the class to FlagType as a result. Rewrote FireListener to be simpler. Wrote test case for fire listener.
This commit is contained in:
parent
58b1867b0d
commit
b25d17fa78
@ -17,7 +17,7 @@ import us.tastybento.bskyblock.Constants.GameType;
|
|||||||
import us.tastybento.bskyblock.api.configuration.ConfigEntry;
|
import us.tastybento.bskyblock.api.configuration.ConfigEntry;
|
||||||
import us.tastybento.bskyblock.api.configuration.ISettings;
|
import us.tastybento.bskyblock.api.configuration.ISettings;
|
||||||
import us.tastybento.bskyblock.api.configuration.StoreAt;
|
import us.tastybento.bskyblock.api.configuration.StoreAt;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
import us.tastybento.bskyblock.database.BSBDatabase.DatabaseType;
|
import us.tastybento.bskyblock.database.BSBDatabase.DatabaseType;
|
||||||
import us.tastybento.bskyblock.database.objects.adapters.Adapter;
|
import us.tastybento.bskyblock.database.objects.adapters.Adapter;
|
||||||
import us.tastybento.bskyblock.database.objects.adapters.PotionEffectListAdapter;
|
import us.tastybento.bskyblock.database.objects.adapters.PotionEffectListAdapter;
|
||||||
@ -207,7 +207,7 @@ public class Settings implements ISettings<Settings> {
|
|||||||
|
|
||||||
private int togglePvPCooldown;
|
private int togglePvPCooldown;
|
||||||
|
|
||||||
private Map<Flag, Boolean> defaultFlags = new HashMap<>();
|
private Map<FlagType, Boolean> defaultFlags = new HashMap<>();
|
||||||
|
|
||||||
//TODO transform these options below into flags
|
//TODO transform these options below into flags
|
||||||
private boolean allowEndermanGriefing;
|
private boolean allowEndermanGriefing;
|
||||||
@ -374,7 +374,7 @@ public class Settings implements ISettings<Settings> {
|
|||||||
/**
|
/**
|
||||||
* @return the defaultFlags
|
* @return the defaultFlags
|
||||||
*/
|
*/
|
||||||
public Map<Flag, Boolean> getDefaultFlags() {
|
public Map<FlagType, Boolean> getDefaultFlags() {
|
||||||
return defaultFlags;
|
return defaultFlags;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -925,7 +925,7 @@ public class Settings implements ISettings<Settings> {
|
|||||||
/**
|
/**
|
||||||
* @param defaultFlags the defaultFlags to set
|
* @param defaultFlags the defaultFlags to set
|
||||||
*/
|
*/
|
||||||
public void setDefaultFlags(Map<Flag, Boolean> defaultFlags) {
|
public void setDefaultFlags(Map<FlagType, Boolean> defaultFlags) {
|
||||||
this.defaultFlags = defaultFlags;
|
this.defaultFlags = defaultFlags;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
@ -75,7 +75,7 @@ public class User {
|
|||||||
|
|
||||||
// ----------------------------------------------------
|
// ----------------------------------------------------
|
||||||
|
|
||||||
private final BSkyBlock plugin = BSkyBlock.getInstance();
|
private BSkyBlock plugin = BSkyBlock.getInstance();
|
||||||
|
|
||||||
private final Player player;
|
private final Player player;
|
||||||
private final UUID playerUUID;
|
private final UUID playerUUID;
|
||||||
@ -99,6 +99,14 @@ public class User {
|
|||||||
this.playerUUID = playerUUID;
|
this.playerUUID = playerUUID;
|
||||||
sender = null;
|
sender = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used for testing
|
||||||
|
* @param plugin
|
||||||
|
*/
|
||||||
|
public void setPlugin(BSkyBlock plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
public Set<PermissionAttachmentInfo> getEffectivePermissions() {
|
public Set<PermissionAttachmentInfo> getEffectivePermissions() {
|
||||||
return sender.getEffectivePermissions();
|
return sender.getEffectivePermissions();
|
||||||
|
@ -3,7 +3,7 @@ package us.tastybento.bskyblock.api.events.island;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -16,7 +16,7 @@ import us.tastybento.bskyblock.database.objects.Island;
|
|||||||
*/
|
*/
|
||||||
public class FlagChangeEvent extends IslandBaseEvent {
|
public class FlagChangeEvent extends IslandBaseEvent {
|
||||||
private final UUID player;
|
private final UUID player;
|
||||||
private final Flag editedFlag;
|
private final FlagType editedFlag;
|
||||||
private final boolean setTo;
|
private final boolean setTo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -25,7 +25,7 @@ public class FlagChangeEvent extends IslandBaseEvent {
|
|||||||
* @param editedFlag
|
* @param editedFlag
|
||||||
* @param setTo
|
* @param setTo
|
||||||
*/
|
*/
|
||||||
public FlagChangeEvent(Island island, UUID player, Flag editedFlag, boolean setTo) {
|
public FlagChangeEvent(Island island, UUID player, FlagType editedFlag, boolean setTo) {
|
||||||
super(island);
|
super(island);
|
||||||
this.player = player;
|
this.player = player;
|
||||||
this.editedFlag = editedFlag;
|
this.editedFlag = editedFlag;
|
||||||
@ -42,7 +42,7 @@ public class FlagChangeEvent extends IslandBaseEvent {
|
|||||||
/**
|
/**
|
||||||
* @return the edited flag
|
* @return the edited flag
|
||||||
*/
|
*/
|
||||||
public Flag getFlag() {
|
public FlagType getFlag() {
|
||||||
return editedFlag;
|
return editedFlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
package us.tastybento.bskyblock.api.flags;
|
|
||||||
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.panels.PanelItem;
|
|
||||||
|
|
||||||
public class Flag implements Comparable<Flag> {
|
|
||||||
|
|
||||||
public enum FlagType {
|
|
||||||
PROTECTION,
|
|
||||||
SETTING
|
|
||||||
}
|
|
||||||
|
|
||||||
private final String id;
|
|
||||||
private final PanelItem icon;
|
|
||||||
private final Listener listener;
|
|
||||||
private final FlagType type;
|
|
||||||
private boolean defaultSetting;
|
|
||||||
|
|
||||||
public Flag(String id2, PanelItem icon, Listener listener, boolean defaultSetting, FlagType type) {
|
|
||||||
id = id2;
|
|
||||||
this.icon = icon;
|
|
||||||
this.listener = listener;
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getID() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PanelItem getIcon() {
|
|
||||||
return icon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Optional<Listener> getListener() {
|
|
||||||
return Optional.ofNullable(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isDefaultSetting() {
|
|
||||||
return defaultSetting;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDefaultSetting(boolean defaultSetting) {
|
|
||||||
this.defaultSetting = defaultSetting;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the type
|
|
||||||
*/
|
|
||||||
public FlagType getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int compareTo(Flag o) {
|
|
||||||
return id.compareTo(o.getID());
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,7 +4,7 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.flags.Flag.FlagType;
|
import us.tastybento.bskyblock.api.flags.FlagType.Type;
|
||||||
import us.tastybento.bskyblock.api.panels.PanelItem;
|
import us.tastybento.bskyblock.api.panels.PanelItem;
|
||||||
import us.tastybento.bskyblock.api.panels.builders.PanelItemBuilder;
|
import us.tastybento.bskyblock.api.panels.builders.PanelItemBuilder;
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ public class FlagBuilder {
|
|||||||
private PanelItem icon;
|
private PanelItem icon;
|
||||||
private Listener listener;
|
private Listener listener;
|
||||||
private boolean defaultSetting;
|
private boolean defaultSetting;
|
||||||
private FlagType type = FlagType.PROTECTION;
|
private Type type = Type.PROTECTION;
|
||||||
|
|
||||||
public FlagBuilder id(String string) {
|
public FlagBuilder id(String string) {
|
||||||
id = string;
|
id = string;
|
||||||
@ -39,8 +39,8 @@ public class FlagBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Flag build() {
|
public FlagType build() {
|
||||||
return new Flag(id, icon, listener, defaultSetting, type);
|
return new FlagType(id, icon, listener, defaultSetting, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -55,10 +55,10 @@ public class FlagBuilder {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the type of this flag
|
* Set the type of this flag
|
||||||
* @param type {@link FlagType}
|
* @param type {@link Type}
|
||||||
* @return FlagBuilder
|
* @return FlagBuilder
|
||||||
*/
|
*/
|
||||||
public FlagBuilder type(FlagType type) {
|
public FlagBuilder type(Type type) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
103
src/main/java/us/tastybento/bskyblock/api/flags/FlagType.java
Normal file
103
src/main/java/us/tastybento/bskyblock/api/flags/FlagType.java
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
package us.tastybento.bskyblock.api.flags;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
|
import us.tastybento.bskyblock.api.panels.PanelItem;
|
||||||
|
|
||||||
|
public class FlagType {
|
||||||
|
|
||||||
|
public enum Type {
|
||||||
|
PROTECTION,
|
||||||
|
SETTING
|
||||||
|
}
|
||||||
|
|
||||||
|
private final String id;
|
||||||
|
private final PanelItem icon;
|
||||||
|
private final Listener listener;
|
||||||
|
private final Type type;
|
||||||
|
private boolean defaultSetting;
|
||||||
|
|
||||||
|
public FlagType(String id2, PanelItem icon, Listener listener, boolean defaultSetting, Type type) {
|
||||||
|
id = id2;
|
||||||
|
this.icon = icon;
|
||||||
|
this.listener = listener;
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getID() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PanelItem getIcon() {
|
||||||
|
return icon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Optional<Listener> getListener() {
|
||||||
|
return Optional.ofNullable(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return - true means it is allowed. false means it is not allowed
|
||||||
|
*/
|
||||||
|
public boolean isDefaultSetting() {
|
||||||
|
return defaultSetting;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the status of this flag for locations outside of island spaces
|
||||||
|
* @param defaultSetting - true means it is allowed. false means it is not allowed
|
||||||
|
*/
|
||||||
|
public void setDefaultSetting(boolean defaultSetting) {
|
||||||
|
this.defaultSetting = defaultSetting;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the type
|
||||||
|
*/
|
||||||
|
public Type getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see java.lang.Object#hashCode()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
final int prime = 31;
|
||||||
|
int result = 1;
|
||||||
|
result = prime * result + ((id == null) ? 0 : id.hashCode());
|
||||||
|
result = prime * result + ((type == null) ? 0 : type.hashCode());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see java.lang.Object#equals(java.lang.Object)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!(obj instanceof FlagType)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
FlagType other = (FlagType) obj;
|
||||||
|
if (id == null) {
|
||||||
|
if (other.id != null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else if (!id.equals(other.id)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (type != other.type) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -25,7 +25,7 @@ import us.tastybento.bskyblock.api.events.island.IslandEvent;
|
|||||||
import us.tastybento.bskyblock.api.events.island.IslandEvent.IslandLockEvent;
|
import us.tastybento.bskyblock.api.events.island.IslandEvent.IslandLockEvent;
|
||||||
import us.tastybento.bskyblock.api.events.island.IslandEvent.IslandUnlockEvent;
|
import us.tastybento.bskyblock.api.events.island.IslandEvent.IslandUnlockEvent;
|
||||||
import us.tastybento.bskyblock.api.events.island.IslandEvent.Reason;
|
import us.tastybento.bskyblock.api.events.island.IslandEvent.Reason;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
import us.tastybento.bskyblock.database.objects.adapters.Adapter;
|
import us.tastybento.bskyblock.database.objects.adapters.Adapter;
|
||||||
import us.tastybento.bskyblock.database.objects.adapters.FlagSerializer;
|
import us.tastybento.bskyblock.database.objects.adapters.FlagSerializer;
|
||||||
import us.tastybento.bskyblock.managers.RanksManager;
|
import us.tastybento.bskyblock.managers.RanksManager;
|
||||||
@ -89,7 +89,7 @@ public class Island implements DataObject {
|
|||||||
|
|
||||||
//// Protection flags ////
|
//// Protection flags ////
|
||||||
@Adapter(FlagSerializer.class)
|
@Adapter(FlagSerializer.class)
|
||||||
private Map<Flag, Integer> flags = new HashMap<>();
|
private Map<FlagType, Integer> flags = new HashMap<>();
|
||||||
|
|
||||||
private int levelHandicap;
|
private int levelHandicap;
|
||||||
|
|
||||||
@ -164,7 +164,7 @@ public class Island implements DataObject {
|
|||||||
* @param flag
|
* @param flag
|
||||||
* @return the rank needed to bypass this flag. Players must have at least this rank to bypass this flag.
|
* @return the rank needed to bypass this flag. Players must have at least this rank to bypass this flag.
|
||||||
*/
|
*/
|
||||||
public int getFlag(Flag flag){
|
public int getFlag(FlagType flag){
|
||||||
if(flags.containsKey(flag)) {
|
if(flags.containsKey(flag)) {
|
||||||
return flags.get(flag);
|
return flags.get(flag);
|
||||||
} else {
|
} else {
|
||||||
@ -176,7 +176,7 @@ public class Island implements DataObject {
|
|||||||
/**
|
/**
|
||||||
* @return the flags
|
* @return the flags
|
||||||
*/
|
*/
|
||||||
public Map<Flag, Integer> getFlags() {
|
public Map<FlagType, Integer> getFlags() {
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -428,7 +428,7 @@ public class Island implements DataObject {
|
|||||||
* @param flag
|
* @param flag
|
||||||
* @return true if allowed, false if not
|
* @return true if allowed, false if not
|
||||||
*/
|
*/
|
||||||
public boolean isAllowed(Flag flag) {
|
public boolean isAllowed(FlagType flag) {
|
||||||
return getFlag(flag) >= 0;
|
return getFlag(flag) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -438,7 +438,7 @@ public class Island implements DataObject {
|
|||||||
* @param flag - flag
|
* @param flag - flag
|
||||||
* @return true if allowed, false if not
|
* @return true if allowed, false if not
|
||||||
*/
|
*/
|
||||||
public boolean isAllowed(User user, Flag flag) {
|
public boolean isAllowed(User user, FlagType flag) {
|
||||||
//Bukkit.getLogger().info("DEBUG: " + flag.getID() + " user score = " + getRank(user) + " flag req = "+ this.getFlagReq(flag));
|
//Bukkit.getLogger().info("DEBUG: " + flag.getID() + " user score = " + getRank(user) + " flag req = "+ this.getFlagReq(flag));
|
||||||
return getRank(user) >= getFlag(flag);
|
return getRank(user) >= getFlag(flag);
|
||||||
}
|
}
|
||||||
@ -515,14 +515,14 @@ public class Island implements DataObject {
|
|||||||
* @param flag
|
* @param flag
|
||||||
* @param value - rank value. If the flag applies to the island, a positive number = true, negative = false
|
* @param value - rank value. If the flag applies to the island, a positive number = true, negative = false
|
||||||
*/
|
*/
|
||||||
public void setFlag(Flag flag, int value){
|
public void setFlag(FlagType flag, int value){
|
||||||
flags.put(flag, value);
|
flags.put(flag, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param flags the flags to set
|
* @param flags the flags to set
|
||||||
*/
|
*/
|
||||||
public void setFlags(Map<Flag, Integer> flags) {
|
public void setFlags(Map<FlagType, Integer> flags) {
|
||||||
this.flags = flags;
|
this.flags = flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.configuration.MemorySection;
|
import org.bukkit.configuration.MemorySection;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serializes the {@link us.tastybento.bskyblock.database.objects.Island#getFlags() getFlags()} and
|
* Serializes the {@link us.tastybento.bskyblock.database.objects.Island#getFlags() getFlags()} and
|
||||||
@ -17,12 +17,12 @@ import us.tastybento.bskyblock.api.flags.Flag;
|
|||||||
* @author tastybento
|
* @author tastybento
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class FlagSerializer implements AdapterInterface<Map<Flag, Integer>, Map<String, Integer>> {
|
public class FlagSerializer implements AdapterInterface<Map<FlagType, Integer>, Map<String, Integer>> {
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Override
|
@Override
|
||||||
public Map<Flag, Integer> serialize(Object object) {
|
public Map<FlagType, Integer> serialize(Object object) {
|
||||||
Map<Flag, Integer> result = new HashMap<>();
|
Map<FlagType, Integer> result = new HashMap<>();
|
||||||
if (object == null) {
|
if (object == null) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -49,8 +49,8 @@ public class FlagSerializer implements AdapterInterface<Map<Flag, Integer>, Map<
|
|||||||
if (object == null) {
|
if (object == null) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
Map<Flag, Integer> flags = (Map<Flag, Integer>)object;
|
Map<FlagType, Integer> flags = (Map<FlagType, Integer>)object;
|
||||||
for (Entry<Flag, Integer> en: flags.entrySet()) {
|
for (Entry<FlagType, Integer> en: flags.entrySet()) {
|
||||||
result.put(en.getKey().getID(), en.getValue());
|
result.put(en.getKey().getID(), en.getValue());
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
@ -16,8 +16,8 @@ import org.bukkit.event.Listener;
|
|||||||
|
|
||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.api.commands.User;
|
import us.tastybento.bskyblock.api.commands.User;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag.FlagType;
|
import us.tastybento.bskyblock.api.flags.FlagType.Type;
|
||||||
import us.tastybento.bskyblock.database.managers.island.IslandsManager;
|
import us.tastybento.bskyblock.database.managers.island.IslandsManager;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ public abstract class AbstractFlagListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Explicitly set the user for the next {@link #checkIsland(Event, Location, Flag)} or {@link #checkIsland(Event, Location, Flag, boolean)}
|
* Explicitly set the user for the next {@link #checkIsland(Event, Location, FlagType)} or {@link #checkIsland(Event, Location, FlagType, boolean)}
|
||||||
* @param user - the User
|
* @param user - the User
|
||||||
*/
|
*/
|
||||||
public AbstractFlagListener setUser(User user) {
|
public AbstractFlagListener setUser(User user) {
|
||||||
@ -106,7 +106,8 @@ public abstract class AbstractFlagListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if loc is in the island worlds
|
* Check if loc is in the island worlds.
|
||||||
|
* (If you are here because of an NPE in your test, then you need to do setPlugin(plugin) for your listener)
|
||||||
* @param loc - location
|
* @param loc - location
|
||||||
* @return true if the location is in the island worlds
|
* @return true if the location is in the island worlds
|
||||||
*/
|
*/
|
||||||
@ -141,7 +142,7 @@ public abstract class AbstractFlagListener implements Listener {
|
|||||||
* @param breakBlocks
|
* @param breakBlocks
|
||||||
* @return true if the check is okay, false if it was disallowed
|
* @return true if the check is okay, false if it was disallowed
|
||||||
*/
|
*/
|
||||||
public boolean checkIsland(Event e, Location loc, Flag breakBlocks) {
|
public boolean checkIsland(Event e, Location loc, FlagType breakBlocks) {
|
||||||
return checkIsland(e, loc, breakBlocks, false);
|
return checkIsland(e, loc, breakBlocks, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,7 +155,7 @@ public abstract class AbstractFlagListener implements Listener {
|
|||||||
* @param silent - if true, no attempt is made to tell the user
|
* @param silent - if true, no attempt is made to tell the user
|
||||||
* @return true if the check is okay, false if it was disallowed
|
* @return true if the check is okay, false if it was disallowed
|
||||||
*/
|
*/
|
||||||
public boolean checkIsland(Event e, Location loc, Flag flag, boolean silent) {
|
public boolean checkIsland(Event e, Location loc, FlagType flag, boolean silent) {
|
||||||
// If this is not an Island World, skip
|
// If this is not an Island World, skip
|
||||||
if (!inWorld(loc)) {
|
if (!inWorld(loc)) {
|
||||||
return true;
|
return true;
|
||||||
@ -162,9 +163,8 @@ public abstract class AbstractFlagListener implements Listener {
|
|||||||
|
|
||||||
// Get the island and if present
|
// Get the island and if present
|
||||||
Optional<Island> island = getIslands().getIslandAt(loc);
|
Optional<Island> island = getIslands().getIslandAt(loc);
|
||||||
|
|
||||||
// Handle Settings Flag
|
// Handle Settings Flag
|
||||||
if (flag.getType().equals(FlagType.SETTING)) {
|
if (flag.getType().equals(Type.SETTING)) {
|
||||||
// If the island exists, return the setting, otherwise return the default setting for this flag
|
// If the island exists, return the setting, otherwise return the default setting for this flag
|
||||||
return island.map(x -> x.isAllowed(flag)).orElse(flag.isDefaultSetting());
|
return island.map(x -> x.isAllowed(flag)).orElse(flag.isDefaultSetting());
|
||||||
}
|
}
|
||||||
@ -181,7 +181,8 @@ public abstract class AbstractFlagListener implements Listener {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Check if the plugin is set in User (required for testing)
|
||||||
|
user.setPlugin(plugin);
|
||||||
|
|
||||||
if (island.isPresent()) {
|
if (island.isPresent()) {
|
||||||
if (!island.get().isAllowed(user, flag)) {
|
if (!island.get().isAllowed(user, flag)) {
|
||||||
@ -194,7 +195,6 @@ public abstract class AbstractFlagListener implements Listener {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// The player is in the world, but not on an island, so general world settings apply
|
// The player is in the world, but not on an island, so general world settings apply
|
||||||
if (!flag.isDefaultSetting()) {
|
if (!flag.isDefaultSetting()) {
|
||||||
noGo(e, silent);
|
noGo(e, silent);
|
||||||
@ -211,7 +211,7 @@ public abstract class AbstractFlagListener implements Listener {
|
|||||||
* @param id
|
* @param id
|
||||||
* @return Flag denoted by the id
|
* @return Flag denoted by the id
|
||||||
*/
|
*/
|
||||||
protected Flag id(String id) {
|
protected FlagType id(String id) {
|
||||||
return plugin.getFlagsManager().getFlagByID(id);
|
return plugin.getFlagsManager().getFlagByID(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ben
|
* @author ben
|
||||||
@ -27,17 +27,17 @@ public class BlockInteractionListener extends AbstractFlagListener {
|
|||||||
}
|
}
|
||||||
switch (e.getClickedBlock().getType()) {
|
switch (e.getClickedBlock().getType()) {
|
||||||
case ANVIL:
|
case ANVIL:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.ANVIL);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.ANVIL);
|
||||||
break;
|
break;
|
||||||
case BEACON:
|
case BEACON:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.BEACON);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.BEACON);
|
||||||
break;
|
break;
|
||||||
case BED_BLOCK:
|
case BED_BLOCK:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.BED);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.BED);
|
||||||
break;
|
break;
|
||||||
case BREWING_STAND:
|
case BREWING_STAND:
|
||||||
case CAULDRON:
|
case CAULDRON:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.BREWING);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.BREWING);
|
||||||
break;
|
break;
|
||||||
case CHEST:
|
case CHEST:
|
||||||
case STORAGE_MINECART:
|
case STORAGE_MINECART:
|
||||||
@ -63,7 +63,7 @@ public class BlockInteractionListener extends AbstractFlagListener {
|
|||||||
case HOPPER:
|
case HOPPER:
|
||||||
case HOPPER_MINECART:
|
case HOPPER_MINECART:
|
||||||
|
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.CHEST);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.CHEST);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ACACIA_DOOR:
|
case ACACIA_DOOR:
|
||||||
@ -77,7 +77,7 @@ public class BlockInteractionListener extends AbstractFlagListener {
|
|||||||
case TRAP_DOOR:
|
case TRAP_DOOR:
|
||||||
case WOODEN_DOOR:
|
case WOODEN_DOOR:
|
||||||
case WOOD_DOOR:
|
case WOOD_DOOR:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.DOOR);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.DOOR);
|
||||||
break;
|
break;
|
||||||
case ACACIA_FENCE_GATE:
|
case ACACIA_FENCE_GATE:
|
||||||
case BIRCH_FENCE_GATE:
|
case BIRCH_FENCE_GATE:
|
||||||
@ -85,29 +85,29 @@ public class BlockInteractionListener extends AbstractFlagListener {
|
|||||||
case FENCE_GATE:
|
case FENCE_GATE:
|
||||||
case JUNGLE_FENCE_GATE:
|
case JUNGLE_FENCE_GATE:
|
||||||
case SPRUCE_FENCE_GATE:
|
case SPRUCE_FENCE_GATE:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.GATE);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.GATE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BURNING_FURNACE:
|
case BURNING_FURNACE:
|
||||||
case FURNACE:
|
case FURNACE:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.FURNACE);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.FURNACE);
|
||||||
break;
|
break;
|
||||||
case ENCHANTMENT_TABLE:
|
case ENCHANTMENT_TABLE:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.ENCHANTING);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.ENCHANTING);
|
||||||
break;
|
break;
|
||||||
case ENDER_CHEST:
|
case ENDER_CHEST:
|
||||||
break;
|
break;
|
||||||
case JUKEBOX:
|
case JUKEBOX:
|
||||||
case NOTE_BLOCK:
|
case NOTE_BLOCK:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.MUSIC);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.MUSIC);
|
||||||
break;
|
break;
|
||||||
case WORKBENCH:
|
case WORKBENCH:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.CRAFTING);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.CRAFTING);
|
||||||
break;
|
break;
|
||||||
case STONE_BUTTON:
|
case STONE_BUTTON:
|
||||||
case WOOD_BUTTON:
|
case WOOD_BUTTON:
|
||||||
case LEVER:
|
case LEVER:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.LEVER_BUTTON);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.LEVER_BUTTON);
|
||||||
break;
|
break;
|
||||||
case DIODE:
|
case DIODE:
|
||||||
case DIODE_BLOCK_OFF:
|
case DIODE_BLOCK_OFF:
|
||||||
@ -116,7 +116,7 @@ public class BlockInteractionListener extends AbstractFlagListener {
|
|||||||
case REDSTONE_COMPARATOR_OFF:
|
case REDSTONE_COMPARATOR_OFF:
|
||||||
case DAYLIGHT_DETECTOR:
|
case DAYLIGHT_DETECTOR:
|
||||||
case DAYLIGHT_DETECTOR_INVERTED:
|
case DAYLIGHT_DETECTOR_INVERTED:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.REDSTONE);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.REDSTONE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -125,10 +125,10 @@ public class BlockInteractionListener extends AbstractFlagListener {
|
|||||||
if (e.getItem() != null) {
|
if (e.getItem() != null) {
|
||||||
switch (e.getItem().getType()) {
|
switch (e.getItem().getType()) {
|
||||||
case ENDER_PEARL:
|
case ENDER_PEARL:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.ENDER_PEARL);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.ENDER_PEARL);
|
||||||
break;
|
break;
|
||||||
case MONSTER_EGG:
|
case MONSTER_EGG:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.SPAWN_EGGS);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.SPAWN_EGGS);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -18,7 +18,7 @@ import org.bukkit.event.vehicle.VehicleDamageEvent;
|
|||||||
import org.bukkit.util.BlockIterator;
|
import org.bukkit.util.BlockIterator;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.commands.User;
|
import us.tastybento.bskyblock.api.commands.User;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
public class BreakBlocksListener extends AbstractFlagListener {
|
public class BreakBlocksListener extends AbstractFlagListener {
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ public class BreakBlocksListener extends AbstractFlagListener {
|
|||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onBlockBreak(final BlockBreakEvent e) {
|
public void onBlockBreak(final BlockBreakEvent e) {
|
||||||
checkIsland(e, e.getBlock().getLocation(), Flags.BREAK_BLOCKS);
|
checkIsland(e, e.getBlock().getLocation(), Flag.BREAK_BLOCKS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -40,7 +40,7 @@ public class BreakBlocksListener extends AbstractFlagListener {
|
|||||||
@EventHandler(priority = EventPriority.LOW)
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
public void onBreakHanging(final HangingBreakByEntityEvent e) {
|
public void onBreakHanging(final HangingBreakByEntityEvent e) {
|
||||||
if (e.getRemover() instanceof Player) {
|
if (e.getRemover() instanceof Player) {
|
||||||
setUser(User.getInstance(e.getRemover())).checkIsland(e, e.getEntity().getLocation(), Flags.BREAK_BLOCKS);
|
setUser(User.getInstance(e.getRemover())).checkIsland(e, e.getEntity().getLocation(), Flag.BREAK_BLOCKS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ public class BreakBlocksListener extends AbstractFlagListener {
|
|||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
lastBlock = iter.next();
|
lastBlock = iter.next();
|
||||||
if (lastBlock.getType().equals(Material.SKULL)) {
|
if (lastBlock.getType().equals(Material.SKULL)) {
|
||||||
checkIsland(e, lastBlock.getLocation(), Flags.BREAK_BLOCKS);
|
checkIsland(e, lastBlock.getLocation(), Flag.BREAK_BLOCKS);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -73,7 +73,7 @@ public class BreakBlocksListener extends AbstractFlagListener {
|
|||||||
case CAKE_BLOCK:
|
case CAKE_BLOCK:
|
||||||
case DRAGON_EGG:
|
case DRAGON_EGG:
|
||||||
case MOB_SPAWNER:
|
case MOB_SPAWNER:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.BREAK_BLOCKS);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.BREAK_BLOCKS);
|
||||||
return;
|
return;
|
||||||
case BED_BLOCK:
|
case BED_BLOCK:
|
||||||
if (e.getPlayer().getWorld().getEnvironment().equals(Environment.NETHER)) {
|
if (e.getPlayer().getWorld().getEnvironment().equals(Environment.NETHER)) {
|
||||||
@ -97,7 +97,7 @@ public class BreakBlocksListener extends AbstractFlagListener {
|
|||||||
User user = User.getInstance((Player) e.getAttacker());
|
User user = User.getInstance((Player) e.getAttacker());
|
||||||
// Get the island and if present, check the flag, react if required and return
|
// Get the island and if present, check the flag, react if required and return
|
||||||
getIslands().getIslandAt(e.getVehicle().getLocation()).ifPresent(x -> {
|
getIslands().getIslandAt(e.getVehicle().getLocation()).ifPresent(x -> {
|
||||||
if (!x.isAllowed(user, Flags.BREAK_BLOCKS)) {
|
if (!x.isAllowed(user, Flag.BREAK_BLOCKS)) {
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
user.sendMessage("protection.protected");
|
user.sendMessage("protection.protected");
|
||||||
}
|
}
|
||||||
@ -105,7 +105,7 @@ public class BreakBlocksListener extends AbstractFlagListener {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// The player is in the world, but not on an island, so general world settings apply
|
// The player is in the world, but not on an island, so general world settings apply
|
||||||
if (!Flags.BREAK_BLOCKS.isDefaultSetting()) {
|
if (!Flag.BREAK_BLOCKS.isDefaultSetting()) {
|
||||||
e.setCancelled(true);
|
e.setCancelled(true);
|
||||||
user.sendMessage("protection.protected");
|
user.sendMessage("protection.protected");
|
||||||
}
|
}
|
||||||
@ -125,12 +125,12 @@ public class BreakBlocksListener extends AbstractFlagListener {
|
|||||||
|
|
||||||
// Get the attacker
|
// Get the attacker
|
||||||
if (e.getDamager() instanceof Player) {
|
if (e.getDamager() instanceof Player) {
|
||||||
setUser(User.getInstance(e.getDamager())).checkIsland(e, e.getEntity().getLocation(), Flags.BREAK_BLOCKS);
|
setUser(User.getInstance(e.getDamager())).checkIsland(e, e.getEntity().getLocation(), Flag.BREAK_BLOCKS);
|
||||||
} else if (e.getDamager() instanceof Projectile) {
|
} else if (e.getDamager() instanceof Projectile) {
|
||||||
// Find out who fired the arrow
|
// Find out who fired the arrow
|
||||||
Projectile p = (Projectile) e.getDamager();
|
Projectile p = (Projectile) e.getDamager();
|
||||||
if (p.getShooter() instanceof Player) {
|
if (p.getShooter() instanceof Player) {
|
||||||
if (!setUser(User.getInstance((Player)p.getShooter())).checkIsland(e, e.getEntity().getLocation(), Flags.BREAK_BLOCKS)) {
|
if (!setUser(User.getInstance((Player)p.getShooter())).checkIsland(e, e.getEntity().getLocation(), Flag.BREAK_BLOCKS)) {
|
||||||
e.getEntity().setFireTicks(0);
|
e.getEntity().setFireTicks(0);
|
||||||
e.getDamager().remove();
|
e.getDamager().remove();
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ import org.bukkit.event.player.PlayerInteractAtEntityEvent;
|
|||||||
import org.bukkit.inventory.EquipmentSlot;
|
import org.bukkit.inventory.EquipmentSlot;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles breeding protection
|
* Handles breeding protection
|
||||||
@ -43,7 +43,7 @@ public class BreedingListener extends AbstractFlagListener {
|
|||||||
inHand = e.getPlayer().getInventory().getItemInOffHand();
|
inHand = e.getPlayer().getInventory().getItemInOffHand();
|
||||||
}
|
}
|
||||||
if (inHand != null && BREEDING_ITEMS.contains(inHand.getType())) {
|
if (inHand != null && BREEDING_ITEMS.contains(inHand.getType())) {
|
||||||
checkIsland(e, e.getRightClicked().getLocation(), Flags.BREEDING);
|
checkIsland(e, e.getRightClicked().getLocation(), Flag.BREEDING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.player.PlayerBucketEmptyEvent;
|
import org.bukkit.event.player.PlayerBucketEmptyEvent;
|
||||||
import org.bukkit.event.player.PlayerBucketFillEvent;
|
import org.bukkit.event.player.PlayerBucketFillEvent;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles interaction with beds
|
* Handles interaction with beds
|
||||||
@ -29,7 +29,7 @@ public class BucketListener extends AbstractFlagListener {
|
|||||||
if (e.getBlockClicked() != null) {
|
if (e.getBlockClicked() != null) {
|
||||||
// This is where the water or lava actually will be dumped
|
// This is where the water or lava actually will be dumped
|
||||||
Block dumpBlock = e.getBlockClicked().getRelative(e.getBlockFace());
|
Block dumpBlock = e.getBlockClicked().getRelative(e.getBlockFace());
|
||||||
checkIsland(e, dumpBlock.getLocation(), Flags.BUCKET);
|
checkIsland(e, dumpBlock.getLocation(), Flag.BUCKET);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,17 +40,17 @@ public class BucketListener extends AbstractFlagListener {
|
|||||||
@EventHandler(priority = EventPriority.LOW)
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
public void onBucketFill(final PlayerBucketFillEvent e) {
|
public void onBucketFill(final PlayerBucketFillEvent e) {
|
||||||
// Check filling of various liquids
|
// Check filling of various liquids
|
||||||
if (e.getItemStack().getType().equals(Material.LAVA_BUCKET) && (!checkIsland(e, e.getBlockClicked().getLocation(), Flags.COLLECT_LAVA))) {
|
if (e.getItemStack().getType().equals(Material.LAVA_BUCKET) && (!checkIsland(e, e.getBlockClicked().getLocation(), Flag.COLLECT_LAVA))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (e.getItemStack().getType().equals(Material.WATER_BUCKET) && (!checkIsland(e, e.getBlockClicked().getLocation(), Flags.COLLECT_WATER))) {
|
if (e.getItemStack().getType().equals(Material.WATER_BUCKET) && (!checkIsland(e, e.getBlockClicked().getLocation(), Flag.COLLECT_WATER))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (e.getItemStack().getType().equals(Material.MILK_BUCKET) && (!checkIsland(e, e.getBlockClicked().getLocation(), Flags.MILKING))) {
|
if (e.getItemStack().getType().equals(Material.MILK_BUCKET) && (!checkIsland(e, e.getBlockClicked().getLocation(), Flag.MILKING))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Check general bucket use
|
// Check general bucket use
|
||||||
checkIsland(e, e.getBlockClicked().getLocation(), Flags.BUCKET);
|
checkIsland(e, e.getBlockClicked().getLocation(), Flag.BUCKET);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.player.PlayerEggThrowEvent;
|
import org.bukkit.event.player.PlayerEggThrowEvent;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles throwing regular eggs (not spawn eggs)
|
* Handles throwing regular eggs (not spawn eggs)
|
||||||
@ -22,7 +22,7 @@ public class EggListener extends AbstractFlagListener {
|
|||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onEggThrow(PlayerEggThrowEvent e) {
|
public void onEggThrow(PlayerEggThrowEvent e) {
|
||||||
if (!checkIsland(e, e.getEgg().getLocation(), Flags.EGGS)) {
|
if (!checkIsland(e, e.getEgg().getLocation(), Flag.EGGS)) {
|
||||||
e.setHatching(false);
|
e.setHatching(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
|
import org.bukkit.event.player.PlayerInteractAtEntityEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles interaction with entities like armor stands
|
* Handles interaction with entities like armor stands
|
||||||
@ -25,7 +25,7 @@ public class EntityInteractListener extends AbstractFlagListener {
|
|||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
|
||||||
public void onPlayerInteract(final PlayerInteractAtEntityEvent e) {
|
public void onPlayerInteract(final PlayerInteractAtEntityEvent e) {
|
||||||
if (e.getRightClicked() instanceof ArmorStand) {
|
if (e.getRightClicked() instanceof ArmorStand) {
|
||||||
checkIsland(e, e.getRightClicked().getLocation(), Flags.ARMOR_STAND);
|
checkIsland(e, e.getRightClicked().getLocation(), Flag.ARMOR_STAND);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,11 +33,11 @@ public class EntityInteractListener extends AbstractFlagListener {
|
|||||||
public void onPlayerHitEntity(PlayerInteractEntityEvent e) {
|
public void onPlayerHitEntity(PlayerInteractEntityEvent e) {
|
||||||
// Animal riding
|
// Animal riding
|
||||||
if (e.getRightClicked() instanceof Vehicle && e.getRightClicked() instanceof Animals) {
|
if (e.getRightClicked() instanceof Vehicle && e.getRightClicked() instanceof Animals) {
|
||||||
checkIsland(e, e.getRightClicked().getLocation(), Flags.RIDING);
|
checkIsland(e, e.getRightClicked().getLocation(), Flag.RIDING);
|
||||||
}
|
}
|
||||||
// Villager trading
|
// Villager trading
|
||||||
if (e.getRightClicked().getType().equals(EntityType.VILLAGER)) {
|
if (e.getRightClicked().getType().equals(EntityType.VILLAGER)) {
|
||||||
checkIsland(e, e.getRightClicked().getLocation(), Flags.TRADING);
|
checkIsland(e, e.getRightClicked().getLocation(), Flag.TRADING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,12 +3,13 @@
|
|||||||
*/
|
*/
|
||||||
package us.tastybento.bskyblock.listeners.flags;
|
package us.tastybento.bskyblock.listeners.flags;
|
||||||
|
|
||||||
import java.util.Optional;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Projectile;
|
import org.bukkit.entity.Projectile;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
@ -20,8 +21,8 @@ import org.bukkit.event.player.PlayerInteractEvent;
|
|||||||
import org.bukkit.util.BlockIterator;
|
import org.bukkit.util.BlockIterator;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.commands.User;
|
import us.tastybento.bskyblock.api.commands.User;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles fire
|
* Handles fire
|
||||||
@ -30,26 +31,36 @@ import us.tastybento.bskyblock.lists.Flags;
|
|||||||
*/
|
*/
|
||||||
public class FireListener extends AbstractFlagListener {
|
public class FireListener extends AbstractFlagListener {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if fire is allowed. If not, cancels the action
|
||||||
|
* @param e - cancellable event
|
||||||
|
* @param l - location
|
||||||
|
* @param flag - flag to check
|
||||||
|
* @return - true if cancelled, false if not
|
||||||
|
*/
|
||||||
|
public boolean checkFire(Cancellable e, Location l, FlagType flag) {
|
||||||
|
// Check world
|
||||||
|
if (!inWorld(l)) {
|
||||||
|
//Bukkit.getLogger().info("DEBUG: not in world");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
//Bukkit.getLogger().info("DEBUG: in world");
|
||||||
|
// Check if the island exists and if fire is allowed
|
||||||
|
boolean cancel = getIslands().getIslandAt(l).map(i -> {
|
||||||
|
return !i.isAllowed(flag);
|
||||||
|
}).orElse(!flag.isDefaultSetting());
|
||||||
|
|
||||||
|
e.setCancelled(cancel);
|
||||||
|
return cancel;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prevents fire spread
|
* Prevents fire spread
|
||||||
* @param e - event
|
* @param e - event
|
||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onBlockBurn(BlockBurnEvent e) {
|
public boolean onBlockBurn(BlockBurnEvent e) {
|
||||||
if (!inWorld(e.getBlock().getLocation())) {
|
return checkFire(e, e.getBlock().getLocation(), Flag.FIRE);
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Check if the island exists and if fire is allowed
|
|
||||||
Optional<Island> island = getIslands().getIslandAt(e.getBlock().getLocation());
|
|
||||||
island.ifPresent(x -> {
|
|
||||||
if (!x.isAllowed(Flags.FIRE_SPREAD)) {
|
|
||||||
e.setCancelled(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// If not on an island, check the default setting
|
|
||||||
if (!island.isPresent() && !Flags.FIRE_SPREAD.isDefaultSetting()) {
|
|
||||||
e.setCancelled(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -57,23 +68,8 @@ public class FireListener extends AbstractFlagListener {
|
|||||||
* @param e - event
|
* @param e - event
|
||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onBlockSpread(BlockSpreadEvent e) {
|
public boolean onBlockSpread(BlockSpreadEvent e) {
|
||||||
if (e.getSource().getType().equals(Material.FIRE)) {
|
return e.getSource().getType().equals(Material.FIRE) ? checkFire(e, e.getBlock().getLocation(), Flag.FIRE_SPREAD) : false;
|
||||||
if (!inWorld(e.getBlock().getLocation())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Check if the island exists and if fire is allowed
|
|
||||||
Optional<Island> island = getIslands().getIslandAt(e.getBlock().getLocation());
|
|
||||||
island.ifPresent(x -> {
|
|
||||||
if (!x.isAllowed(Flags.FIRE_SPREAD)) {
|
|
||||||
e.setCancelled(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// If not on an island, check the default setting
|
|
||||||
if (!island.isPresent() && !Flags.FIRE_SPREAD.isDefaultSetting()) {
|
|
||||||
e.setCancelled(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -81,26 +77,9 @@ public class FireListener extends AbstractFlagListener {
|
|||||||
* @param e - event
|
* @param e - event
|
||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onBlockIgnite(BlockIgniteEvent e) {
|
public boolean onBlockIgnite(BlockIgniteEvent e) {
|
||||||
if (!inWorld(e.getBlock().getLocation())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Check if this is a portal lighting - that is allowed any time
|
// Check if this is a portal lighting - that is allowed any time
|
||||||
if (e.getBlock().getType().equals(Material.OBSIDIAN)) {
|
return e.getBlock().getType().equals(Material.OBSIDIAN) ? false : checkFire(e, e.getBlock().getLocation(), Flag.FIRE);
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Check if the island exists and if fire is allowed
|
|
||||||
Optional<Island> island = getIslands().getIslandAt(e.getBlock().getLocation());
|
|
||||||
island.ifPresent(x -> {
|
|
||||||
if (!x.isAllowed(Flags.FIRE)) {
|
|
||||||
e.setCancelled(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// If not on an island, check the default setting
|
|
||||||
if (!island.isPresent() && !Flags.FIRE.isDefaultSetting()) {
|
|
||||||
e.setCancelled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -110,19 +89,19 @@ public class FireListener extends AbstractFlagListener {
|
|||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onPlayerInteract(PlayerInteractEvent e) {
|
public void onPlayerInteract(PlayerInteractEvent e) {
|
||||||
if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK) && e.getMaterial() != null && e.getMaterial().equals(Material.FLINT_AND_STEEL)) {
|
if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK) && e.getMaterial() != null && e.getMaterial().equals(Material.FLINT_AND_STEEL)) {
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.FIRE);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.FIRE);
|
||||||
}
|
}
|
||||||
// Look along player's sight line to see if any blocks are fire. Players can hit fire out quite a long way away.
|
// Look along player's sight line to see if any blocks are fire. Players can hit fire out quite a long way away.
|
||||||
try {
|
try {
|
||||||
BlockIterator iter = new BlockIterator(e.getPlayer(), 10);
|
BlockIterator iter = new BlockIterator(e.getPlayer(), 10);
|
||||||
Block lastBlock = iter.next();
|
|
||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
|
Block lastBlock = iter.next();
|
||||||
lastBlock = iter.next();
|
lastBlock = iter.next();
|
||||||
if (lastBlock.equals(e.getClickedBlock())) {
|
if (lastBlock.equals(e.getClickedBlock())) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (lastBlock.getType().equals(Material.FIRE)) {
|
if (lastBlock.getType().equals(Material.FIRE)) {
|
||||||
checkIsland(e, lastBlock.getLocation(), Flags.FIRE_EXTINGUISH);
|
checkIsland(e, lastBlock.getLocation(), Flag.FIRE_EXTINGUISH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
@ -134,49 +113,48 @@ public class FireListener extends AbstractFlagListener {
|
|||||||
* Protect TNT.
|
* Protect TNT.
|
||||||
* Note that allowing TNT to explode is governed by the Break Blocks flag.
|
* Note that allowing TNT to explode is governed by the Break Blocks flag.
|
||||||
* @param e - event
|
* @param e - event
|
||||||
|
* @return true if cancelled
|
||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onTNTPrimed(EntityChangeBlockEvent e) {
|
public boolean onTNTPrimed(EntityChangeBlockEvent e) {
|
||||||
|
//Bukkit.getLogger().info("DEBUG: " + e.getBlock().getType());
|
||||||
|
return e.getBlock().getType().equals(Material.TNT) ? checkFire(e, e.getBlock().getLocation(), Flag.FIRE) : false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Protect TNT from being set light by a fire arrow
|
||||||
|
* @param e
|
||||||
|
* @return true if cancelled
|
||||||
|
*/
|
||||||
|
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
|
||||||
|
public boolean onTNTDamage(EntityChangeBlockEvent e) {
|
||||||
// Check world
|
// Check world
|
||||||
if (!inWorld(e.getBlock().getLocation())) {
|
if (!e.getBlock().getType().equals(Material.TNT) || !inWorld(e.getBlock().getLocation())) {
|
||||||
return;
|
Bukkit.getLogger().info("DEBUG: " + e.getBlock().getType());
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
// Check for TNT
|
Bukkit.getLogger().info("DEBUG: in world");
|
||||||
if (!e.getBlock().getType().equals(Material.TNT)) {
|
|
||||||
//plugin.getLogger().info("DEBUG: not tnt");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Check if the island exists and if fire is allowed
|
|
||||||
Optional<Island> island = getIslands().getIslandAt(e.getBlock().getLocation());
|
|
||||||
island.ifPresent(x -> {
|
|
||||||
if (!x.isAllowed(Flags.FIRE)) {
|
|
||||||
e.setCancelled(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// If not on an island, check the default setting
|
|
||||||
if (!island.isPresent() && !Flags.FIRE.isDefaultSetting()) {
|
|
||||||
e.setCancelled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If either of these canceled the event, return
|
|
||||||
if (e.isCancelled()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Stop TNT from being damaged if it is being caused by a visitor with a flaming arrow
|
// Stop TNT from being damaged if it is being caused by a visitor with a flaming arrow
|
||||||
if (e.getEntity() instanceof Projectile) {
|
if (e.getEntity() instanceof Projectile) {
|
||||||
|
Bukkit.getLogger().info("DEBUG: projectile");
|
||||||
Projectile projectile = (Projectile) e.getEntity();
|
Projectile projectile = (Projectile) e.getEntity();
|
||||||
// Find out who fired it
|
// Find out who fired it
|
||||||
if (projectile.getShooter() instanceof Player) {
|
if (projectile.getShooter() instanceof Player && projectile.getFireTicks() > 0) {
|
||||||
if (projectile.getFireTicks() > 0) {
|
Bukkit.getLogger().info("DEBUG: player fired a fire arrow");
|
||||||
Player shooter = (Player)projectile.getShooter();
|
Player shooter = (Player)projectile.getShooter();
|
||||||
if (setUser(User.getInstance(shooter)).checkIsland(e, e.getBlock().getLocation(), Flags.BREAK_BLOCKS)) {
|
setUser(User.getInstance(shooter));
|
||||||
// Remove the arrow
|
Bukkit.getLogger().info("DEBUG: block loc = " + e.getBlock().getLocation());
|
||||||
projectile.remove();
|
Bukkit.getLogger().info("DEBUG: " + checkIsland(e, e.getBlock().getLocation(), Flag.BREAK_BLOCKS));
|
||||||
}
|
if (!setUser(User.getInstance(shooter)).checkIsland(e, e.getBlock().getLocation(), Flag.BREAK_BLOCKS)) {
|
||||||
|
Bukkit.getLogger().info("DEBUG: remove arrow");
|
||||||
|
// Remove the arrow
|
||||||
|
projectile.remove();
|
||||||
|
e.setCancelled(true);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -31,8 +31,8 @@ import org.bukkit.inventory.EquipmentSlot;
|
|||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.commands.User;
|
import us.tastybento.bskyblock.api.commands.User;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles hurting of monsters and animals directly and indirectly
|
* Handles hurting of monsters and animals directly and indirectly
|
||||||
@ -54,9 +54,9 @@ public class HurtingListener extends AbstractFlagListener {
|
|||||||
// Mobs being hurt
|
// Mobs being hurt
|
||||||
if (e.getEntity() instanceof Animals || e.getEntity() instanceof IronGolem || e.getEntity() instanceof Snowman
|
if (e.getEntity() instanceof Animals || e.getEntity() instanceof IronGolem || e.getEntity() instanceof Snowman
|
||||||
|| e.getEntity() instanceof Villager) {
|
|| e.getEntity() instanceof Villager) {
|
||||||
respond(e, e.getDamager(), Flags.HURT_MOBS);
|
respond(e, e.getDamager(), Flag.HURT_MOBS);
|
||||||
} else if (e.getEntity() instanceof Monster || e.getEntity() instanceof Squid || e.getEntity() instanceof Slime) {
|
} else if (e.getEntity() instanceof Monster || e.getEntity() instanceof Squid || e.getEntity() instanceof Slime) {
|
||||||
respond(e, e.getDamager(), Flags.HURT_MONSTERS);
|
respond(e, e.getDamager(), Flag.HURT_MONSTERS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,7 +66,7 @@ public class HurtingListener extends AbstractFlagListener {
|
|||||||
* @param damager
|
* @param damager
|
||||||
* @param hurtMobs
|
* @param hurtMobs
|
||||||
*/
|
*/
|
||||||
private void respond(Event event, Entity damager, Flag hurtMobs) {
|
private void respond(Event event, Entity damager, FlagType hurtMobs) {
|
||||||
// Get the attacker
|
// Get the attacker
|
||||||
if (damager instanceof Player) {
|
if (damager instanceof Player) {
|
||||||
setUser(User.getInstance(damager)).checkIsland(event, damager.getLocation(), hurtMobs);
|
setUser(User.getInstance(damager)).checkIsland(event, damager.getLocation(), hurtMobs);
|
||||||
@ -94,13 +94,13 @@ public class HurtingListener extends AbstractFlagListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((e.getCaught() instanceof Animals || e.getCaught() instanceof IronGolem || e.getCaught() instanceof Snowman
|
if ((e.getCaught() instanceof Animals || e.getCaught() instanceof IronGolem || e.getCaught() instanceof Snowman
|
||||||
|| e.getCaught() instanceof Villager) && checkIsland(e, e.getCaught().getLocation(), Flags.HURT_MONSTERS)) {
|
|| e.getCaught() instanceof Villager) && checkIsland(e, e.getCaught().getLocation(), Flag.HURT_MONSTERS)) {
|
||||||
e.getHook().remove();
|
e.getHook().remove();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((e.getCaught() instanceof Monster || e.getCaught() instanceof Squid || e.getCaught() instanceof Slime)
|
if ((e.getCaught() instanceof Monster || e.getCaught() instanceof Squid || e.getCaught() instanceof Slime)
|
||||||
&& checkIsland(e, e.getCaught().getLocation(), Flags.HURT_MONSTERS)) {
|
&& checkIsland(e, e.getCaught().getLocation(), Flag.HURT_MONSTERS)) {
|
||||||
e.getHook().remove();
|
e.getHook().remove();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -115,7 +115,7 @@ public class HurtingListener extends AbstractFlagListener {
|
|||||||
if (e.getRightClicked() instanceof Animals) {
|
if (e.getRightClicked() instanceof Animals) {
|
||||||
if ((e.getHand().equals(EquipmentSlot.HAND) && e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.COOKIE))
|
if ((e.getHand().equals(EquipmentSlot.HAND) && e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.COOKIE))
|
||||||
|| (e.getHand().equals(EquipmentSlot.OFF_HAND) && e.getPlayer().getInventory().getItemInOffHand().getType().equals(Material.COOKIE))) {
|
|| (e.getHand().equals(EquipmentSlot.OFF_HAND) && e.getPlayer().getInventory().getItemInOffHand().getType().equals(Material.COOKIE))) {
|
||||||
checkIsland(e, e.getRightClicked().getLocation(), Flags.HURT_MOBS);
|
checkIsland(e, e.getRightClicked().getLocation(), Flag.HURT_MOBS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -138,7 +138,7 @@ public class HurtingListener extends AbstractFlagListener {
|
|||||||
}
|
}
|
||||||
// Monsters being hurt
|
// Monsters being hurt
|
||||||
if (entity instanceof Monster || entity instanceof Slime || entity instanceof Squid) {
|
if (entity instanceof Monster || entity instanceof Slime || entity instanceof Squid) {
|
||||||
if (!setUser(User.getInstance(attacker)).checkIsland(e, entity.getLocation(), Flags.HURT_MONSTERS)) {
|
if (!setUser(User.getInstance(attacker)).checkIsland(e, entity.getLocation(), Flag.HURT_MONSTERS)) {
|
||||||
for (PotionEffect effect : e.getPotion().getEffects()) {
|
for (PotionEffect effect : e.getPotion().getEffects()) {
|
||||||
entity.removePotionEffect(effect.getType());
|
entity.removePotionEffect(effect.getType());
|
||||||
}
|
}
|
||||||
@ -148,7 +148,7 @@ public class HurtingListener extends AbstractFlagListener {
|
|||||||
// Mobs being hurt
|
// Mobs being hurt
|
||||||
if (entity instanceof Animals || entity instanceof IronGolem || entity instanceof Snowman
|
if (entity instanceof Animals || entity instanceof IronGolem || entity instanceof Snowman
|
||||||
|| entity instanceof Villager) {
|
|| entity instanceof Villager) {
|
||||||
if (!checkIsland(e, entity.getLocation(), Flags.HURT_MONSTERS)) {
|
if (!checkIsland(e, entity.getLocation(), Flag.HURT_MONSTERS)) {
|
||||||
for (PotionEffect effect : e.getPotion().getEffects()) {
|
for (PotionEffect effect : e.getPotion().getEffects()) {
|
||||||
entity.removePotionEffect(effect.getType());
|
entity.removePotionEffect(effect.getType());
|
||||||
}
|
}
|
||||||
@ -189,12 +189,12 @@ public class HurtingListener extends AbstractFlagListener {
|
|||||||
Entity entity = e.getEntity();
|
Entity entity = e.getEntity();
|
||||||
// Monsters being hurt
|
// Monsters being hurt
|
||||||
if (entity instanceof Monster || entity instanceof Slime || entity instanceof Squid) {
|
if (entity instanceof Monster || entity instanceof Slime || entity instanceof Squid) {
|
||||||
checkIsland(e, entity.getLocation(), Flags.HURT_MONSTERS);
|
checkIsland(e, entity.getLocation(), Flag.HURT_MONSTERS);
|
||||||
}
|
}
|
||||||
// Mobs being hurt
|
// Mobs being hurt
|
||||||
if (entity instanceof Animals || entity instanceof IronGolem || entity instanceof Snowman
|
if (entity instanceof Animals || entity instanceof IronGolem || entity instanceof Snowman
|
||||||
|| entity instanceof Villager) {
|
|| entity instanceof Villager) {
|
||||||
checkIsland(e, entity.getLocation(), Flags.HURT_MONSTERS);
|
checkIsland(e, entity.getLocation(), Flag.HURT_MONSTERS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.commands.User;
|
import us.tastybento.bskyblock.api.commands.User;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles inventory protection
|
* Handles inventory protection
|
||||||
@ -36,23 +36,23 @@ public class InventoryListener extends AbstractFlagListener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (e.getInventory().getHolder() instanceof Animals) {
|
if (e.getInventory().getHolder() instanceof Animals) {
|
||||||
checkIsland(e, e.getInventory().getLocation(), Flags.MOUNT_INVENTORY);
|
checkIsland(e, e.getInventory().getLocation(), Flag.MOUNT_INVENTORY);
|
||||||
}
|
}
|
||||||
else if (e.getInventory().getHolder() instanceof Chest
|
else if (e.getInventory().getHolder() instanceof Chest
|
||||||
|| e.getInventory().getHolder() instanceof Dispenser
|
|| e.getInventory().getHolder() instanceof Dispenser
|
||||||
|| e.getInventory().getHolder() instanceof Hopper
|
|| e.getInventory().getHolder() instanceof Hopper
|
||||||
|| e.getInventory().getHolder() instanceof Dropper
|
|| e.getInventory().getHolder() instanceof Dropper
|
||||||
|| e.getInventory().getHolder() instanceof ShulkerBox) {
|
|| e.getInventory().getHolder() instanceof ShulkerBox) {
|
||||||
setUser(User.getInstance(e.getWhoClicked())).checkIsland(e, e.getInventory().getLocation(), Flags.CHEST);
|
setUser(User.getInstance(e.getWhoClicked())).checkIsland(e, e.getInventory().getLocation(), Flag.CHEST);
|
||||||
}
|
}
|
||||||
else if (e.getInventory().getHolder() instanceof Furnace) {
|
else if (e.getInventory().getHolder() instanceof Furnace) {
|
||||||
setUser(User.getInstance(e.getWhoClicked())).checkIsland(e, e.getInventory().getLocation(), Flags.FURNACE);
|
setUser(User.getInstance(e.getWhoClicked())).checkIsland(e, e.getInventory().getLocation(), Flag.FURNACE);
|
||||||
}
|
}
|
||||||
else if (e.getInventory().getHolder() instanceof BrewingStand) {
|
else if (e.getInventory().getHolder() instanceof BrewingStand) {
|
||||||
setUser(User.getInstance(e.getWhoClicked())).checkIsland(e, e.getInventory().getLocation(), Flags.BREWING);
|
setUser(User.getInstance(e.getWhoClicked())).checkIsland(e, e.getInventory().getLocation(), Flag.BREWING);
|
||||||
}
|
}
|
||||||
else if (e.getInventory().getHolder() instanceof Beacon) {
|
else if (e.getInventory().getHolder() instanceof Beacon) {
|
||||||
setUser(User.getInstance(e.getWhoClicked())).checkIsland(e, e.getInventory().getLocation(), Flags.BEACON);
|
setUser(User.getInstance(e.getWhoClicked())).checkIsland(e, e.getInventory().getLocation(), Flag.BEACON);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ import org.bukkit.event.entity.EntityPickupItemEvent;
|
|||||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.commands.User;
|
import us.tastybento.bskyblock.api.commands.User;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author tastybento
|
* @author tastybento
|
||||||
@ -23,7 +23,7 @@ public class ItemDropPickUpListener extends AbstractFlagListener {
|
|||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onVisitorDrop(PlayerDropItemEvent e) {
|
public void onVisitorDrop(PlayerDropItemEvent e) {
|
||||||
checkIsland(e, e.getItemDrop().getLocation(), Flags.ITEM_DROP);
|
checkIsland(e, e.getItemDrop().getLocation(), Flag.ITEM_DROP);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -33,7 +33,7 @@ public class ItemDropPickUpListener extends AbstractFlagListener {
|
|||||||
public void onVisitorPickup(EntityPickupItemEvent e) {
|
public void onVisitorPickup(EntityPickupItemEvent e) {
|
||||||
if (e.getEntity() instanceof Player) {
|
if (e.getEntity() instanceof Player) {
|
||||||
// Disallow, but don't tell the player an error
|
// Disallow, but don't tell the player an error
|
||||||
setUser(User.getInstance(e.getEntity())).checkIsland(e, e.getItem().getLocation(), Flags.ITEM_PICKUP, true);
|
setUser(User.getInstance(e.getEntity())).checkIsland(e, e.getItem().getLocation(), Flag.ITEM_PICKUP, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ import org.bukkit.event.entity.PlayerLeashEntityEvent;
|
|||||||
import org.bukkit.event.hanging.HangingPlaceEvent;
|
import org.bukkit.event.hanging.HangingPlaceEvent;
|
||||||
import org.bukkit.event.player.PlayerUnleashEntityEvent;
|
import org.bukkit.event.player.PlayerUnleashEntityEvent;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author tastybento
|
* @author tastybento
|
||||||
@ -25,7 +25,7 @@ public class LeashListener extends AbstractFlagListener {
|
|||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onLeashUse(PlayerLeashEntityEvent e) {
|
public void onLeashUse(PlayerLeashEntityEvent e) {
|
||||||
checkIsland(e, e.getEntity().getLocation(),Flags.LEASH);
|
checkIsland(e, e.getEntity().getLocation(),Flag.LEASH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ public class LeashListener extends AbstractFlagListener {
|
|||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onLeashUse(PlayerUnleashEntityEvent e) {
|
public void onLeashUse(PlayerUnleashEntityEvent e) {
|
||||||
checkIsland(e, e.getEntity().getLocation(),Flags.LEASH);
|
checkIsland(e, e.getEntity().getLocation(),Flag.LEASH);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,7 +46,7 @@ public class LeashListener extends AbstractFlagListener {
|
|||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onPlayerLeashHitch(final HangingPlaceEvent e) {
|
public void onPlayerLeashHitch(final HangingPlaceEvent e) {
|
||||||
if (e.getEntity() != null && e.getEntity().getType().equals(EntityType.LEASH_HITCH)) {
|
if (e.getEntity() != null && e.getEntity().getType().equals(EntityType.LEASH_HITCH)) {
|
||||||
checkIsland(e, e.getEntity().getLocation(),Flags.LEASH);
|
checkIsland(e, e.getEntity().getLocation(),Flag.LEASH);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ import org.bukkit.event.entity.CreatureSpawnEvent;
|
|||||||
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
|
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles natural mob spawning.
|
* Handles natural mob spawning.
|
||||||
@ -47,14 +47,14 @@ public class MobSpawnListener extends AbstractFlagListener {
|
|||||||
// Cancel the event if these are true
|
// Cancel the event if these are true
|
||||||
if ((e.getEntity() instanceof Monster || e.getEntity() instanceof Slime)) {
|
if ((e.getEntity() instanceof Monster || e.getEntity() instanceof Slime)) {
|
||||||
boolean cancel = island.map(i -> {
|
boolean cancel = island.map(i -> {
|
||||||
return !i.isAllowed(Flags.MOB_SPAWN);
|
return !i.isAllowed(Flag.MOB_SPAWN);
|
||||||
}).orElse(!Flags.MOB_SPAWN.isDefaultSetting());
|
}).orElse(!Flag.MOB_SPAWN.isDefaultSetting());
|
||||||
e.setCancelled(cancel);
|
e.setCancelled(cancel);
|
||||||
return cancel;
|
return cancel;
|
||||||
} else if (e.getEntity() instanceof Animals) {
|
} else if (e.getEntity() instanceof Animals) {
|
||||||
boolean cancel = island.map(i -> {
|
boolean cancel = island.map(i -> {
|
||||||
return !i.isAllowed(Flags.MONSTER_SPAWN);
|
return !i.isAllowed(Flag.MONSTER_SPAWN);
|
||||||
}).orElse(!Flags.MONSTER_SPAWN.isDefaultSetting());
|
}).orElse(!Flag.MONSTER_SPAWN.isDefaultSetting());
|
||||||
e.setCancelled(cancel);
|
e.setCancelled(cancel);
|
||||||
return cancel;
|
return cancel;
|
||||||
}
|
}
|
||||||
|
@ -21,8 +21,8 @@ import org.bukkit.event.player.PlayerFishEvent;
|
|||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.commands.User;
|
import us.tastybento.bskyblock.api.commands.User;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: PVP is different to other flags - it's either allowed for everyone or not allowed for everyone. Currently owners can hit visitors.
|
* TODO: PVP is different to other flags - it's either allowed for everyone or not allowed for everyone. Currently owners can hit visitors.
|
||||||
@ -44,17 +44,17 @@ public class PVPListener extends AbstractFlagListener {
|
|||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onEntityDamage(final EntityDamageByEntityEvent e) {
|
public void onEntityDamage(final EntityDamageByEntityEvent e) {
|
||||||
if (e.getEntity() instanceof Player) {
|
if (e.getEntity() instanceof Player) {
|
||||||
Flag flag = Flags.PVP_OVERWORLD;
|
FlagType flag = Flag.PVP_OVERWORLD;
|
||||||
if (e.getEntity().getWorld().equals(getPlugin().getIslandWorldManager().getNetherWorld())) {
|
if (e.getEntity().getWorld().equals(getPlugin().getIslandWorldManager().getNetherWorld())) {
|
||||||
flag = Flags.PVP_NETHER;
|
flag = Flag.PVP_NETHER;
|
||||||
} else if (e.getEntity().getWorld().equals(getPlugin().getIslandWorldManager().getEndWorld())) {
|
} else if (e.getEntity().getWorld().equals(getPlugin().getIslandWorldManager().getEndWorld())) {
|
||||||
flag = Flags.PVP_END;
|
flag = Flag.PVP_END;
|
||||||
}
|
}
|
||||||
respond(e, e.getDamager(), flag);
|
respond(e, e.getDamager(), flag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void respond(Event event, Entity damager, Flag flag) {
|
private void respond(Event event, Entity damager, FlagType flag) {
|
||||||
// Get the attacker
|
// Get the attacker
|
||||||
if (damager instanceof Player) {
|
if (damager instanceof Player) {
|
||||||
setUser(User.getInstance(damager)).checkIsland(event, damager.getLocation(), flag);
|
setUser(User.getInstance(damager)).checkIsland(event, damager.getLocation(), flag);
|
||||||
@ -75,11 +75,11 @@ public class PVPListener extends AbstractFlagListener {
|
|||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onFishing(PlayerFishEvent e) {
|
public void onFishing(PlayerFishEvent e) {
|
||||||
if (e.getCaught() != null && e.getCaught() instanceof Player) {
|
if (e.getCaught() != null && e.getCaught() instanceof Player) {
|
||||||
Flag flag = Flags.PVP_OVERWORLD;
|
FlagType flag = Flag.PVP_OVERWORLD;
|
||||||
if (e.getCaught().getWorld().equals(getPlugin().getIslandWorldManager().getNetherWorld())) {
|
if (e.getCaught().getWorld().equals(getPlugin().getIslandWorldManager().getNetherWorld())) {
|
||||||
flag = Flags.PVP_NETHER;
|
flag = Flag.PVP_NETHER;
|
||||||
} else if (e.getCaught().getWorld().equals(getPlugin().getIslandWorldManager().getEndWorld())) {
|
} else if (e.getCaught().getWorld().equals(getPlugin().getIslandWorldManager().getEndWorld())) {
|
||||||
flag = Flags.PVP_END;
|
flag = Flag.PVP_END;
|
||||||
}
|
}
|
||||||
if (checkIsland(e, e.getCaught().getLocation(), flag)) {
|
if (checkIsland(e, e.getCaught().getLocation(), flag)) {
|
||||||
e.getHook().remove();
|
e.getHook().remove();
|
||||||
@ -95,11 +95,11 @@ public class PVPListener extends AbstractFlagListener {
|
|||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
|
||||||
public void onSplashPotionSplash(final PotionSplashEvent e) {
|
public void onSplashPotionSplash(final PotionSplashEvent e) {
|
||||||
// Deduce the world
|
// Deduce the world
|
||||||
Flag flag = Flags.PVP_OVERWORLD;
|
FlagType flag = Flag.PVP_OVERWORLD;
|
||||||
if (e.getPotion().getWorld().equals(getPlugin().getIslandWorldManager().getNetherWorld())) {
|
if (e.getPotion().getWorld().equals(getPlugin().getIslandWorldManager().getNetherWorld())) {
|
||||||
flag = Flags.PVP_NETHER;
|
flag = Flag.PVP_NETHER;
|
||||||
} else if (e.getPotion().getWorld().equals(getPlugin().getIslandWorldManager().getEndWorld())) {
|
} else if (e.getPotion().getWorld().equals(getPlugin().getIslandWorldManager().getEndWorld())) {
|
||||||
flag = Flags.PVP_END;
|
flag = Flag.PVP_END;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Try to get the thrower
|
// Try to get the thrower
|
||||||
@ -144,11 +144,11 @@ public class PVPListener extends AbstractFlagListener {
|
|||||||
|
|
||||||
if (e.getCause().equals(DamageCause.ENTITY_ATTACK) && thrownPotions.containsKey(e.getDamager().getEntityId())) {
|
if (e.getCause().equals(DamageCause.ENTITY_ATTACK) && thrownPotions.containsKey(e.getDamager().getEntityId())) {
|
||||||
// Deduce the world
|
// Deduce the world
|
||||||
Flag flag = Flags.PVP_OVERWORLD;
|
FlagType flag = Flag.PVP_OVERWORLD;
|
||||||
if (e.getEntity().getWorld().equals(getPlugin().getIslandWorldManager().getNetherWorld())) {
|
if (e.getEntity().getWorld().equals(getPlugin().getIslandWorldManager().getNetherWorld())) {
|
||||||
flag = Flags.PVP_NETHER;
|
flag = Flag.PVP_NETHER;
|
||||||
} else if (e.getEntity().getWorld().equals(getPlugin().getIslandWorldManager().getEndWorld())) {
|
} else if (e.getEntity().getWorld().equals(getPlugin().getIslandWorldManager().getEndWorld())) {
|
||||||
flag = Flags.PVP_END;
|
flag = Flag.PVP_END;
|
||||||
}
|
}
|
||||||
|
|
||||||
UUID attacker = thrownPotions.get(e.getDamager().getEntityId());
|
UUID attacker = thrownPotions.get(e.getDamager().getEntityId());
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ben
|
* @author ben
|
||||||
@ -29,14 +29,14 @@ public class PhysicalInteractionListener extends AbstractFlagListener {
|
|||||||
switch (e.getClickedBlock().getType()) {
|
switch (e.getClickedBlock().getType()) {
|
||||||
case SOIL:
|
case SOIL:
|
||||||
// Crop trample
|
// Crop trample
|
||||||
checkIsland(e, e.getPlayer().getLocation(), Flags.CROP_TRAMPLE);
|
checkIsland(e, e.getPlayer().getLocation(), Flag.CROP_TRAMPLE);
|
||||||
break;
|
break;
|
||||||
case WOOD_PLATE:
|
case WOOD_PLATE:
|
||||||
case STONE_PLATE:
|
case STONE_PLATE:
|
||||||
case GOLD_PLATE:
|
case GOLD_PLATE:
|
||||||
case IRON_PLATE:
|
case IRON_PLATE:
|
||||||
// Pressure plates
|
// Pressure plates
|
||||||
checkIsland(e, e.getPlayer().getLocation(), Flags.PRESSURE_PLATE);
|
checkIsland(e, e.getPlayer().getLocation(), Flag.PRESSURE_PLATE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -10,7 +10,7 @@ import org.bukkit.event.block.EntityBlockFormEvent;
|
|||||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
public class PlaceBlocksListener extends AbstractFlagListener {
|
public class PlaceBlocksListener extends AbstractFlagListener {
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ public class PlaceBlocksListener extends AbstractFlagListener {
|
|||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
||||||
public void onBlockPlace(final BlockPlaceEvent e) {
|
public void onBlockPlace(final BlockPlaceEvent e) {
|
||||||
checkIsland(e, e.getBlock().getLocation(), Flags.PLACE_BLOCKS);
|
checkIsland(e, e.getBlock().getLocation(), Flag.PLACE_BLOCKS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,7 +31,7 @@ public class PlaceBlocksListener extends AbstractFlagListener {
|
|||||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||||
public void onPlayerHitEntity(PlayerInteractEntityEvent e) {
|
public void onPlayerHitEntity(PlayerInteractEntityEvent e) {
|
||||||
if (e.getRightClicked().getType().equals(EntityType.ITEM_FRAME)) {
|
if (e.getRightClicked().getType().equals(EntityType.ITEM_FRAME)) {
|
||||||
checkIsland(e, e.getRightClicked().getLocation(), Flags.PLACE_BLOCKS);
|
checkIsland(e, e.getRightClicked().getLocation(), Flag.PLACE_BLOCKS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ public class PlaceBlocksListener extends AbstractFlagListener {
|
|||||||
}
|
}
|
||||||
switch (e.getClickedBlock().getType()) {
|
switch (e.getClickedBlock().getType()) {
|
||||||
case FIREWORK:
|
case FIREWORK:
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.PLACE_BLOCKS);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.PLACE_BLOCKS);
|
||||||
return;
|
return;
|
||||||
case RAILS:
|
case RAILS:
|
||||||
case POWERED_RAIL:
|
case POWERED_RAIL:
|
||||||
@ -55,7 +55,7 @@ public class PlaceBlocksListener extends AbstractFlagListener {
|
|||||||
case ACTIVATOR_RAIL:
|
case ACTIVATOR_RAIL:
|
||||||
if (e.getMaterial() != null && (e.getMaterial() == Material.MINECART || e.getMaterial() == Material.STORAGE_MINECART || e.getMaterial() == Material.HOPPER_MINECART
|
if (e.getMaterial() != null && (e.getMaterial() == Material.MINECART || e.getMaterial() == Material.STORAGE_MINECART || e.getMaterial() == Material.HOPPER_MINECART
|
||||||
|| e.getMaterial() == Material.EXPLOSIVE_MINECART || e.getMaterial() == Material.POWERED_MINECART)) {
|
|| e.getMaterial() == Material.EXPLOSIVE_MINECART || e.getMaterial() == Material.POWERED_MINECART)) {
|
||||||
checkIsland(e, e.getClickedBlock().getLocation(), Flags.PLACE_BLOCKS);
|
checkIsland(e, e.getClickedBlock().getLocation(), Flag.PLACE_BLOCKS);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
@ -66,7 +66,7 @@ public class PlaceBlocksListener extends AbstractFlagListener {
|
|||||||
if (e.getMaterial().equals(Material.END_CRYSTAL) || e.getMaterial() == Material.WOOD_DOOR || e.getMaterial() == Material.CHEST
|
if (e.getMaterial().equals(Material.END_CRYSTAL) || e.getMaterial() == Material.WOOD_DOOR || e.getMaterial() == Material.CHEST
|
||||||
|| e.getMaterial() == Material.TRAPPED_CHEST || e.getMaterial() == Material.IRON_DOOR
|
|| e.getMaterial() == Material.TRAPPED_CHEST || e.getMaterial() == Material.IRON_DOOR
|
||||||
|| (e.getMaterial().name().contains("BOAT") && !e.getClickedBlock().isLiquid())) {
|
|| (e.getMaterial().name().contains("BOAT") && !e.getClickedBlock().isLiquid())) {
|
||||||
checkIsland(e, e.getPlayer().getLocation(), Flags.PLACE_BLOCKS);
|
checkIsland(e, e.getPlayer().getLocation(), Flag.PLACE_BLOCKS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -80,7 +80,7 @@ public class PlaceBlocksListener extends AbstractFlagListener {
|
|||||||
public void onBlockForm(EntityBlockFormEvent e) {
|
public void onBlockForm(EntityBlockFormEvent e) {
|
||||||
if (e.getNewState().getType().equals(Material.FROSTED_ICE)) {
|
if (e.getNewState().getType().equals(Material.FROSTED_ICE)) {
|
||||||
// Silently check
|
// Silently check
|
||||||
checkIsland(e, e.getBlock().getLocation(), Flags.PLACE_BLOCKS, true);
|
checkIsland(e, e.getBlock().getLocation(), Flag.PLACE_BLOCKS, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.player.PlayerPortalEvent;
|
import org.bukkit.event.player.PlayerPortalEvent;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles portal protection
|
* Handles portal protection
|
||||||
@ -23,10 +23,10 @@ public class PortalListener extends AbstractFlagListener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (e.getCause().equals(TeleportCause.NETHER_PORTAL)) {
|
if (e.getCause().equals(TeleportCause.NETHER_PORTAL)) {
|
||||||
checkIsland(e, e.getFrom(), Flags.PORTAL);
|
checkIsland(e, e.getFrom(), Flag.PORTAL);
|
||||||
} else if (e.getCause().equals(TeleportCause.END_PORTAL)) {
|
} else if (e.getCause().equals(TeleportCause.END_PORTAL)) {
|
||||||
// Silent check because it's spammy
|
// Silent check because it's spammy
|
||||||
checkIsland(e, e.getFrom(), Flags.PORTAL, true);
|
checkIsland(e, e.getFrom(), Flag.PORTAL, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.player.PlayerShearEntityEvent;
|
import org.bukkit.event.player.PlayerShearEntityEvent;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles shearing
|
* Handles shearing
|
||||||
@ -19,7 +19,7 @@ public class ShearingListener extends AbstractFlagListener {
|
|||||||
// Protect sheep
|
// Protect sheep
|
||||||
@EventHandler(priority = EventPriority.LOW)
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
public void onShear(final PlayerShearEntityEvent e) {
|
public void onShear(final PlayerShearEntityEvent e) {
|
||||||
checkIsland(e, e.getEntity().getLocation(), Flags.SHEARING);
|
checkIsland(e, e.getEntity().getLocation(), Flag.SHEARING);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles teleporting due to enderpearl or chorus fruit.
|
* Handles teleporting due to enderpearl or chorus fruit.
|
||||||
@ -27,9 +27,9 @@ public class TeleportationListener extends AbstractFlagListener {
|
|||||||
|
|
||||||
if (e.getCause() != null) {
|
if (e.getCause() != null) {
|
||||||
if (e.getCause().equals(TeleportCause.ENDER_PEARL)) {
|
if (e.getCause().equals(TeleportCause.ENDER_PEARL)) {
|
||||||
checkIsland(e, e.getTo(), Flags.ENDER_PEARL);
|
checkIsland(e, e.getTo(), Flag.ENDER_PEARL);
|
||||||
} else if (e.getCause().equals(TeleportCause.CHORUS_FRUIT)) {
|
} else if (e.getCause().equals(TeleportCause.CHORUS_FRUIT)) {
|
||||||
checkIsland(e, e.getTo(), Flags.CHORUS_FRUIT);
|
checkIsland(e, e.getTo(), Flag.CHORUS_FRUIT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
136
src/main/java/us/tastybento/bskyblock/lists/Flag.java
Normal file
136
src/main/java/us/tastybento/bskyblock/lists/Flag.java
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
package us.tastybento.bskyblock.lists;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
|
||||||
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
|
import us.tastybento.bskyblock.api.flags.FlagType.Type;
|
||||||
|
import us.tastybento.bskyblock.api.flags.FlagBuilder;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.BlockInteractionListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.BreakBlocksListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.BreedingListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.BucketListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.EggListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.EntityInteractListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.FireListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.HurtingListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.InventoryListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.ItemDropPickUpListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.LeashListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.PVPListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.PhysicalInteractionListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.PlaceBlocksListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.PortalListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.ShearingListener;
|
||||||
|
import us.tastybento.bskyblock.listeners.flags.TeleportationListener;
|
||||||
|
|
||||||
|
public class Flag {
|
||||||
|
|
||||||
|
public static final FlagType BREAK_BLOCKS = new FlagBuilder().id("BREAK_BLOCKS").icon(Material.STONE).listener(new BreakBlocksListener()).build();
|
||||||
|
public static final FlagType PLACE_BLOCKS = new FlagBuilder().id("PLACE_BLOCKS").icon(Material.DIRT).listener(new PlaceBlocksListener()).build();
|
||||||
|
|
||||||
|
// Block interactions - all use BlockInteractionListener()
|
||||||
|
public static final FlagType ANVIL = new FlagBuilder().id("ANVIL").icon(Material.ANVIL).listener(new BlockInteractionListener()).build();
|
||||||
|
public static final FlagType BEACON = new FlagBuilder().id("BEACON").icon(Material.BEACON).build();
|
||||||
|
public static final FlagType BED = new FlagBuilder().id("BED").icon(Material.BED).build();
|
||||||
|
public static final FlagType BREWING = new FlagBuilder().id("BREWING").icon(Material.BREWING_STAND_ITEM).build();
|
||||||
|
public static final FlagType CHEST = new FlagBuilder().id("CHEST").icon(Material.CHEST).build();
|
||||||
|
public static final FlagType DOOR = new FlagBuilder().id("DOOR").allowedByDefault(true).icon(Material.WOODEN_DOOR).build();
|
||||||
|
public static final FlagType CRAFTING = new FlagBuilder().id("CRAFTING").allowedByDefault(true).icon(Material.WORKBENCH).build();
|
||||||
|
public static final FlagType ENCHANTING = new FlagBuilder().id("ENCHANTING").allowedByDefault(true).icon(Material.ENCHANTMENT_TABLE).build();
|
||||||
|
public static final FlagType FURNACE = new FlagBuilder().id("FURNACE").icon(Material.FURNACE).build();
|
||||||
|
public static final FlagType GATE = new FlagBuilder().id("GATE").allowedByDefault(true).icon(Material.FENCE_GATE).build();
|
||||||
|
public static final FlagType MUSIC = new FlagBuilder().id("MUSIC").icon(Material.JUKEBOX).build();
|
||||||
|
public static final FlagType LEVER_BUTTON = new FlagBuilder().id("LEVER_BUTTON").icon(Material.LEVER).build();
|
||||||
|
public static final FlagType REDSTONE = new FlagBuilder().id("REDSTONE").icon(Material.REDSTONE).build();
|
||||||
|
public static final FlagType SPAWN_EGGS = new FlagBuilder().id("SPAWN_EGGS").icon(Material.MONSTER_EGG).build();
|
||||||
|
|
||||||
|
// Entity interactions
|
||||||
|
public static final FlagType ARMOR_STAND = new FlagBuilder().id("ARMOR_STAND").icon(Material.ARMOR_STAND).listener(new EntityInteractListener()).build();
|
||||||
|
public static final FlagType RIDING = new FlagBuilder().id("RIDING").icon(Material.GOLD_BARDING).build();
|
||||||
|
public static final FlagType TRADING = new FlagBuilder().id("TRADING").allowedByDefault(true).icon(Material.EMERALD).build();
|
||||||
|
|
||||||
|
// Breeding
|
||||||
|
public static final FlagType BREEDING = new FlagBuilder().id("BREEDING").icon(Material.CARROT).listener(new BreedingListener()).build();
|
||||||
|
|
||||||
|
// Buckets. All bucket use is covered by one listener
|
||||||
|
public static final FlagType BUCKET = new FlagBuilder().id("BUCKET").icon(Material.BUCKET).listener(new BucketListener()).build();
|
||||||
|
public static final FlagType COLLECT_LAVA = new FlagBuilder().id("COLLECT_LAVA").icon(Material.LAVA_BUCKET).build();
|
||||||
|
public static final FlagType COLLECT_WATER = new FlagBuilder().id("COLLECT_WATER").icon(Material.WATER_BUCKET).build();
|
||||||
|
public static final FlagType MILKING = new FlagBuilder().id("MILKING").icon(Material.MILK_BUCKET).build();
|
||||||
|
|
||||||
|
// Chorus Fruit and Enderpearls
|
||||||
|
public static final FlagType CHORUS_FRUIT = new FlagBuilder().id("CHORUS_FRUIT").icon(Material.CHORUS_FRUIT).listener(new TeleportationListener()).build();
|
||||||
|
public static final FlagType ENDER_PEARL = new FlagBuilder().id("ENDER_PEARL").icon(Material.ENDER_PEARL).build();
|
||||||
|
|
||||||
|
// Physical interactions
|
||||||
|
public static final FlagType CROP_TRAMPLE = new FlagBuilder().id("CROP_TRAMPLE").icon(Material.WHEAT).listener(new PhysicalInteractionListener()).build();
|
||||||
|
public static final FlagType PRESSURE_PLATE = new FlagBuilder().id("PRESSURE_PLATE").icon(Material.GOLD_PLATE).build();
|
||||||
|
|
||||||
|
// Egg throwing
|
||||||
|
public static final FlagType EGGS = new FlagBuilder().id("EGGS").icon(Material.EGG).listener(new EggListener()).build();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fire
|
||||||
|
* I'll take you to burn.
|
||||||
|
* Fire
|
||||||
|
* I'll take you to learn.
|
||||||
|
* You gonna burn, burn, burn
|
||||||
|
* Fire
|
||||||
|
* I'll take you to burn
|
||||||
|
* - The Crazy World of Arthur Brown
|
||||||
|
*/
|
||||||
|
public static final FlagType FIRE = new FlagBuilder().id("FIRE").icon(Material.FLINT_AND_STEEL).listener(new FireListener()).build();
|
||||||
|
public static final FlagType FIRE_EXTINGUISH = new FlagBuilder().id("FIRE_EXTINGUISH").icon(Material.POTION).build();
|
||||||
|
public static final FlagType FIRE_SPREAD = new FlagBuilder().id("FIRE_SPREAD").icon(Material.FIREWORK_CHARGE).build();
|
||||||
|
|
||||||
|
// Inventories
|
||||||
|
public static final FlagType MOUNT_INVENTORY = new FlagBuilder().id("MOUNT_INVENTORY").icon(Material.IRON_BARDING).listener(new InventoryListener()).build();
|
||||||
|
|
||||||
|
// Hurting things
|
||||||
|
public static final FlagType HURT_MOBS = new FlagBuilder().id("HURT_MOBS").icon(Material.STONE_SWORD).listener(new HurtingListener()).build();
|
||||||
|
public static final FlagType HURT_MONSTERS = new FlagBuilder().id("HURT_MONSTERS").icon(Material.WOOD_SWORD).build();
|
||||||
|
|
||||||
|
// Leashes
|
||||||
|
public static final FlagType LEASH = new FlagBuilder().id("LEASH").icon(Material.LEASH).listener(new LeashListener()).build();
|
||||||
|
|
||||||
|
// Portal use protection
|
||||||
|
public static final FlagType PORTAL = new FlagBuilder().id("PORTAL").icon(Material.OBSIDIAN).listener(new PortalListener()).build();
|
||||||
|
|
||||||
|
// Shearing
|
||||||
|
public static final FlagType SHEARING = new FlagBuilder().id("SHEARING").icon(Material.SHEARS).listener(new ShearingListener()).build();
|
||||||
|
|
||||||
|
// Item pickup or drop
|
||||||
|
public static final FlagType ITEM_DROP = new FlagBuilder().id("ITEM_DROP").icon(Material.DIRT).allowedByDefault(true).listener(new ItemDropPickUpListener()).build();
|
||||||
|
public static final FlagType ITEM_PICKUP = new FlagBuilder().id("ITEM_PICKUP").icon(Material.DIRT).build();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Settings flags (not protection flags)
|
||||||
|
*/
|
||||||
|
// PVP
|
||||||
|
public static final FlagType PVP_OVERWORLD = new FlagBuilder().id("PVP_OVERWORLD").icon(Material.ARROW).type(Type.SETTING).listener(new PVPListener()).build();
|
||||||
|
public static final FlagType PVP_NETHER = new FlagBuilder().id("PVP_NETHER").icon(Material.IRON_AXE).type(Type.SETTING).build();
|
||||||
|
public static final FlagType PVP_END = new FlagBuilder().id("PVP_END").icon(Material.END_CRYSTAL).type(Type.SETTING).build();
|
||||||
|
// Others
|
||||||
|
public static final FlagType ENTER_EXIT_MESSAGES = new FlagBuilder().id("ENTER_EXIT_MESSAGES").icon(Material.DIRT).allowedByDefault(true).type(Type.SETTING).build();
|
||||||
|
public static final FlagType MOB_SPAWN = new FlagBuilder().id("MOB_SPAWN").icon(Material.APPLE).allowedByDefault(true).type(Type.SETTING).build();
|
||||||
|
public static final FlagType MONSTER_SPAWN = new FlagBuilder().id("MONSTER_SPAWN").icon(Material.MOB_SPAWNER).allowedByDefault(true).type(Type.SETTING).build();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return List of all the flags in this class
|
||||||
|
*/
|
||||||
|
public static List<FlagType> values() {
|
||||||
|
return Arrays.asList(Flag.class.getFields()).stream().map(field -> {
|
||||||
|
try {
|
||||||
|
return (FlagType)field.get(null);
|
||||||
|
} catch (IllegalArgumentException | IllegalAccessException e) {
|
||||||
|
Bukkit.getLogger().severe("Could not get Flag values " + e.getMessage());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
@ -1,136 +0,0 @@
|
|||||||
package us.tastybento.bskyblock.lists;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
|
||||||
import us.tastybento.bskyblock.api.flags.Flag.FlagType;
|
|
||||||
import us.tastybento.bskyblock.api.flags.FlagBuilder;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.BlockInteractionListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.BreakBlocksListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.BreedingListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.BucketListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.EggListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.EntityInteractListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.FireListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.HurtingListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.InventoryListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.ItemDropPickUpListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.LeashListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.PVPListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.PhysicalInteractionListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.PlaceBlocksListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.PortalListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.ShearingListener;
|
|
||||||
import us.tastybento.bskyblock.listeners.flags.TeleportationListener;
|
|
||||||
|
|
||||||
public class Flags {
|
|
||||||
|
|
||||||
public static final Flag BREAK_BLOCKS = new FlagBuilder().id("BREAK_BLOCKS").icon(Material.STONE).listener(new BreakBlocksListener()).build();
|
|
||||||
public static final Flag PLACE_BLOCKS = new FlagBuilder().id("PLACE_BLOCKS").icon(Material.DIRT).listener(new PlaceBlocksListener()).build();
|
|
||||||
|
|
||||||
// Block interactions - all use BlockInteractionListener()
|
|
||||||
public static final Flag ANVIL = new FlagBuilder().id("ANVIL").icon(Material.ANVIL).listener(new BlockInteractionListener()).build();
|
|
||||||
public static final Flag BEACON = new FlagBuilder().id("BEACON").icon(Material.BEACON).build();
|
|
||||||
public static final Flag BED = new FlagBuilder().id("BED").icon(Material.BED).build();
|
|
||||||
public static final Flag BREWING = new FlagBuilder().id("BREWING").icon(Material.BREWING_STAND_ITEM).build();
|
|
||||||
public static final Flag CHEST = new FlagBuilder().id("CHEST").icon(Material.CHEST).build();
|
|
||||||
public static final Flag DOOR = new FlagBuilder().id("DOOR").allowedByDefault(true).icon(Material.WOODEN_DOOR).build();
|
|
||||||
public static final Flag CRAFTING = new FlagBuilder().id("CRAFTING").allowedByDefault(true).icon(Material.WORKBENCH).build();
|
|
||||||
public static final Flag ENCHANTING = new FlagBuilder().id("ENCHANTING").allowedByDefault(true).icon(Material.ENCHANTMENT_TABLE).build();
|
|
||||||
public static final Flag FURNACE = new FlagBuilder().id("FURNACE").icon(Material.FURNACE).build();
|
|
||||||
public static final Flag GATE = new FlagBuilder().id("GATE").allowedByDefault(true).icon(Material.FENCE_GATE).build();
|
|
||||||
public static final Flag MUSIC = new FlagBuilder().id("MUSIC").icon(Material.JUKEBOX).build();
|
|
||||||
public static final Flag LEVER_BUTTON = new FlagBuilder().id("LEVER_BUTTON").icon(Material.LEVER).build();
|
|
||||||
public static final Flag REDSTONE = new FlagBuilder().id("REDSTONE").icon(Material.REDSTONE).build();
|
|
||||||
public static final Flag SPAWN_EGGS = new FlagBuilder().id("SPAWN_EGGS").icon(Material.MONSTER_EGG).build();
|
|
||||||
|
|
||||||
// Entity interactions
|
|
||||||
public static final Flag ARMOR_STAND = new FlagBuilder().id("ARMOR_STAND").icon(Material.ARMOR_STAND).listener(new EntityInteractListener()).build();
|
|
||||||
public static final Flag RIDING = new FlagBuilder().id("RIDING").icon(Material.GOLD_BARDING).build();
|
|
||||||
public static final Flag TRADING = new FlagBuilder().id("TRADING").allowedByDefault(true).icon(Material.EMERALD).build();
|
|
||||||
|
|
||||||
// Breeding
|
|
||||||
public static final Flag BREEDING = new FlagBuilder().id("BREEDING").icon(Material.CARROT).listener(new BreedingListener()).build();
|
|
||||||
|
|
||||||
// Buckets. All bucket use is covered by one listener
|
|
||||||
public static final Flag BUCKET = new FlagBuilder().id("BUCKET").icon(Material.BUCKET).listener(new BucketListener()).build();
|
|
||||||
public static final Flag COLLECT_LAVA = new FlagBuilder().id("COLLECT_LAVA").icon(Material.LAVA_BUCKET).build();
|
|
||||||
public static final Flag COLLECT_WATER = new FlagBuilder().id("COLLECT_WATER").icon(Material.WATER_BUCKET).build();
|
|
||||||
public static final Flag MILKING = new FlagBuilder().id("MILKING").icon(Material.MILK_BUCKET).build();
|
|
||||||
|
|
||||||
// Chorus Fruit and Enderpearls
|
|
||||||
public static final Flag CHORUS_FRUIT = new FlagBuilder().id("CHORUS_FRUIT").icon(Material.CHORUS_FRUIT).listener(new TeleportationListener()).build();
|
|
||||||
public static final Flag ENDER_PEARL = new FlagBuilder().id("ENDER_PEARL").icon(Material.ENDER_PEARL).build();
|
|
||||||
|
|
||||||
// Physical interactions
|
|
||||||
public static final Flag CROP_TRAMPLE = new FlagBuilder().id("CROP_TRAMPLE").icon(Material.WHEAT).listener(new PhysicalInteractionListener()).build();
|
|
||||||
public static final Flag PRESSURE_PLATE = new FlagBuilder().id("PRESSURE_PLATE").icon(Material.GOLD_PLATE).build();
|
|
||||||
|
|
||||||
// Egg throwing
|
|
||||||
public static final Flag EGGS = new FlagBuilder().id("EGGS").icon(Material.EGG).listener(new EggListener()).build();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Fire
|
|
||||||
* I'll take you to burn.
|
|
||||||
* Fire
|
|
||||||
* I'll take you to learn.
|
|
||||||
* You gonna burn, burn, burn
|
|
||||||
* Fire
|
|
||||||
* I'll take you to burn
|
|
||||||
* - The Crazy World of Arthur Brown
|
|
||||||
*/
|
|
||||||
public static final Flag FIRE = new FlagBuilder().id("FIRE").icon(Material.FLINT_AND_STEEL).listener(new FireListener()).build();
|
|
||||||
public static final Flag FIRE_EXTINGUISH = new FlagBuilder().id("FIRE_EXTINGUISH").icon(Material.POTION).build();
|
|
||||||
public static final Flag FIRE_SPREAD = new FlagBuilder().id("FIRE_SPREAD").icon(Material.FIREWORK_CHARGE).build();
|
|
||||||
|
|
||||||
// Inventories
|
|
||||||
public static final Flag MOUNT_INVENTORY = new FlagBuilder().id("MOUNT_INVENTORY").icon(Material.IRON_BARDING).listener(new InventoryListener()).build();
|
|
||||||
|
|
||||||
// Hurting things
|
|
||||||
public static final Flag HURT_MOBS = new FlagBuilder().id("HURT_MOBS").icon(Material.STONE_SWORD).listener(new HurtingListener()).build();
|
|
||||||
public static final Flag HURT_MONSTERS = new FlagBuilder().id("HURT_MONSTERS").icon(Material.WOOD_SWORD).build();
|
|
||||||
|
|
||||||
// Leashes
|
|
||||||
public static final Flag LEASH = new FlagBuilder().id("LEASH").icon(Material.LEASH).listener(new LeashListener()).build();
|
|
||||||
|
|
||||||
// Portal use protection
|
|
||||||
public static final Flag PORTAL = new FlagBuilder().id("PORTAL").icon(Material.OBSIDIAN).listener(new PortalListener()).build();
|
|
||||||
|
|
||||||
// Shearing
|
|
||||||
public static final Flag SHEARING = new FlagBuilder().id("SHEARING").icon(Material.SHEARS).listener(new ShearingListener()).build();
|
|
||||||
|
|
||||||
// Item pickup or drop
|
|
||||||
public static final Flag ITEM_DROP = new FlagBuilder().id("ITEM_DROP").icon(Material.DIRT).allowedByDefault(true).listener(new ItemDropPickUpListener()).build();
|
|
||||||
public static final Flag ITEM_PICKUP = new FlagBuilder().id("ITEM_PICKUP").icon(Material.DIRT).build();
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Settings flags (not protection flags)
|
|
||||||
*/
|
|
||||||
// PVP
|
|
||||||
public static final Flag PVP_OVERWORLD = new FlagBuilder().id("PVP_OVERWORLD").icon(Material.ARROW).type(FlagType.SETTING).listener(new PVPListener()).build();
|
|
||||||
public static final Flag PVP_NETHER = new FlagBuilder().id("PVP_NETHER").icon(Material.IRON_AXE).type(FlagType.SETTING).build();
|
|
||||||
public static final Flag PVP_END = new FlagBuilder().id("PVP_END").icon(Material.END_CRYSTAL).type(FlagType.SETTING).build();
|
|
||||||
// Others
|
|
||||||
public static final Flag ENTER_EXIT_MESSAGES = new FlagBuilder().id("ENTER_EXIT_MESSAGES").icon(Material.DIRT).allowedByDefault(true).type(FlagType.SETTING).build();
|
|
||||||
public static final Flag MOB_SPAWN = new FlagBuilder().id("MOB_SPAWN").icon(Material.APPLE).allowedByDefault(true).type(FlagType.SETTING).build();
|
|
||||||
public static final Flag MONSTER_SPAWN = new FlagBuilder().id("MONSTER_SPAWN").icon(Material.MOB_SPAWNER).allowedByDefault(true).type(FlagType.SETTING).build();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return List of all the flags in this class
|
|
||||||
*/
|
|
||||||
public static List<Flag> values() {
|
|
||||||
return Arrays.asList(Flags.class.getFields()).stream().map(field -> {
|
|
||||||
try {
|
|
||||||
return (Flag)field.get(null);
|
|
||||||
} catch (IllegalArgumentException | IllegalAccessException e) {
|
|
||||||
Bukkit.getLogger().severe("Could not get Flag values " + e.getMessage());
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
}
|
|
@ -7,9 +7,9 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.BSkyBlock;
|
import us.tastybento.bskyblock.BSkyBlock;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
import us.tastybento.bskyblock.api.panels.PanelItem;
|
import us.tastybento.bskyblock.api.panels.PanelItem;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Poslovitch
|
* @author Poslovitch
|
||||||
@ -18,7 +18,7 @@ import us.tastybento.bskyblock.lists.Flags;
|
|||||||
public class FlagsManager {
|
public class FlagsManager {
|
||||||
|
|
||||||
private BSkyBlock plugin;
|
private BSkyBlock plugin;
|
||||||
private HashMap<String, Flag> flags = new HashMap<>();
|
private HashMap<String, FlagType> flags = new HashMap<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stores the flag listeners that have already been registered into Bukkit's API to avoid duplicates.
|
* Stores the flag listeners that have already been registered into Bukkit's API to avoid duplicates.
|
||||||
@ -29,7 +29,7 @@ public class FlagsManager {
|
|||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
|
|
||||||
// Register default flags
|
// Register default flags
|
||||||
for (Flag flag : Flags.values()) {
|
for (FlagType flag : Flag.values()) {
|
||||||
registerFlag(flag);
|
registerFlag(flag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -38,7 +38,7 @@ public class FlagsManager {
|
|||||||
* Register a new flag with BSkyBlock
|
* Register a new flag with BSkyBlock
|
||||||
* @param flag
|
* @param flag
|
||||||
*/
|
*/
|
||||||
public void registerFlag(Flag flag) {
|
public void registerFlag(FlagType flag) {
|
||||||
//Bukkit.getLogger().info("DEBUG: registering flag " + flag.getID());
|
//Bukkit.getLogger().info("DEBUG: registering flag " + flag.getID());
|
||||||
flags.put(flag.getID(), flag);
|
flags.put(flag.getID(), flag);
|
||||||
// If there is a listener which is not already registered, register it into Bukkit.
|
// If there is a listener which is not already registered, register it into Bukkit.
|
||||||
@ -50,7 +50,7 @@ public class FlagsManager {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public HashMap<String, Flag> getFlags() {
|
public HashMap<String, FlagType> getFlags() {
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,13 +59,13 @@ public class FlagsManager {
|
|||||||
* @param id
|
* @param id
|
||||||
* @return Flag or null if not known
|
* @return Flag or null if not known
|
||||||
*/
|
*/
|
||||||
public Flag getFlagByID(String id) {
|
public FlagType getFlagByID(String id) {
|
||||||
//Bukkit.getLogger().info("DEBUG: requesting " + id + " flags size = " + flags.size());
|
//Bukkit.getLogger().info("DEBUG: requesting " + id + " flags size = " + flags.size());
|
||||||
return flags.get(id);
|
return flags.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Flag getFlagByIcon(PanelItem item) {
|
public FlagType getFlagByIcon(PanelItem item) {
|
||||||
for (Flag flag : flags.values()) {
|
for (FlagType flag : flags.values()) {
|
||||||
if (flag.getIcon().equals(item)) {
|
if (flag.getIcon().equals(item)) {
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ import us.tastybento.bskyblock.util.FileLister;
|
|||||||
/**
|
/**
|
||||||
* @author Tastybento, Poslovitch
|
* @author Tastybento, Poslovitch
|
||||||
*/
|
*/
|
||||||
public final class LocalesManager {
|
public class LocalesManager {
|
||||||
|
|
||||||
private BSkyBlock plugin;
|
private BSkyBlock plugin;
|
||||||
private HashMap<Locale, BSBLocale> languages = new HashMap<>();
|
private HashMap<Locale, BSBLocale> languages = new HashMap<>();
|
||||||
|
@ -54,13 +54,13 @@ import us.tastybento.bskyblock.api.commands.CompositeCommand;
|
|||||||
import us.tastybento.bskyblock.api.commands.User;
|
import us.tastybento.bskyblock.api.commands.User;
|
||||||
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
import us.tastybento.bskyblock.api.events.IslandBaseEvent;
|
||||||
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
import us.tastybento.bskyblock.api.events.team.TeamEvent;
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
import us.tastybento.bskyblock.api.flags.FlagBuilder;
|
import us.tastybento.bskyblock.api.flags.FlagBuilder;
|
||||||
import us.tastybento.bskyblock.database.managers.island.IslandsManager;
|
import us.tastybento.bskyblock.database.managers.island.IslandsManager;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
import us.tastybento.bskyblock.generators.IslandWorld;
|
import us.tastybento.bskyblock.generators.IslandWorld;
|
||||||
import us.tastybento.bskyblock.listeners.flags.AbstractFlagListener;
|
import us.tastybento.bskyblock.listeners.flags.AbstractFlagListener;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
import us.tastybento.bskyblock.managers.FlagsManager;
|
import us.tastybento.bskyblock.managers.FlagsManager;
|
||||||
import us.tastybento.bskyblock.managers.RanksManager;
|
import us.tastybento.bskyblock.managers.RanksManager;
|
||||||
import us.tastybento.bskyblock.util.Util;
|
import us.tastybento.bskyblock.util.Util;
|
||||||
@ -68,7 +68,7 @@ import us.tastybento.bskyblock.util.Util;
|
|||||||
@RunWith(PowerMockRunner.class)
|
@RunWith(PowerMockRunner.class)
|
||||||
//@SuppressStaticInitializationFor("us.tastybento.BSkyBlock")
|
//@SuppressStaticInitializationFor("us.tastybento.BSkyBlock")
|
||||||
//@PrepareForTest( { Bukkit.class })
|
//@PrepareForTest( { Bukkit.class })
|
||||||
@PrepareForTest( { Flags.class })
|
@PrepareForTest( { Flag.class })
|
||||||
public class TestBSkyBlock {
|
public class TestBSkyBlock {
|
||||||
private static final UUID MEMBER_UUID = UUID.randomUUID();
|
private static final UUID MEMBER_UUID = UUID.randomUUID();
|
||||||
private static final UUID OWNER_UUID = UUID.randomUUID();
|
private static final UUID OWNER_UUID = UUID.randomUUID();
|
||||||
@ -133,7 +133,7 @@ public class TestBSkyBlock {
|
|||||||
Mockito.when(ownerOfIsland.getUniqueId()).thenReturn(OWNER_UUID);
|
Mockito.when(ownerOfIsland.getUniqueId()).thenReturn(OWNER_UUID);
|
||||||
Mockito.when(visitorToIsland.getUniqueId()).thenReturn(VISITOR_UUID);
|
Mockito.when(visitorToIsland.getUniqueId()).thenReturn(VISITOR_UUID);
|
||||||
|
|
||||||
PowerMockito.mockStatic(Flags.class);
|
PowerMockito.mockStatic(Flag.class);
|
||||||
|
|
||||||
plugin = Mockito.mock(BSkyBlock.class);
|
plugin = Mockito.mock(BSkyBlock.class);
|
||||||
flagsManager = new FlagsManager(plugin);
|
flagsManager = new FlagsManager(plugin);
|
||||||
@ -430,27 +430,27 @@ public class TestBSkyBlock {
|
|||||||
|
|
||||||
// Check default settings
|
// Check default settings
|
||||||
// Owner should be able to do anything
|
// Owner should be able to do anything
|
||||||
assertTrue(island.isAllowed(owner, Flags.PLACE_BLOCKS));
|
assertTrue(island.isAllowed(owner, Flag.PLACE_BLOCKS));
|
||||||
assertTrue(island.isAllowed(owner, Flags.BREAK_BLOCKS));
|
assertTrue(island.isAllowed(owner, Flag.BREAK_BLOCKS));
|
||||||
|
|
||||||
// Visitor can do nothing
|
// Visitor can do nothing
|
||||||
assertFalse(island.isAllowed(visitor, Flags.PLACE_BLOCKS));
|
assertFalse(island.isAllowed(visitor, Flag.PLACE_BLOCKS));
|
||||||
assertFalse(island.isAllowed(visitor, Flags.BREAK_BLOCKS));
|
assertFalse(island.isAllowed(visitor, Flag.BREAK_BLOCKS));
|
||||||
|
|
||||||
// Set up protection settings - members can break blocks, visitors and place blocks
|
// Set up protection settings - members can break blocks, visitors and place blocks
|
||||||
island.setFlag(Flags.BREAK_BLOCKS, RanksManager.MEMBER_RANK);
|
island.setFlag(Flag.BREAK_BLOCKS, RanksManager.MEMBER_RANK);
|
||||||
assertFalse(island.isAllowed(visitor, Flags.BREAK_BLOCKS));
|
assertFalse(island.isAllowed(visitor, Flag.BREAK_BLOCKS));
|
||||||
|
|
||||||
island.setFlag(Flags.PLACE_BLOCKS, RanksManager.VISITOR_RANK);
|
island.setFlag(Flag.PLACE_BLOCKS, RanksManager.VISITOR_RANK);
|
||||||
assertFalse(island.isAllowed(visitor, Flags.BREAK_BLOCKS));
|
assertFalse(island.isAllowed(visitor, Flag.BREAK_BLOCKS));
|
||||||
|
|
||||||
// Owner should be able to do anything
|
// Owner should be able to do anything
|
||||||
assertTrue(island.isAllowed(owner, Flags.PLACE_BLOCKS));
|
assertTrue(island.isAllowed(owner, Flag.PLACE_BLOCKS));
|
||||||
assertTrue(island.isAllowed(owner, Flags.BREAK_BLOCKS));
|
assertTrue(island.isAllowed(owner, Flag.BREAK_BLOCKS));
|
||||||
|
|
||||||
// Visitor can only place blocks
|
// Visitor can only place blocks
|
||||||
assertTrue(island.isAllowed(visitor, Flags.PLACE_BLOCKS));
|
assertTrue(island.isAllowed(visitor, Flag.PLACE_BLOCKS));
|
||||||
assertFalse(island.isAllowed(visitor, Flags.BREAK_BLOCKS));
|
assertFalse(island.isAllowed(visitor, Flag.BREAK_BLOCKS));
|
||||||
|
|
||||||
// Check if the members have capability
|
// Check if the members have capability
|
||||||
User mem1 = User.getInstance(member1); // Visitor
|
User mem1 = User.getInstance(member1); // Visitor
|
||||||
@ -459,16 +459,16 @@ public class TestBSkyBlock {
|
|||||||
User mem3 = User.getInstance(member3); // Banned
|
User mem3 = User.getInstance(member3); // Banned
|
||||||
|
|
||||||
// Member 1 is a visitor
|
// Member 1 is a visitor
|
||||||
assertTrue(island.isAllowed(mem1, Flags.PLACE_BLOCKS));
|
assertTrue(island.isAllowed(mem1, Flag.PLACE_BLOCKS));
|
||||||
assertFalse(island.isAllowed(mem1, Flags.BREAK_BLOCKS));
|
assertFalse(island.isAllowed(mem1, Flag.BREAK_BLOCKS));
|
||||||
|
|
||||||
// Member 2 is a team member
|
// Member 2 is a team member
|
||||||
assertTrue(island.isAllowed(mem2, Flags.PLACE_BLOCKS));
|
assertTrue(island.isAllowed(mem2, Flag.PLACE_BLOCKS));
|
||||||
assertTrue(island.isAllowed(mem2, Flags.BREAK_BLOCKS));
|
assertTrue(island.isAllowed(mem2, Flag.BREAK_BLOCKS));
|
||||||
|
|
||||||
// Member 3 is no longer a member and is banned
|
// Member 3 is no longer a member and is banned
|
||||||
assertFalse(island.isAllowed(mem3, Flags.PLACE_BLOCKS));
|
assertFalse(island.isAllowed(mem3, Flag.PLACE_BLOCKS));
|
||||||
assertFalse(island.isAllowed(mem3, Flags.BREAK_BLOCKS));
|
assertFalse(island.isAllowed(mem3, Flag.BREAK_BLOCKS));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -482,16 +482,16 @@ public class TestBSkyBlock {
|
|||||||
|
|
||||||
Bukkit.getLogger().info("DEBUG: checking events - vistor");
|
Bukkit.getLogger().info("DEBUG: checking events - vistor");
|
||||||
Event e3 = new BlockBreakEvent(block, visitorToIsland);
|
Event e3 = new BlockBreakEvent(block, visitorToIsland);
|
||||||
Assert.assertFalse(fl.checkIsland(e3, location, Flags.BREAK_BLOCKS, true));
|
Assert.assertFalse(fl.checkIsland(e3, location, Flag.BREAK_BLOCKS, true));
|
||||||
|
|
||||||
Bukkit.getLogger().info("DEBUG: checking events - owner");
|
Bukkit.getLogger().info("DEBUG: checking events - owner");
|
||||||
Event e = new BlockBreakEvent(block, ownerOfIsland);
|
Event e = new BlockBreakEvent(block, ownerOfIsland);
|
||||||
Assert.assertTrue(fl.checkIsland(e, location, Flags.BREAK_BLOCKS, true));
|
Assert.assertTrue(fl.checkIsland(e, location, Flag.BREAK_BLOCKS, true));
|
||||||
|
|
||||||
Bukkit.getLogger().info("DEBUG: checking events - member");
|
Bukkit.getLogger().info("DEBUG: checking events - member");
|
||||||
|
|
||||||
Event e2 = new BlockBreakEvent(block, player);
|
Event e2 = new BlockBreakEvent(block, player);
|
||||||
Assert.assertTrue(fl.checkIsland(e2, location, Flags.BREAK_BLOCKS, true));
|
Assert.assertTrue(fl.checkIsland(e2, location, Flag.BREAK_BLOCKS, true));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -499,12 +499,12 @@ public class TestBSkyBlock {
|
|||||||
public void TestDefaultFlags() {
|
public void TestDefaultFlags() {
|
||||||
// Check all the default flags
|
// Check all the default flags
|
||||||
FlagsManager fm = new FlagsManager(plugin);
|
FlagsManager fm = new FlagsManager(plugin);
|
||||||
Collection<Flag> defaultFlags = Flags.values();
|
Collection<FlagType> defaultFlags = Flag.values();
|
||||||
Collection<Flag> f = fm.getFlags().values();
|
Collection<FlagType> f = fm.getFlags().values();
|
||||||
for (Flag flag : defaultFlags) {
|
for (FlagType flag : defaultFlags) {
|
||||||
assertTrue(flag.getID(), f.contains(flag));
|
assertTrue(flag.getID(), f.contains(flag));
|
||||||
}
|
}
|
||||||
for (Flag flag : f) {
|
for (FlagType flag : f) {
|
||||||
assertTrue(flag.getID(), defaultFlags.contains(flag));
|
assertTrue(flag.getID(), defaultFlags.contains(flag));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -513,7 +513,7 @@ public class TestBSkyBlock {
|
|||||||
public void TestCustomFlags() {
|
public void TestCustomFlags() {
|
||||||
// Custom
|
// Custom
|
||||||
FlagListener fl = new FlagListener(plugin);
|
FlagListener fl = new FlagListener(plugin);
|
||||||
Flag customFlag = new FlagBuilder().id("CUSTOM_FLAG").icon(Material.DIAMOND).listener(fl).build();
|
FlagType customFlag = new FlagBuilder().id("CUSTOM_FLAG").icon(Material.DIAMOND).listener(fl).build();
|
||||||
assertEquals("CUSTOM_FLAG", customFlag.getID());
|
assertEquals("CUSTOM_FLAG", customFlag.getID());
|
||||||
assertEquals(Material.DIAMOND, customFlag.getIcon().getItem().getType());
|
assertEquals(Material.DIAMOND, customFlag.getIcon().getItem().getType());
|
||||||
assertEquals(fl, customFlag.getListener().get());
|
assertEquals(fl, customFlag.getListener().get());
|
||||||
|
@ -16,7 +16,11 @@ import java.sql.PreparedStatement;
|
|||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Server;
|
||||||
|
import org.bukkit.World;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
@ -38,7 +42,15 @@ public class MySQLDatabaseHandlerTest {
|
|||||||
*/
|
*/
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void setUp() throws Exception {
|
public static void setUp() throws Exception {
|
||||||
|
Server server = mock(Server.class);
|
||||||
|
World world = mock(World.class);
|
||||||
|
when(server.getLogger()).thenReturn(Logger.getAnonymousLogger());
|
||||||
|
when(server.getWorld("world")).thenReturn(world);
|
||||||
|
when(server.getVersion()).thenReturn("BSB_Mocking");
|
||||||
|
Bukkit.setServer(server);
|
||||||
|
|
||||||
BSkyBlock plugin = mock(BSkyBlock.class);
|
BSkyBlock plugin = mock(BSkyBlock.class);
|
||||||
|
when(Bukkit.getLogger()).thenReturn(Logger.getAnonymousLogger());
|
||||||
MySQLDatabaseConnecter dbConn = mock(MySQLDatabaseConnecter.class);
|
MySQLDatabaseConnecter dbConn = mock(MySQLDatabaseConnecter.class);
|
||||||
Connection connection = mock(Connection.class);
|
Connection connection = mock(Connection.class);
|
||||||
when(dbConn.createConnection()).thenReturn(connection);
|
when(dbConn.createConnection()).thenReturn(connection);
|
||||||
|
@ -6,7 +6,7 @@ import java.util.UUID;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
|
||||||
import us.tastybento.bskyblock.api.flags.Flag;
|
import us.tastybento.bskyblock.api.flags.FlagType;
|
||||||
import us.tastybento.bskyblock.database.objects.DataObject;
|
import us.tastybento.bskyblock.database.objects.DataObject;
|
||||||
import us.tastybento.bskyblock.database.objects.adapters.Adapter;
|
import us.tastybento.bskyblock.database.objects.adapters.Adapter;
|
||||||
import us.tastybento.bskyblock.database.objects.adapters.FlagSerializer;
|
import us.tastybento.bskyblock.database.objects.adapters.FlagSerializer;
|
||||||
@ -59,7 +59,7 @@ public class MySQLDatabaseHandlerTestDataObject implements DataObject {
|
|||||||
|
|
||||||
//// Protection flags ////
|
//// Protection flags ////
|
||||||
@Adapter(FlagSerializer.class)
|
@Adapter(FlagSerializer.class)
|
||||||
private HashMap<Flag, Integer> flags = new HashMap<>();
|
private HashMap<FlagType, Integer> flags = new HashMap<>();
|
||||||
|
|
||||||
private int levelHandicap;
|
private int levelHandicap;
|
||||||
private Location spawnPoint;
|
private Location spawnPoint;
|
||||||
@ -307,14 +307,14 @@ public class MySQLDatabaseHandlerTestDataObject implements DataObject {
|
|||||||
/**
|
/**
|
||||||
* @return the flags
|
* @return the flags
|
||||||
*/
|
*/
|
||||||
public HashMap<Flag, Integer> getFlags() {
|
public HashMap<FlagType, Integer> getFlags() {
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param flags the flags to set
|
* @param flags the flags to set
|
||||||
*/
|
*/
|
||||||
public void setFlags(HashMap<Flag, Integer> flags) {
|
public void setFlags(HashMap<FlagType, Integer> flags) {
|
||||||
this.flags = flags;
|
this.flags = flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,11 +36,11 @@ import us.tastybento.bskyblock.BSkyBlock;
|
|||||||
import us.tastybento.bskyblock.database.managers.island.IslandsManager;
|
import us.tastybento.bskyblock.database.managers.island.IslandsManager;
|
||||||
import us.tastybento.bskyblock.database.objects.Island;
|
import us.tastybento.bskyblock.database.objects.Island;
|
||||||
import us.tastybento.bskyblock.generators.IslandWorld;
|
import us.tastybento.bskyblock.generators.IslandWorld;
|
||||||
import us.tastybento.bskyblock.lists.Flags;
|
import us.tastybento.bskyblock.lists.Flag;
|
||||||
import us.tastybento.bskyblock.managers.FlagsManager;
|
import us.tastybento.bskyblock.managers.FlagsManager;
|
||||||
|
|
||||||
@RunWith(PowerMockRunner.class)
|
@RunWith(PowerMockRunner.class)
|
||||||
@PrepareForTest( { Flags.class })
|
@PrepareForTest( { Flag.class })
|
||||||
public class MobSpawnListenerTest {
|
public class MobSpawnListenerTest {
|
||||||
|
|
||||||
private static Location location;
|
private static Location location;
|
||||||
@ -75,7 +75,7 @@ public class MobSpawnListenerTest {
|
|||||||
when(location.getBlockX()).thenReturn(0);
|
when(location.getBlockX()).thenReturn(0);
|
||||||
when(location.getBlockY()).thenReturn(0);
|
when(location.getBlockY()).thenReturn(0);
|
||||||
when(location.getBlockZ()).thenReturn(0);
|
when(location.getBlockZ()).thenReturn(0);
|
||||||
PowerMockito.mockStatic(Flags.class);
|
PowerMockito.mockStatic(Flag.class);
|
||||||
|
|
||||||
plugin = Mockito.mock(BSkyBlock.class);
|
plugin = Mockito.mock(BSkyBlock.class);
|
||||||
flagsManager = new FlagsManager(plugin);
|
flagsManager = new FlagsManager(plugin);
|
||||||
@ -220,8 +220,8 @@ public class MobSpawnListenerTest {
|
|||||||
when(im.getIslandAt(Matchers.any())).thenReturn(Optional.empty());
|
when(im.getIslandAt(Matchers.any())).thenReturn(Optional.empty());
|
||||||
|
|
||||||
// Block mobs
|
// Block mobs
|
||||||
Flags.MONSTER_SPAWN.setDefaultSetting(false);
|
Flag.MONSTER_SPAWN.setDefaultSetting(false);
|
||||||
Flags.MOB_SPAWN.setDefaultSetting(false);
|
Flag.MOB_SPAWN.setDefaultSetting(false);
|
||||||
// Setup event
|
// Setup event
|
||||||
CreatureSpawnEvent e = mock(CreatureSpawnEvent.class);
|
CreatureSpawnEvent e = mock(CreatureSpawnEvent.class);
|
||||||
when(e.getLocation()).thenReturn(location);
|
when(e.getLocation()).thenReturn(location);
|
||||||
@ -248,8 +248,8 @@ public class MobSpawnListenerTest {
|
|||||||
when(im.getIslandAt(Matchers.any())).thenReturn(Optional.empty());
|
when(im.getIslandAt(Matchers.any())).thenReturn(Optional.empty());
|
||||||
|
|
||||||
// Block mobs
|
// Block mobs
|
||||||
Flags.MONSTER_SPAWN.setDefaultSetting(true);
|
Flag.MONSTER_SPAWN.setDefaultSetting(true);
|
||||||
Flags.MOB_SPAWN.setDefaultSetting(true);
|
Flag.MOB_SPAWN.setDefaultSetting(true);
|
||||||
|
|
||||||
// Setup event
|
// Setup event
|
||||||
CreatureSpawnEvent e = mock(CreatureSpawnEvent.class);
|
CreatureSpawnEvent e = mock(CreatureSpawnEvent.class);
|
||||||
|
Loading…
Reference in New Issue
Block a user