mirror of
https://e.coding.net/circlecloud/Residence.git
synced 2025-11-25 21:56:06 +00:00
@@ -27,117 +27,117 @@ import cn.citycraft.Residence.text.Language;
|
||||
import cn.citycraft.Residence.text.help.HelpEntry;
|
||||
|
||||
public class Residence {
|
||||
static ResidenceMain instance;
|
||||
static ResidenceMain instance;
|
||||
|
||||
public Residence(final ResidenceMain instance) {
|
||||
Residence.instance = instance;
|
||||
}
|
||||
public Residence(final ResidenceMain instance) {
|
||||
Residence.instance = instance;
|
||||
}
|
||||
|
||||
public static ChatManager getChatManager() {
|
||||
return instance.getChatManager();
|
||||
}
|
||||
public static ChatManager getChatManager() {
|
||||
return instance.getChatManager();
|
||||
}
|
||||
|
||||
public static ConfigManager getConfigManager() {
|
||||
return instance.getConfigManager();
|
||||
}
|
||||
public static ConfigManager getConfigManager() {
|
||||
return instance.getConfigManager();
|
||||
}
|
||||
|
||||
public static File getDataLocation() {
|
||||
return instance.getDataFolder();
|
||||
}
|
||||
public static File getDataLocation() {
|
||||
return instance.getDataFolder();
|
||||
}
|
||||
|
||||
public static Map<String, String> getDeleteConfirm() {
|
||||
return instance.getDeleteConfirm();
|
||||
}
|
||||
public static Map<String, String> getDeleteConfirm() {
|
||||
return instance.getDeleteConfirm();
|
||||
}
|
||||
|
||||
public static EconomyInterface getEconomyManager() {
|
||||
return instance.getEconomyManager();
|
||||
}
|
||||
public static EconomyInterface getEconomyManager() {
|
||||
return instance.getEconomyManager();
|
||||
}
|
||||
|
||||
public static EntityManager getEntityManager() {
|
||||
return instance.getEntityManager();
|
||||
}
|
||||
public static EntityManager getEntityManager() {
|
||||
return instance.getEntityManager();
|
||||
}
|
||||
|
||||
public static HelpEntry getHelppages() {
|
||||
return instance.getHelppages();
|
||||
}
|
||||
public static HelpEntry getHelppages() {
|
||||
return instance.getHelppages();
|
||||
}
|
||||
|
||||
public static WorldItemManager getItemManager() {
|
||||
return instance.getItemManager();
|
||||
}
|
||||
public static WorldItemManager getItemManager() {
|
||||
return instance.getItemManager();
|
||||
}
|
||||
|
||||
public static Language getLanguage() {
|
||||
if (instance.getLanguage() == null) {
|
||||
instance.setLanguage(new Language());
|
||||
}
|
||||
return instance.getLanguage();
|
||||
}
|
||||
public static Language getLanguage() {
|
||||
if (instance.getLanguage() == null) {
|
||||
instance.setLanguage(new Language());
|
||||
}
|
||||
return instance.getLanguage();
|
||||
}
|
||||
|
||||
public static LeaseManager getLeaseManager() {
|
||||
return instance.getLeaseManager();
|
||||
}
|
||||
public static LeaseManager getLeaseManager() {
|
||||
return instance.getLeaseManager();
|
||||
}
|
||||
|
||||
public static PermissionListManager getPermissionListManager() {
|
||||
return instance.getPermissionListManager();
|
||||
}
|
||||
public static PermissionListManager getPermissionListManager() {
|
||||
return instance.getPermissionListManager();
|
||||
}
|
||||
|
||||
public static PermissionManager getPermissionManager() {
|
||||
return instance.getPermissionManager();
|
||||
}
|
||||
public static PermissionManager getPermissionManager() {
|
||||
return instance.getPermissionManager();
|
||||
}
|
||||
|
||||
public static FlagPermissions getPermsByLoc(final Location loc) {
|
||||
final ClaimedResidence res = getResidenceManager().getByLoc(loc);
|
||||
if (res != null) {
|
||||
return res.getPermissions();
|
||||
}
|
||||
return getWorldFlags().getPerms(loc.getWorld().getName());
|
||||
}
|
||||
public static FlagPermissions getPermsByLoc(final Location loc) {
|
||||
final ClaimedResidence res = getResidenceManager().getByLoc(loc);
|
||||
if (res != null) {
|
||||
return res.getPermissions();
|
||||
}
|
||||
return getWorldFlags().getPerms(loc.getWorld().getName());
|
||||
}
|
||||
|
||||
public static FlagPermissions getPermsByLocForPlayer(final Location loc, final Player player) {
|
||||
final ClaimedResidence res = getResidenceManager().getByLoc(loc);
|
||||
if (res != null) {
|
||||
return res.getPermissions();
|
||||
} else if (player != null) {
|
||||
return getWorldFlags().getPerms(player);
|
||||
} else {
|
||||
return getWorldFlags().getPerms(loc.getWorld().getName());
|
||||
}
|
||||
}
|
||||
public static FlagPermissions getPermsByLocForPlayer(final Location loc, final Player player) {
|
||||
final ClaimedResidence res = getResidenceManager().getByLoc(loc);
|
||||
if (res != null) {
|
||||
return res.getPermissions();
|
||||
} else if (player != null) {
|
||||
return getWorldFlags().getPerms(player);
|
||||
} else {
|
||||
return getWorldFlags().getPerms(loc.getWorld().getName());
|
||||
}
|
||||
}
|
||||
|
||||
public static RentManager getRentManager() {
|
||||
return instance.getRentManager();
|
||||
}
|
||||
public static RentManager getRentManager() {
|
||||
return instance.getRentManager();
|
||||
}
|
||||
|
||||
public static ResidenceManager getResidenceManager() {
|
||||
return instance.getResidenceManager();
|
||||
}
|
||||
public static ResidenceManager getResidenceManager() {
|
||||
return instance.getResidenceManager();
|
||||
}
|
||||
|
||||
public static SelectionManager getSelectionManager() {
|
||||
return instance.getSelectionManager();
|
||||
}
|
||||
public static SelectionManager getSelectionManager() {
|
||||
return instance.getSelectionManager();
|
||||
}
|
||||
|
||||
public static TransactionManager getTransactionManager() {
|
||||
return instance.getTransactionManager();
|
||||
}
|
||||
public static TransactionManager getTransactionManager() {
|
||||
return instance.getTransactionManager();
|
||||
}
|
||||
|
||||
public static WorldFlagManager getWorldFlags() {
|
||||
return instance.getWorldFlags();
|
||||
}
|
||||
public static WorldFlagManager getWorldFlags() {
|
||||
return instance.getWorldFlags();
|
||||
}
|
||||
|
||||
public static boolean isResAdminOn(final Player player) {
|
||||
if (instance.getResadminToggle().contains(player.getName())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public static boolean isResAdminOn(final Player player) {
|
||||
if (instance.getResadminToggle().contains(player.getName())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isResAdminOn(final String player) {
|
||||
if (instance.getResadminToggle().contains(player.toLowerCase())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public static boolean isResAdminOn(final String player) {
|
||||
if (instance.getResadminToggle().contains(player.toLowerCase())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isUseWorldEdit() {
|
||||
return instance.isUseWorldEdit();
|
||||
}
|
||||
public static boolean isUseWorldEdit() {
|
||||
return instance.isUseWorldEdit();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,21 +15,20 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
*/
|
||||
public class CancellableResidenceEvent extends ResidenceEvent implements Cancellable {
|
||||
|
||||
protected boolean cancelled;
|
||||
protected boolean cancelled;
|
||||
|
||||
public CancellableResidenceEvent(String eventName, ClaimedResidence resref)
|
||||
{
|
||||
super(eventName,resref);
|
||||
}
|
||||
public CancellableResidenceEvent(String eventName, ClaimedResidence resref) {
|
||||
super(eventName, resref);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean bln) {
|
||||
cancelled = bln;
|
||||
}
|
||||
@Override
|
||||
public void setCancelled(boolean bln) {
|
||||
cancelled = bln;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,22 +16,21 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
*/
|
||||
public class CancellableResidencePlayerEvent extends ResidencePlayerEvent implements Cancellable {
|
||||
|
||||
protected boolean cancelled;
|
||||
protected boolean cancelled;
|
||||
|
||||
public CancellableResidencePlayerEvent(String eventName, ClaimedResidence resref, Player player)
|
||||
{
|
||||
super(eventName, resref, player);
|
||||
cancelled = false;
|
||||
}
|
||||
public CancellableResidencePlayerEvent(String eventName, ClaimedResidence resref, Player player) {
|
||||
super(eventName, resref, player);
|
||||
cancelled = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean bln) {
|
||||
cancelled = bln;
|
||||
}
|
||||
@Override
|
||||
public void setCancelled(boolean bln) {
|
||||
cancelled = bln;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,21 +16,20 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
*/
|
||||
public class CancellableResidencePlayerFlagEvent extends ResidencePlayerFlagEvent implements Cancellable {
|
||||
|
||||
protected boolean cancelled;
|
||||
protected boolean cancelled;
|
||||
|
||||
public CancellableResidencePlayerFlagEvent(String eventName, ClaimedResidence resref, Player player, String flag, FlagType type, String target)
|
||||
{
|
||||
super(eventName, resref, player, flag, type, target);
|
||||
}
|
||||
public CancellableResidencePlayerFlagEvent(String eventName, ClaimedResidence resref, Player player, String flag, FlagType type, String target) {
|
||||
super(eventName, resref, player, flag, type, target);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean bln) {
|
||||
cancelled = bln;
|
||||
}
|
||||
@Override
|
||||
public void setCancelled(boolean bln) {
|
||||
cancelled = bln;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
*/
|
||||
public class ResidenceChangedEvent extends ResidencePlayerEvent {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
|
||||
private ClaimedResidence from = null;
|
||||
private ClaimedResidence to = null;
|
||||
|
||||
@@ -37,38 +37,41 @@ public class ResidenceChangedEvent extends ResidencePlayerEvent {
|
||||
* Constructs a {@link ResidenceChangedEvent} to identify a residence transition for the
|
||||
* given player
|
||||
*
|
||||
* @param from the residence that the player left or {@code null} if coming from an
|
||||
* unprotected area.
|
||||
* @param to the residence that the player entered or {@code null} if entering an
|
||||
* unprotected area.
|
||||
* @param player player involved in the transition
|
||||
* @param from
|
||||
* the residence that the player left or {@code null} if coming from an
|
||||
* unprotected area.
|
||||
* @param to
|
||||
* the residence that the player entered or {@code null} if entering an
|
||||
* unprotected area.
|
||||
* @param player
|
||||
* player involved in the transition
|
||||
*/
|
||||
public ResidenceChangedEvent(ClaimedResidence from, ClaimedResidence to, Player player) {
|
||||
super("RESIDENCE_CHANGE", null, player);
|
||||
this.from = from;
|
||||
this.to = to;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the residence from which player came.
|
||||
*
|
||||
* @return the residence from which player came or {@code null} if player came from an
|
||||
* unprotected area
|
||||
* unprotected area
|
||||
*/
|
||||
public ClaimedResidence getFrom() {
|
||||
return from;
|
||||
return from;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the residence that player has entered.
|
||||
*
|
||||
* @return the residence that player has entered or {@code null} if player enters an
|
||||
* unprotected area
|
||||
* unprotected area
|
||||
*/
|
||||
public ClaimedResidence getTo() {
|
||||
return to;
|
||||
return to;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
public class ResidenceChatEvent extends CancellableResidencePlayerEvent {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
@@ -28,30 +29,26 @@ public class ResidenceChatEvent extends CancellableResidencePlayerEvent {
|
||||
|
||||
protected String message;
|
||||
ChatColor color;
|
||||
|
||||
|
||||
public ResidenceChatEvent(ClaimedResidence resref, Player player, String message, ChatColor color) {
|
||||
super("RESIDENCE_CHAT_EVENT", resref, player);
|
||||
this.message = message;
|
||||
this.color = color;
|
||||
}
|
||||
|
||||
public String getChatMessage()
|
||||
{
|
||||
|
||||
public String getChatMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setChatMessage(String newmessage)
|
||||
{
|
||||
|
||||
public void setChatMessage(String newmessage) {
|
||||
message = newmessage;
|
||||
}
|
||||
|
||||
public ChatColor getColor()
|
||||
{
|
||||
|
||||
public ChatColor getColor() {
|
||||
return color;
|
||||
}
|
||||
|
||||
public void setColor(ChatColor c)
|
||||
{
|
||||
|
||||
public void setColor(ChatColor c) {
|
||||
color = c;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,53 +16,51 @@ import org.bukkit.event.HandlerList;
|
||||
*/
|
||||
public class ResidenceCommandEvent extends Event implements Cancellable {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
protected boolean cancelled;
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
protected String cmd;
|
||||
protected String arglist[];
|
||||
CommandSender commandsender;
|
||||
public ResidenceCommandEvent(String command, String args[], CommandSender sender)
|
||||
{
|
||||
super();
|
||||
cancelled = false;
|
||||
arglist = args;
|
||||
cmd = command;
|
||||
commandsender = sender;
|
||||
}
|
||||
protected boolean cancelled;
|
||||
|
||||
public String[] getArgs()
|
||||
{
|
||||
return arglist;
|
||||
}
|
||||
protected String cmd;
|
||||
protected String arglist[];
|
||||
CommandSender commandsender;
|
||||
|
||||
public String getCommand()
|
||||
{
|
||||
return cmd;
|
||||
}
|
||||
public ResidenceCommandEvent(String command, String args[], CommandSender sender) {
|
||||
super();
|
||||
cancelled = false;
|
||||
arglist = args;
|
||||
cmd = command;
|
||||
commandsender = sender;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
public String[] getArgs() {
|
||||
return arglist;
|
||||
}
|
||||
|
||||
public CommandSender getSender()
|
||||
{
|
||||
return commandsender;
|
||||
}
|
||||
public String getCommand() {
|
||||
return cmd;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean bln) {
|
||||
cancelled = bln;
|
||||
}
|
||||
public CommandSender getSender() {
|
||||
return commandsender;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCancelled(boolean bln) {
|
||||
cancelled = bln;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import com.bekvon.bukkit.residence.protection.CuboidArea;
|
||||
public class ResidenceCreationEvent extends CancellableResidencePlayerEvent {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
@@ -30,30 +31,25 @@ public class ResidenceCreationEvent extends CancellableResidencePlayerEvent {
|
||||
protected String resname;
|
||||
CuboidArea area;
|
||||
|
||||
public ResidenceCreationEvent(Player player, String newname, ClaimedResidence resref, CuboidArea resarea)
|
||||
{
|
||||
super("RESIDENCE_CREATE",resref,player);
|
||||
public ResidenceCreationEvent(Player player, String newname, ClaimedResidence resref, CuboidArea resarea) {
|
||||
super("RESIDENCE_CREATE", resref, player);
|
||||
resname = newname;
|
||||
area = resarea;
|
||||
}
|
||||
|
||||
public String getResidenceName()
|
||||
{
|
||||
public String getResidenceName() {
|
||||
return resname;
|
||||
}
|
||||
|
||||
public void setResidenceName(String name)
|
||||
{
|
||||
public void setResidenceName(String name) {
|
||||
resname = name;
|
||||
}
|
||||
|
||||
public CuboidArea getPhysicalArea()
|
||||
{
|
||||
public CuboidArea getPhysicalArea() {
|
||||
return area;
|
||||
}
|
||||
|
||||
public void setPhysicalArea(CuboidArea newarea)
|
||||
{
|
||||
public void setPhysicalArea(CuboidArea newarea) {
|
||||
area = newarea;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,19 +28,19 @@ public class ResidenceDeleteEvent extends CancellableResidencePlayerEvent {
|
||||
}
|
||||
|
||||
public enum DeleteCause {
|
||||
LEASE_EXPIRE,PLAYER_DELETE,OTHER
|
||||
LEASE_EXPIRE,
|
||||
PLAYER_DELETE,
|
||||
OTHER
|
||||
}
|
||||
|
||||
|
||||
DeleteCause cause;
|
||||
|
||||
public ResidenceDeleteEvent(Player player, ClaimedResidence resref, DeleteCause delcause)
|
||||
{
|
||||
public ResidenceDeleteEvent(Player player, ClaimedResidence resref, DeleteCause delcause) {
|
||||
super("RESIDENCE_DELETE", resref, player);
|
||||
cause = delcause;
|
||||
}
|
||||
|
||||
public DeleteCause getCause()
|
||||
{
|
||||
public DeleteCause getCause() {
|
||||
return cause;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,32 +16,31 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
*/
|
||||
public class ResidenceEvent extends Event {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
private String message;
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
ClaimedResidence res;
|
||||
private String message;
|
||||
|
||||
public ResidenceEvent(String eventName, ClaimedResidence resref)
|
||||
{
|
||||
message = eventName;
|
||||
res = resref;
|
||||
}
|
||||
ClaimedResidence res;
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
public ResidenceEvent(String eventName, ClaimedResidence resref) {
|
||||
message = eventName;
|
||||
res = resref;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
public ClaimedResidence getResidence()
|
||||
{
|
||||
return res;
|
||||
}
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public ClaimedResidence getResidence() {
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions.FlagState;
|
||||
public class ResidenceFlagChangeEvent extends CancellableResidencePlayerFlagEvent {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
@@ -29,14 +30,12 @@ public class ResidenceFlagChangeEvent extends CancellableResidencePlayerFlagEven
|
||||
|
||||
FlagState newstate;
|
||||
|
||||
public ResidenceFlagChangeEvent(ClaimedResidence resref, Player player, String flag, FlagType type,FlagState newState, String target)
|
||||
{
|
||||
public ResidenceFlagChangeEvent(ClaimedResidence resref, Player player, String flag, FlagType type, FlagState newState, String target) {
|
||||
super("RESIDENCE_FLAG_CHANGE", resref, player, flag, type, target);
|
||||
newstate = newState;
|
||||
}
|
||||
|
||||
public FlagState getNewState()
|
||||
{
|
||||
public FlagState getNewState() {
|
||||
return newstate;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,46 +14,42 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
* @author Administrator
|
||||
*/
|
||||
public class ResidenceFlagCheckEvent extends ResidenceFlagEvent {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
private boolean override;
|
||||
private boolean override;
|
||||
|
||||
private boolean overridevalue;
|
||||
boolean defaultvalue;
|
||||
public ResidenceFlagCheckEvent(ClaimedResidence resref, String flag, FlagType type, String target, boolean defaultValue)
|
||||
{
|
||||
super("RESIDENCE_FLAG_CHECK", resref, flag, type, target);
|
||||
defaultvalue = defaultValue;
|
||||
override = false;
|
||||
}
|
||||
private boolean overridevalue;
|
||||
boolean defaultvalue;
|
||||
|
||||
public boolean getDefaultValue()
|
||||
{
|
||||
return defaultvalue;
|
||||
}
|
||||
public ResidenceFlagCheckEvent(ClaimedResidence resref, String flag, FlagType type, String target, boolean defaultValue) {
|
||||
super("RESIDENCE_FLAG_CHECK", resref, flag, type, target);
|
||||
defaultvalue = defaultValue;
|
||||
override = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
public boolean getDefaultValue() {
|
||||
return defaultvalue;
|
||||
}
|
||||
|
||||
public boolean getOverrideValue()
|
||||
{
|
||||
return overridevalue;
|
||||
}
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
public boolean isOverriden()
|
||||
{
|
||||
return override;
|
||||
}
|
||||
public boolean getOverrideValue() {
|
||||
return overridevalue;
|
||||
}
|
||||
|
||||
public void overrideCheck(boolean flagval)
|
||||
{
|
||||
overridevalue = flagval;
|
||||
override=true;
|
||||
}
|
||||
public boolean isOverriden() {
|
||||
return override;
|
||||
}
|
||||
|
||||
public void overrideCheck(boolean flagval) {
|
||||
overridevalue = flagval;
|
||||
override = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.bekvon.bukkit.residence.protection.FlagPermissions.FlagState;
|
||||
public class ResidenceFlagEvent extends ResidenceEvent {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
@@ -25,10 +26,11 @@ public class ResidenceFlagEvent extends ResidenceEvent {
|
||||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
public enum FlagType
|
||||
{
|
||||
RESIDENCE,GROUP,PLAYER
|
||||
|
||||
public enum FlagType {
|
||||
RESIDENCE,
|
||||
GROUP,
|
||||
PLAYER
|
||||
}
|
||||
|
||||
String flagname;
|
||||
@@ -36,26 +38,22 @@ public class ResidenceFlagEvent extends ResidenceEvent {
|
||||
FlagState flagstate;
|
||||
String flagtarget;
|
||||
|
||||
public ResidenceFlagEvent(String eventName, ClaimedResidence resref, String flag, FlagType type, String target)
|
||||
{
|
||||
public ResidenceFlagEvent(String eventName, ClaimedResidence resref, String flag, FlagType type, String target) {
|
||||
super(eventName, resref);
|
||||
flagname = flag;
|
||||
flagtype = type;
|
||||
flagtarget = target;
|
||||
}
|
||||
|
||||
public String getFlag()
|
||||
{
|
||||
public String getFlag() {
|
||||
return flagname;
|
||||
}
|
||||
|
||||
public FlagType getFlagType()
|
||||
{
|
||||
public FlagType getFlagType() {
|
||||
return flagtype;
|
||||
}
|
||||
|
||||
public String getFlagTargetPlayerOrGroup()
|
||||
{
|
||||
public String getFlagTargetPlayerOrGroup() {
|
||||
return flagtarget;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
package com.bekvon.bukkit.residence.event;
|
||||
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
@@ -15,6 +16,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
public class ResidenceOwnerChangeEvent extends ResidenceEvent {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
@@ -26,14 +28,12 @@ public class ResidenceOwnerChangeEvent extends ResidenceEvent {
|
||||
|
||||
protected String newowner;
|
||||
|
||||
public ResidenceOwnerChangeEvent(ClaimedResidence resref, String newOwner)
|
||||
{
|
||||
super("RESIDENCE_OWNER_CHANGE",resref);
|
||||
public ResidenceOwnerChangeEvent(ClaimedResidence resref, String newOwner) {
|
||||
super("RESIDENCE_OWNER_CHANGE", resref);
|
||||
newowner = newOwner;
|
||||
}
|
||||
|
||||
public String getNewOwner()
|
||||
{
|
||||
public String getNewOwner() {
|
||||
return newowner;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,29 +15,29 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
*/
|
||||
public class ResidencePlayerEvent extends ResidenceEvent implements ResidencePlayerEventInterface {
|
||||
|
||||
Player p;
|
||||
Player p;
|
||||
|
||||
public ResidencePlayerEvent(final String eventName, final ClaimedResidence resref, final Player player) {
|
||||
super(eventName, resref);
|
||||
res = resref;
|
||||
p = player;
|
||||
}
|
||||
public ResidencePlayerEvent(final String eventName, final ClaimedResidence resref, final Player player) {
|
||||
super(eventName, resref);
|
||||
res = resref;
|
||||
p = player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return p;
|
||||
}
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return p;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAdmin() {
|
||||
if (isPlayer()) {
|
||||
return p.hasPermission("residence.admin") || p.isOp();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean isAdmin() {
|
||||
if (isPlayer()) {
|
||||
return p.hasPermission("residence.admin") || p.isOp();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlayer() {
|
||||
return p != null;
|
||||
}
|
||||
@Override
|
||||
public boolean isPlayer() {
|
||||
return p != null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ import org.bukkit.entity.Player;
|
||||
*/
|
||||
public interface ResidencePlayerEventInterface {
|
||||
public boolean isAdmin();
|
||||
|
||||
public boolean isPlayer();
|
||||
|
||||
public Player getPlayer();
|
||||
}
|
||||
|
||||
@@ -14,28 +14,28 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
* @author Administrator
|
||||
*/
|
||||
public class ResidencePlayerFlagEvent extends ResidenceFlagEvent implements ResidencePlayerEventInterface {
|
||||
Player p;
|
||||
Player p;
|
||||
|
||||
public ResidencePlayerFlagEvent(final String eventName, final ClaimedResidence resref, final Player player, final String flag, final FlagType type, final String target) {
|
||||
super(eventName, resref, flag, type, target);
|
||||
p = player;
|
||||
}
|
||||
public ResidencePlayerFlagEvent(final String eventName, final ClaimedResidence resref, final Player player, final String flag, final FlagType type, final String target) {
|
||||
super(eventName, resref, flag, type, target);
|
||||
p = player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return p;
|
||||
}
|
||||
@Override
|
||||
public Player getPlayer() {
|
||||
return p;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAdmin() {
|
||||
if (isPlayer()) {
|
||||
return p.hasPermission("residence.admin") || p.isOp();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean isAdmin() {
|
||||
if (isPlayer()) {
|
||||
return p.hasPermission("residence.admin") || p.isOp();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlayer() {
|
||||
return p != null;
|
||||
}
|
||||
@Override
|
||||
public boolean isPlayer() {
|
||||
return p != null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,23 +3,27 @@ package com.bekvon.bukkit.residence.event;
|
||||
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
|
||||
public class ResidenceRenameEvent extends ResidenceEvent {
|
||||
protected String NewResName;
|
||||
protected String OldResName;
|
||||
protected ClaimedResidence res;
|
||||
public ResidenceRenameEvent(ClaimedResidence resref, String NewName, String OldName) {
|
||||
super("RESIDENCE_RENAME", resref);
|
||||
NewResName = NewName;
|
||||
OldResName = OldName;
|
||||
res = resref;
|
||||
}
|
||||
public String getNewResidenceName() {
|
||||
return NewResName;
|
||||
}
|
||||
public String getOldResidenceName() {
|
||||
return OldResName;
|
||||
}
|
||||
@Override
|
||||
public ClaimedResidence getResidence() {
|
||||
return res;
|
||||
}
|
||||
protected String NewResName;
|
||||
protected String OldResName;
|
||||
protected ClaimedResidence res;
|
||||
|
||||
public ResidenceRenameEvent(ClaimedResidence resref, String NewName, String OldName) {
|
||||
super("RESIDENCE_RENAME", resref);
|
||||
NewResName = NewName;
|
||||
OldResName = OldName;
|
||||
res = resref;
|
||||
}
|
||||
|
||||
public String getNewResidenceName() {
|
||||
return NewResName;
|
||||
}
|
||||
|
||||
public String getOldResidenceName() {
|
||||
return OldResName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClaimedResidence getResidence() {
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
public class ResidenceRentEvent extends CancellableResidencePlayerEvent {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
@@ -28,19 +29,20 @@ public class ResidenceRentEvent extends CancellableResidencePlayerEvent {
|
||||
|
||||
RentEventType eventtype;
|
||||
|
||||
public enum RentEventType
|
||||
{
|
||||
RENT, UNRENT, RENTABLE, UNRENTABLE, RENT_EXPIRE
|
||||
public enum RentEventType {
|
||||
RENT,
|
||||
UNRENT,
|
||||
RENTABLE,
|
||||
UNRENTABLE,
|
||||
RENT_EXPIRE
|
||||
}
|
||||
|
||||
public ResidenceRentEvent(ClaimedResidence resref, Player player, RentEventType type)
|
||||
{
|
||||
public ResidenceRentEvent(ClaimedResidence resref, Player player, RentEventType type) {
|
||||
super("RESIDENCE_RENT_EVENT", resref, player);
|
||||
eventtype = type;
|
||||
}
|
||||
|
||||
public RentEventType getCause()
|
||||
{
|
||||
public RentEventType getCause() {
|
||||
return eventtype;
|
||||
}
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
public class ResidenceTPEvent extends CancellableResidencePlayerEvent {
|
||||
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
@@ -29,20 +30,18 @@ public class ResidenceTPEvent extends CancellableResidencePlayerEvent {
|
||||
|
||||
Player reqPlayer;
|
||||
Location loc;
|
||||
public ResidenceTPEvent(ClaimedResidence resref, Location teleloc, Player player, Player reqplayer)
|
||||
{
|
||||
super("RESIDENCE_TP",resref,player);
|
||||
|
||||
public ResidenceTPEvent(ClaimedResidence resref, Location teleloc, Player player, Player reqplayer) {
|
||||
super("RESIDENCE_TP", resref, player);
|
||||
reqPlayer = reqplayer;
|
||||
loc = teleloc;
|
||||
}
|
||||
|
||||
public Player getRequestingPlayer()
|
||||
{
|
||||
public Player getRequestingPlayer() {
|
||||
return reqPlayer;
|
||||
}
|
||||
|
||||
public Location getTeleportLocation()
|
||||
{
|
||||
public Location getTeleportLocation() {
|
||||
return loc;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -25,190 +25,190 @@ import com.bekvon.bukkit.residence.protection.ResidenceManager.ChunkRef;
|
||||
* @author Administrator
|
||||
*/
|
||||
public class CuboidArea {
|
||||
protected Location highPoints;
|
||||
protected Location lowPoints;
|
||||
protected Location highPoints;
|
||||
protected Location lowPoints;
|
||||
|
||||
public CuboidArea(final Location startLoc, final Location endLoc) {
|
||||
int highx, highy, highz, lowx, lowy, lowz;
|
||||
if (startLoc.getBlockX() > endLoc.getBlockX()) {
|
||||
highx = startLoc.getBlockX();
|
||||
lowx = endLoc.getBlockX();
|
||||
} else {
|
||||
highx = endLoc.getBlockX();
|
||||
lowx = startLoc.getBlockX();
|
||||
}
|
||||
if (startLoc.getBlockY() > endLoc.getBlockY()) {
|
||||
highy = startLoc.getBlockY();
|
||||
lowy = endLoc.getBlockY();
|
||||
} else {
|
||||
highy = endLoc.getBlockY();
|
||||
lowy = startLoc.getBlockY();
|
||||
}
|
||||
if (startLoc.getBlockZ() > endLoc.getBlockZ()) {
|
||||
highz = startLoc.getBlockZ();
|
||||
lowz = endLoc.getBlockZ();
|
||||
} else {
|
||||
highz = endLoc.getBlockZ();
|
||||
lowz = startLoc.getBlockZ();
|
||||
}
|
||||
highPoints = new Location(startLoc.getWorld(), highx, highy, highz);
|
||||
lowPoints = new Location(startLoc.getWorld(), lowx, lowy, lowz);
|
||||
}
|
||||
public CuboidArea(final Location startLoc, final Location endLoc) {
|
||||
int highx, highy, highz, lowx, lowy, lowz;
|
||||
if (startLoc.getBlockX() > endLoc.getBlockX()) {
|
||||
highx = startLoc.getBlockX();
|
||||
lowx = endLoc.getBlockX();
|
||||
} else {
|
||||
highx = endLoc.getBlockX();
|
||||
lowx = startLoc.getBlockX();
|
||||
}
|
||||
if (startLoc.getBlockY() > endLoc.getBlockY()) {
|
||||
highy = startLoc.getBlockY();
|
||||
lowy = endLoc.getBlockY();
|
||||
} else {
|
||||
highy = endLoc.getBlockY();
|
||||
lowy = startLoc.getBlockY();
|
||||
}
|
||||
if (startLoc.getBlockZ() > endLoc.getBlockZ()) {
|
||||
highz = startLoc.getBlockZ();
|
||||
lowz = endLoc.getBlockZ();
|
||||
} else {
|
||||
highz = endLoc.getBlockZ();
|
||||
lowz = startLoc.getBlockZ();
|
||||
}
|
||||
highPoints = new Location(startLoc.getWorld(), highx, highy, highz);
|
||||
lowPoints = new Location(startLoc.getWorld(), lowx, lowy, lowz);
|
||||
}
|
||||
|
||||
protected CuboidArea() {
|
||||
}
|
||||
protected CuboidArea() {
|
||||
}
|
||||
|
||||
public static CuboidArea load(final DataInputStream in, final int version) throws IOException {
|
||||
final CuboidArea newArea = new CuboidArea();
|
||||
final Server server = Bukkit.getServer();
|
||||
final World world = server.getWorld(in.readUTF());
|
||||
final int highx = in.readInt();
|
||||
final int highy = in.readInt();
|
||||
final int highz = in.readInt();
|
||||
final int lowx = in.readInt();
|
||||
final int lowy = in.readInt();
|
||||
final int lowz = in.readInt();
|
||||
newArea.highPoints = new Location(world, highx, highy, highz);
|
||||
newArea.lowPoints = new Location(world, lowx, lowy, lowz);
|
||||
return newArea;
|
||||
}
|
||||
public static CuboidArea load(final DataInputStream in, final int version) throws IOException {
|
||||
final CuboidArea newArea = new CuboidArea();
|
||||
final Server server = Bukkit.getServer();
|
||||
final World world = server.getWorld(in.readUTF());
|
||||
final int highx = in.readInt();
|
||||
final int highy = in.readInt();
|
||||
final int highz = in.readInt();
|
||||
final int lowx = in.readInt();
|
||||
final int lowy = in.readInt();
|
||||
final int lowz = in.readInt();
|
||||
newArea.highPoints = new Location(world, highx, highy, highz);
|
||||
newArea.lowPoints = new Location(world, lowx, lowy, lowz);
|
||||
return newArea;
|
||||
}
|
||||
|
||||
public static CuboidArea load(final Map<String, Object> root, final World world) throws Exception {
|
||||
if (root == null) {
|
||||
throw new Exception("Invalid residence physical location...");
|
||||
}
|
||||
final CuboidArea newArea = new CuboidArea();
|
||||
final int x1 = (Integer) root.get("X1");
|
||||
final int y1 = (Integer) root.get("Y1");
|
||||
final int z1 = (Integer) root.get("Z1");
|
||||
final int x2 = (Integer) root.get("X2");
|
||||
final int y2 = (Integer) root.get("Y2");
|
||||
final int z2 = (Integer) root.get("Z2");
|
||||
newArea.highPoints = new Location(world, x1, y1, z1);
|
||||
newArea.lowPoints = new Location(world, x2, y2, z2);
|
||||
return newArea;
|
||||
}
|
||||
public static CuboidArea load(final Map<String, Object> root, final World world) throws Exception {
|
||||
if (root == null) {
|
||||
throw new Exception("Invalid residence physical location...");
|
||||
}
|
||||
final CuboidArea newArea = new CuboidArea();
|
||||
final int x1 = (Integer) root.get("X1");
|
||||
final int y1 = (Integer) root.get("Y1");
|
||||
final int z1 = (Integer) root.get("Z1");
|
||||
final int x2 = (Integer) root.get("X2");
|
||||
final int y2 = (Integer) root.get("Y2");
|
||||
final int z2 = (Integer) root.get("Z2");
|
||||
newArea.highPoints = new Location(world, x1, y1, z1);
|
||||
newArea.lowPoints = new Location(world, x2, y2, z2);
|
||||
return newArea;
|
||||
}
|
||||
|
||||
public boolean checkCollision(final CuboidArea area) {
|
||||
if (!area.getWorld().equals(this.getWorld())) {
|
||||
return false;
|
||||
}
|
||||
if (area.containsLoc(lowPoints) || area.containsLoc(highPoints) || this.containsLoc(area.highPoints) || this.containsLoc(area.lowPoints)) {
|
||||
return true;
|
||||
}
|
||||
return advCuboidCheckCollision(highPoints, lowPoints, area.highPoints, area.lowPoints);
|
||||
}
|
||||
public boolean checkCollision(final CuboidArea area) {
|
||||
if (!area.getWorld().equals(this.getWorld())) {
|
||||
return false;
|
||||
}
|
||||
if (area.containsLoc(lowPoints) || area.containsLoc(highPoints) || this.containsLoc(area.highPoints) || this.containsLoc(area.lowPoints)) {
|
||||
return true;
|
||||
}
|
||||
return advCuboidCheckCollision(highPoints, lowPoints, area.highPoints, area.lowPoints);
|
||||
}
|
||||
|
||||
public boolean containsLoc(final Location loc) {
|
||||
if (loc == null) {
|
||||
return false;
|
||||
}
|
||||
if (!loc.getWorld().equals(highPoints.getWorld())) {
|
||||
return false;
|
||||
}
|
||||
if (lowPoints.getBlockX() <= loc.getBlockX() && highPoints.getBlockX() >= loc.getBlockX()) {
|
||||
if (lowPoints.getBlockZ() <= loc.getBlockZ() && highPoints.getBlockZ() >= loc.getBlockZ()) {
|
||||
if (lowPoints.getBlockY() <= loc.getBlockY() && highPoints.getBlockY() >= loc.getBlockY()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean containsLoc(final Location loc) {
|
||||
if (loc == null) {
|
||||
return false;
|
||||
}
|
||||
if (!loc.getWorld().equals(highPoints.getWorld())) {
|
||||
return false;
|
||||
}
|
||||
if (lowPoints.getBlockX() <= loc.getBlockX() && highPoints.getBlockX() >= loc.getBlockX()) {
|
||||
if (lowPoints.getBlockZ() <= loc.getBlockZ() && highPoints.getBlockZ() >= loc.getBlockZ()) {
|
||||
if (lowPoints.getBlockY() <= loc.getBlockY() && highPoints.getBlockY() >= loc.getBlockY()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<ChunkRef> getChunks() {
|
||||
final List<ChunkRef> chunks = new ArrayList<ChunkRef>();
|
||||
final Location high = this.highPoints;
|
||||
final Location low = this.lowPoints;
|
||||
final int lowX = ChunkRef.getChunkCoord(low.getBlockX());
|
||||
final int lowZ = ChunkRef.getChunkCoord(low.getBlockZ());
|
||||
final int highX = ChunkRef.getChunkCoord(high.getBlockX());
|
||||
final int highZ = ChunkRef.getChunkCoord(high.getBlockZ());
|
||||
public List<ChunkRef> getChunks() {
|
||||
final List<ChunkRef> chunks = new ArrayList<ChunkRef>();
|
||||
final Location high = this.highPoints;
|
||||
final Location low = this.lowPoints;
|
||||
final int lowX = ChunkRef.getChunkCoord(low.getBlockX());
|
||||
final int lowZ = ChunkRef.getChunkCoord(low.getBlockZ());
|
||||
final int highX = ChunkRef.getChunkCoord(high.getBlockX());
|
||||
final int highZ = ChunkRef.getChunkCoord(high.getBlockZ());
|
||||
|
||||
for (int x = lowX; x <= highX; x++) {
|
||||
for (int z = lowZ; z <= highZ; z++) {
|
||||
chunks.add(new ChunkRef(x, z));
|
||||
}
|
||||
}
|
||||
return chunks;
|
||||
}
|
||||
for (int x = lowX; x <= highX; x++) {
|
||||
for (int z = lowZ; z <= highZ; z++) {
|
||||
chunks.add(new ChunkRef(x, z));
|
||||
}
|
||||
}
|
||||
return chunks;
|
||||
}
|
||||
|
||||
public Location getHighLoc() {
|
||||
return highPoints;
|
||||
}
|
||||
public Location getHighLoc() {
|
||||
return highPoints;
|
||||
}
|
||||
|
||||
public Location getLowLoc() {
|
||||
return lowPoints;
|
||||
}
|
||||
public Location getLowLoc() {
|
||||
return lowPoints;
|
||||
}
|
||||
|
||||
public long getSize() {
|
||||
final int xsize = (highPoints.getBlockX() - lowPoints.getBlockX()) + 1;
|
||||
final int ysize = (highPoints.getBlockY() - lowPoints.getBlockY()) + 1;
|
||||
final int zsize = (highPoints.getBlockZ() - lowPoints.getBlockZ()) + 1;
|
||||
return xsize * ysize * zsize;
|
||||
}
|
||||
public long getSize() {
|
||||
final int xsize = (highPoints.getBlockX() - lowPoints.getBlockX()) + 1;
|
||||
final int ysize = (highPoints.getBlockY() - lowPoints.getBlockY()) + 1;
|
||||
final int zsize = (highPoints.getBlockZ() - lowPoints.getBlockZ()) + 1;
|
||||
return xsize * ysize * zsize;
|
||||
}
|
||||
|
||||
public World getWorld() {
|
||||
return highPoints.getWorld();
|
||||
}
|
||||
public World getWorld() {
|
||||
return highPoints.getWorld();
|
||||
}
|
||||
|
||||
public int getXSize() {
|
||||
return (highPoints.getBlockX() - lowPoints.getBlockX()) + 1;
|
||||
}
|
||||
public int getXSize() {
|
||||
return (highPoints.getBlockX() - lowPoints.getBlockX()) + 1;
|
||||
}
|
||||
|
||||
public int getYSize() {
|
||||
return (highPoints.getBlockY() - lowPoints.getBlockY()) + 1;
|
||||
}
|
||||
public int getYSize() {
|
||||
return (highPoints.getBlockY() - lowPoints.getBlockY()) + 1;
|
||||
}
|
||||
|
||||
public int getZSize() {
|
||||
return (highPoints.getBlockZ() - lowPoints.getBlockZ()) + 1;
|
||||
}
|
||||
public int getZSize() {
|
||||
return (highPoints.getBlockZ() - lowPoints.getBlockZ()) + 1;
|
||||
}
|
||||
|
||||
public boolean isAreaWithinArea(final CuboidArea area) {
|
||||
return (this.containsLoc(area.highPoints) && this.containsLoc(area.lowPoints));
|
||||
}
|
||||
public boolean isAreaWithinArea(final CuboidArea area) {
|
||||
return (this.containsLoc(area.highPoints) && this.containsLoc(area.lowPoints));
|
||||
}
|
||||
|
||||
public Map<String, Object> save() {
|
||||
final Map<String, Object> root = new LinkedHashMap<String, Object>();
|
||||
root.put("X1", this.highPoints.getBlockX());
|
||||
root.put("Y1", this.highPoints.getBlockY());
|
||||
root.put("Z1", this.highPoints.getBlockZ());
|
||||
root.put("X2", this.lowPoints.getBlockX());
|
||||
root.put("Y2", this.lowPoints.getBlockY());
|
||||
root.put("Z2", this.lowPoints.getBlockZ());
|
||||
return root;
|
||||
}
|
||||
public Map<String, Object> save() {
|
||||
final Map<String, Object> root = new LinkedHashMap<String, Object>();
|
||||
root.put("X1", this.highPoints.getBlockX());
|
||||
root.put("Y1", this.highPoints.getBlockY());
|
||||
root.put("Z1", this.highPoints.getBlockZ());
|
||||
root.put("X2", this.lowPoints.getBlockX());
|
||||
root.put("Y2", this.lowPoints.getBlockY());
|
||||
root.put("Z2", this.lowPoints.getBlockZ());
|
||||
return root;
|
||||
}
|
||||
|
||||
public void save(final DataOutputStream out, final int version) throws IOException {
|
||||
out.writeUTF(highPoints.getWorld().getName());
|
||||
out.writeInt(highPoints.getBlockX());
|
||||
out.writeInt(highPoints.getBlockY());
|
||||
out.writeInt(highPoints.getBlockZ());
|
||||
out.writeInt(lowPoints.getBlockX());
|
||||
out.writeInt(lowPoints.getBlockY());
|
||||
out.writeInt(lowPoints.getBlockZ());
|
||||
}
|
||||
public void save(final DataOutputStream out, final int version) throws IOException {
|
||||
out.writeUTF(highPoints.getWorld().getName());
|
||||
out.writeInt(highPoints.getBlockX());
|
||||
out.writeInt(highPoints.getBlockY());
|
||||
out.writeInt(highPoints.getBlockZ());
|
||||
out.writeInt(lowPoints.getBlockX());
|
||||
out.writeInt(lowPoints.getBlockY());
|
||||
out.writeInt(lowPoints.getBlockZ());
|
||||
}
|
||||
|
||||
private boolean advCuboidCheckCollision(final Location A1High, final Location A1Low, final Location A2High, final Location A2Low) {
|
||||
final int A1HX = A1High.getBlockX();
|
||||
final int A1LX = A1Low.getBlockX();
|
||||
final int A1HY = A1High.getBlockY();
|
||||
final int A1LY = A1Low.getBlockY();
|
||||
final int A1HZ = A1High.getBlockZ();
|
||||
final int A1LZ = A1Low.getBlockZ();
|
||||
final int A2HX = A2High.getBlockX();
|
||||
final int A2LX = A2Low.getBlockX();
|
||||
final int A2HY = A2High.getBlockY();
|
||||
final int A2LY = A2Low.getBlockY();
|
||||
final int A2HZ = A2High.getBlockZ();
|
||||
final int A2LZ = A2Low.getBlockZ();
|
||||
if ((A1HX >= A2LX && A1HX <= A2HX) || (A1LX >= A2LX && A1LX <= A2HX) || (A2HX >= A1LX && A2HX <= A1HX) || (A2LX >= A1LX && A2LX <= A1HX)) {
|
||||
if ((A1HY >= A2LY && A1HY <= A2HY) || (A1LY >= A2LY && A1LY <= A2HY) || (A2HY >= A1LY && A2HY <= A1HY) || (A2LY >= A1LY && A2LY <= A1HY)) {
|
||||
if ((A1HZ >= A2LZ && A1HZ <= A2HZ) || (A1LZ >= A2LZ && A1LZ <= A2HZ) || (A2HZ >= A1LZ && A2HZ <= A1HZ) || (A2LZ >= A1LZ && A2LZ <= A1HZ)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private boolean advCuboidCheckCollision(final Location A1High, final Location A1Low, final Location A2High, final Location A2Low) {
|
||||
final int A1HX = A1High.getBlockX();
|
||||
final int A1LX = A1Low.getBlockX();
|
||||
final int A1HY = A1High.getBlockY();
|
||||
final int A1LY = A1Low.getBlockY();
|
||||
final int A1HZ = A1High.getBlockZ();
|
||||
final int A1LZ = A1Low.getBlockZ();
|
||||
final int A2HX = A2High.getBlockX();
|
||||
final int A2LX = A2Low.getBlockX();
|
||||
final int A2HY = A2High.getBlockY();
|
||||
final int A2LY = A2Low.getBlockY();
|
||||
final int A2HZ = A2High.getBlockZ();
|
||||
final int A2LZ = A2Low.getBlockZ();
|
||||
if ((A1HX >= A2LX && A1HX <= A2HX) || (A1LX >= A2LX && A1LX <= A2HX) || (A2HX >= A1LX && A2HX <= A1HX) || (A2LX >= A1LX && A2LX <= A1HX)) {
|
||||
if ((A1HY >= A2LY && A1HY <= A2HY) || (A1LY >= A2LY && A1LY <= A2HY) || (A2HY >= A1LY && A2HY <= A1HY) || (A2LY >= A1LY && A2LY <= A1HY)) {
|
||||
if ((A1HZ >= A2LZ && A1HZ <= A2HZ) || (A1LZ >= A2LZ && A1LZ <= A2HZ) || (A2HZ >= A1LZ && A2HZ <= A1HZ) || (A2LZ >= A1LZ && A2LZ <= A1HZ)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -29,211 +29,211 @@ import cn.citycraft.Residence.permissions.PermissionGroup;
|
||||
*/
|
||||
public class LeaseManager {
|
||||
|
||||
private Map<String, Long> leaseExpireTime;
|
||||
private Map<String, Long> leaseExpireTime;
|
||||
|
||||
ResidenceManager manager;
|
||||
ResidenceMain plugin;
|
||||
ResidenceManager manager;
|
||||
ResidenceMain plugin;
|
||||
|
||||
public LeaseManager(final ResidenceMain plugin, final ResidenceManager m) {
|
||||
this.plugin = plugin;
|
||||
manager = m;
|
||||
leaseExpireTime = Collections.synchronizedMap(new HashMap<String, Long>());
|
||||
}
|
||||
public LeaseManager(final ResidenceMain plugin, final ResidenceManager m) {
|
||||
this.plugin = plugin;
|
||||
manager = m;
|
||||
leaseExpireTime = Collections.synchronizedMap(new HashMap<String, Long>());
|
||||
}
|
||||
|
||||
public static LeaseManager load(final ResidenceMain plugin, final Map<String, Long> root, final ResidenceManager m) {
|
||||
final LeaseManager l = new LeaseManager(plugin, m);
|
||||
if (root != null) {
|
||||
for (final Object val : root.values()) {
|
||||
if (!(val instanceof Long)) {
|
||||
root.remove(val);
|
||||
}
|
||||
}
|
||||
l.leaseExpireTime = Collections.synchronizedMap(root);
|
||||
}
|
||||
return l;
|
||||
}
|
||||
public static LeaseManager load(final ResidenceMain plugin, final Map<String, Long> root, final ResidenceManager m) {
|
||||
final LeaseManager l = new LeaseManager(plugin, m);
|
||||
if (root != null) {
|
||||
for (final Object val : root.values()) {
|
||||
if (!(val instanceof Long)) {
|
||||
root.remove(val);
|
||||
}
|
||||
}
|
||||
l.leaseExpireTime = Collections.synchronizedMap(root);
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
public void doExpirations() {
|
||||
final Set<Entry<String, Long>> set = leaseExpireTime.entrySet();
|
||||
final Iterator<Entry<String, Long>> it = set.iterator();
|
||||
while (it.hasNext()) {
|
||||
final Entry<String, Long> next = it.next();
|
||||
if (next.getValue() <= System.currentTimeMillis()) {
|
||||
final String resname = next.getKey();
|
||||
final ClaimedResidence res = plugin.getResidenceManager().getByName(resname);
|
||||
if (res == null) {
|
||||
it.remove();
|
||||
} else {
|
||||
boolean renewed = false;
|
||||
final String owner = res.getPermissions().getOwner();
|
||||
final PermissionGroup limits = plugin.getPermissionManager().getGroup(owner, res.getPermissions().getWorld());
|
||||
final int cost = this.getRenewCost(res);
|
||||
if (plugin.getConfigManager().enableEconomy() && plugin.getConfigManager().autoRenewLeases()) {
|
||||
if (cost == 0) {
|
||||
renewed = true;
|
||||
} else if (res.getBank().hasEnough(cost)) {
|
||||
res.getBank().subtract(cost);
|
||||
renewed = true;
|
||||
if (plugin.getConfigManager().debugEnabled()) {
|
||||
plugin.getLogger().info("Lease Renewed From Residence Bank: " + resname);
|
||||
}
|
||||
} else if (plugin.getEconomyManager().canAfford(owner, cost)) {
|
||||
if (plugin.getEconomyManager().subtract(owner, cost)) {
|
||||
renewed = true;
|
||||
if (plugin.getConfigManager().debugEnabled()) {
|
||||
plugin.getLogger().info("Lease Renewed From Economy: " + resname);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!renewed) {
|
||||
if (!plugin.getConfigManager().enabledRentSystem() || !plugin.getRentManager().isRented(resname)) {
|
||||
final ResidenceDeleteEvent resevent = new ResidenceDeleteEvent(null, res, DeleteCause.LEASE_EXPIRE);
|
||||
plugin.getServer().getPluginManager().callEvent(resevent);
|
||||
if (!resevent.isCancelled()) {
|
||||
manager.removeResidence(next.getKey());
|
||||
it.remove();
|
||||
if (plugin.getConfigManager().debugEnabled()) {
|
||||
plugin.getLogger().info("Lease NOT removed, Removing: " + resname);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (plugin.getConfigManager().enableEconomy() && plugin.getConfigManager().enableLeaseMoneyAccount()) {
|
||||
plugin.getEconomyManager().add("Lease Money", cost);
|
||||
}
|
||||
if (plugin.getConfigManager().debugEnabled()) {
|
||||
plugin.getLogger().info("Lease Renew Old: " + next.getValue());
|
||||
}
|
||||
next.setValue(System.currentTimeMillis() + daysToMs(limits.getLeaseGiveTime()));
|
||||
if (plugin.getConfigManager().debugEnabled()) {
|
||||
plugin.getLogger().info("Lease Renew New: " + next.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void doExpirations() {
|
||||
final Set<Entry<String, Long>> set = leaseExpireTime.entrySet();
|
||||
final Iterator<Entry<String, Long>> it = set.iterator();
|
||||
while (it.hasNext()) {
|
||||
final Entry<String, Long> next = it.next();
|
||||
if (next.getValue() <= System.currentTimeMillis()) {
|
||||
final String resname = next.getKey();
|
||||
final ClaimedResidence res = plugin.getResidenceManager().getByName(resname);
|
||||
if (res == null) {
|
||||
it.remove();
|
||||
} else {
|
||||
boolean renewed = false;
|
||||
final String owner = res.getPermissions().getOwner();
|
||||
final PermissionGroup limits = plugin.getPermissionManager().getGroup(owner, res.getPermissions().getWorld());
|
||||
final int cost = this.getRenewCost(res);
|
||||
if (plugin.getConfigManager().enableEconomy() && plugin.getConfigManager().autoRenewLeases()) {
|
||||
if (cost == 0) {
|
||||
renewed = true;
|
||||
} else if (res.getBank().hasEnough(cost)) {
|
||||
res.getBank().subtract(cost);
|
||||
renewed = true;
|
||||
if (plugin.getConfigManager().debugEnabled()) {
|
||||
plugin.getLogger().info("Lease Renewed From Residence Bank: " + resname);
|
||||
}
|
||||
} else if (plugin.getEconomyManager().canAfford(owner, cost)) {
|
||||
if (plugin.getEconomyManager().subtract(owner, cost)) {
|
||||
renewed = true;
|
||||
if (plugin.getConfigManager().debugEnabled()) {
|
||||
plugin.getLogger().info("Lease Renewed From Economy: " + resname);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!renewed) {
|
||||
if (!plugin.getConfigManager().enabledRentSystem() || !plugin.getRentManager().isRented(resname)) {
|
||||
final ResidenceDeleteEvent resevent = new ResidenceDeleteEvent(null, res, DeleteCause.LEASE_EXPIRE);
|
||||
plugin.getServer().getPluginManager().callEvent(resevent);
|
||||
if (!resevent.isCancelled()) {
|
||||
manager.removeResidence(next.getKey());
|
||||
it.remove();
|
||||
if (plugin.getConfigManager().debugEnabled()) {
|
||||
plugin.getLogger().info("Lease NOT removed, Removing: " + resname);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (plugin.getConfigManager().enableEconomy() && plugin.getConfigManager().enableLeaseMoneyAccount()) {
|
||||
plugin.getEconomyManager().add("Lease Money", cost);
|
||||
}
|
||||
if (plugin.getConfigManager().debugEnabled()) {
|
||||
plugin.getLogger().info("Lease Renew Old: " + next.getValue());
|
||||
}
|
||||
next.setValue(System.currentTimeMillis() + daysToMs(limits.getLeaseGiveTime()));
|
||||
if (plugin.getConfigManager().debugEnabled()) {
|
||||
plugin.getLogger().info("Lease Renew New: " + next.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Date getExpireTime(final String area) {
|
||||
if (leaseExpireTime.containsKey(area)) {
|
||||
return new Date(leaseExpireTime.get(area));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public Date getExpireTime(final String area) {
|
||||
if (leaseExpireTime.containsKey(area)) {
|
||||
return new Date(leaseExpireTime.get(area));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getRenewCost(final ClaimedResidence res) {
|
||||
final PermissionGroup limits = plugin.getPermissionManager().getGroup(res.getPermissions().getOwner(), res.getPermissions().getWorld());
|
||||
final double cost = limits.getLeaseRenewCost();
|
||||
final int amount = (int) Math.ceil(res.getTotalSize() * cost);
|
||||
return amount;
|
||||
}
|
||||
public int getRenewCost(final ClaimedResidence res) {
|
||||
final PermissionGroup limits = plugin.getPermissionManager().getGroup(res.getPermissions().getOwner(), res.getPermissions().getWorld());
|
||||
final double cost = limits.getLeaseRenewCost();
|
||||
final int amount = (int) Math.ceil(res.getTotalSize() * cost);
|
||||
return amount;
|
||||
}
|
||||
|
||||
public boolean leaseExpires(final String area) {
|
||||
return leaseExpireTime.containsKey(area);
|
||||
}
|
||||
public boolean leaseExpires(final String area) {
|
||||
return leaseExpireTime.containsKey(area);
|
||||
}
|
||||
|
||||
public void removeExpireTime(final String area) {
|
||||
leaseExpireTime.remove(area);
|
||||
}
|
||||
public void removeExpireTime(final String area) {
|
||||
leaseExpireTime.remove(area);
|
||||
}
|
||||
|
||||
public void renewArea(final String area, final Player player) {
|
||||
if (!leaseExpires(area)) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("LeaseNotExpire"));
|
||||
return;
|
||||
}
|
||||
final PermissionGroup limits = plugin.getPermissionManager().getGroup(player);
|
||||
final int max = limits.getMaxLeaseTime();
|
||||
final int add = limits.getLeaseGiveTime();
|
||||
final int rem = daysRemaining(area);
|
||||
final EconomyInterface econ = plugin.getEconomyManager();
|
||||
if (econ != null) {
|
||||
final double cost = limits.getLeaseRenewCost();
|
||||
final ClaimedResidence res = manager.getByName(area);
|
||||
final int amount = (int) Math.ceil(res.getTotalSize() * cost);
|
||||
if (cost != 0D) {
|
||||
if (econ.canAfford(player.getName(), amount)) {
|
||||
econ.subtract(player.getName(), amount);
|
||||
econ.add("Lease Money", amount);
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("MoneyCharged",
|
||||
ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN));
|
||||
} else {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rem + add > max) {
|
||||
setExpireTime(player, area, max);
|
||||
player.sendMessage(ChatColor.GOLD + plugin.getLanguage().getPhrase("LeaseRenewMax"));
|
||||
player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseRenew", ChatColor.GREEN + "" + getExpireTime(area)) + ChatColor.YELLOW);
|
||||
return;
|
||||
}
|
||||
Long get = leaseExpireTime.get(area);
|
||||
if (get != null) {
|
||||
get = get + daysToMs(add);
|
||||
leaseExpireTime.put(area, get);
|
||||
} else {
|
||||
leaseExpireTime.put(area, daysToMs(add));
|
||||
}
|
||||
player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseRenew", ChatColor.GREEN + "" + getExpireTime(area)));
|
||||
}
|
||||
public void renewArea(final String area, final Player player) {
|
||||
if (!leaseExpires(area)) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("LeaseNotExpire"));
|
||||
return;
|
||||
}
|
||||
final PermissionGroup limits = plugin.getPermissionManager().getGroup(player);
|
||||
final int max = limits.getMaxLeaseTime();
|
||||
final int add = limits.getLeaseGiveTime();
|
||||
final int rem = daysRemaining(area);
|
||||
final EconomyInterface econ = plugin.getEconomyManager();
|
||||
if (econ != null) {
|
||||
final double cost = limits.getLeaseRenewCost();
|
||||
final ClaimedResidence res = manager.getByName(area);
|
||||
final int amount = (int) Math.ceil(res.getTotalSize() * cost);
|
||||
if (cost != 0D) {
|
||||
if (econ.canAfford(player.getName(), amount)) {
|
||||
econ.subtract(player.getName(), amount);
|
||||
econ.add("Lease Money", amount);
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("MoneyCharged",
|
||||
ChatColor.YELLOW + String.format("%d", amount) + ChatColor.GREEN + "." + ChatColor.YELLOW + econ.getName() + ChatColor.GREEN));
|
||||
} else {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotEnoughMoney"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rem + add > max) {
|
||||
setExpireTime(player, area, max);
|
||||
player.sendMessage(ChatColor.GOLD + plugin.getLanguage().getPhrase("LeaseRenewMax"));
|
||||
player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseRenew", ChatColor.GREEN + "" + getExpireTime(area)) + ChatColor.YELLOW);
|
||||
return;
|
||||
}
|
||||
Long get = leaseExpireTime.get(area);
|
||||
if (get != null) {
|
||||
get = get + daysToMs(add);
|
||||
leaseExpireTime.put(area, get);
|
||||
} else {
|
||||
leaseExpireTime.put(area, daysToMs(add));
|
||||
}
|
||||
player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("LeaseRenew", ChatColor.GREEN + "" + getExpireTime(area)));
|
||||
}
|
||||
|
||||
public void resetLeases() {
|
||||
leaseExpireTime.clear();
|
||||
final String[] list = manager.getResidenceList();
|
||||
for (final String element : list) {
|
||||
if (element != null) {
|
||||
final ClaimedResidence res = plugin.getResidenceManager().getByName(element);
|
||||
final PermissionGroup group = plugin.getPermissionManager().getGroup(res.getPermissions().getOwner(), res.getPermissions().getWorld());
|
||||
this.setExpireTime(null, element, group.getLeaseGiveTime());
|
||||
}
|
||||
}
|
||||
plugin.getLogger().info(" - Set default leases.");
|
||||
}
|
||||
public void resetLeases() {
|
||||
leaseExpireTime.clear();
|
||||
final String[] list = manager.getResidenceList();
|
||||
for (final String element : list) {
|
||||
if (element != null) {
|
||||
final ClaimedResidence res = plugin.getResidenceManager().getByName(element);
|
||||
final PermissionGroup group = plugin.getPermissionManager().getGroup(res.getPermissions().getOwner(), res.getPermissions().getWorld());
|
||||
this.setExpireTime(null, element, group.getLeaseGiveTime());
|
||||
}
|
||||
}
|
||||
plugin.getLogger().info(" - Set default leases.");
|
||||
}
|
||||
|
||||
public Map<String, Long> save() {
|
||||
return leaseExpireTime;
|
||||
}
|
||||
public Map<String, Long> save() {
|
||||
return leaseExpireTime;
|
||||
}
|
||||
|
||||
public void setExpireTime(final Player player, String area, final int days) {
|
||||
area = area.replace(".", "_");
|
||||
if (manager.getByName(area) != null) {
|
||||
leaseExpireTime.put(area, daysToMs(days) + System.currentTimeMillis());
|
||||
if (player != null) {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("LeaseRenew", getExpireTime(area).toString()));
|
||||
}
|
||||
} else {
|
||||
if (player != null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidArea"));
|
||||
}
|
||||
}
|
||||
}
|
||||
public void setExpireTime(final Player player, String area, final int days) {
|
||||
area = area.replace(".", "_");
|
||||
if (manager.getByName(area) != null) {
|
||||
leaseExpireTime.put(area, daysToMs(days) + System.currentTimeMillis());
|
||||
if (player != null) {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("LeaseRenew", getExpireTime(area).toString()));
|
||||
}
|
||||
} else {
|
||||
if (player != null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidArea"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setExpireTime(final String area, final int days) {
|
||||
this.setExpireTime(null, area, days);
|
||||
}
|
||||
public void setExpireTime(final String area, final int days) {
|
||||
this.setExpireTime(null, area, days);
|
||||
}
|
||||
|
||||
public void updateLeaseName(final String oldName, final String newName) {
|
||||
if (leaseExpireTime.containsKey(oldName)) {
|
||||
leaseExpireTime.put(newName, leaseExpireTime.get(oldName));
|
||||
leaseExpireTime.remove(oldName);
|
||||
}
|
||||
}
|
||||
public void updateLeaseName(final String oldName, final String newName) {
|
||||
if (leaseExpireTime.containsKey(oldName)) {
|
||||
leaseExpireTime.put(newName, leaseExpireTime.get(oldName));
|
||||
leaseExpireTime.remove(oldName);
|
||||
}
|
||||
}
|
||||
|
||||
private int daysRemaining(final String area) {
|
||||
final Long get = leaseExpireTime.get(area);
|
||||
if (get <= System.currentTimeMillis()) {
|
||||
return 0;
|
||||
}
|
||||
return msToDays((int) (get - System.currentTimeMillis()));
|
||||
}
|
||||
private int daysRemaining(final String area) {
|
||||
final Long get = leaseExpireTime.get(area);
|
||||
if (get <= System.currentTimeMillis()) {
|
||||
return 0;
|
||||
}
|
||||
return msToDays((int) (get - System.currentTimeMillis()));
|
||||
}
|
||||
|
||||
private long daysToMs(final int days) {
|
||||
return ((days) * 24L * 60L * 60L * 1000L);
|
||||
}
|
||||
private long daysToMs(final int days) {
|
||||
return ((days) * 24L * 60L * 60L * 1000L);
|
||||
}
|
||||
|
||||
private int msToDays(final long ms) {
|
||||
return (int) Math.ceil((((ms / 1000D) / 60D) / 60D) / 24D);
|
||||
}
|
||||
private int msToDays(final long ms) {
|
||||
return (int) Math.ceil((((ms / 1000D) / 60D) / 60D) / 24D);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,120 +22,120 @@ import cn.citycraft.Residence.ResidenceMain;
|
||||
*/
|
||||
public class PermissionListManager {
|
||||
|
||||
private final Map<String, Map<String, FlagPermissions>> lists;
|
||||
ResidenceMain plugin;
|
||||
private final Map<String, Map<String, FlagPermissions>> lists;
|
||||
ResidenceMain plugin;
|
||||
|
||||
public PermissionListManager(final ResidenceMain plugin) {
|
||||
this.plugin = plugin;
|
||||
lists = Collections.synchronizedMap(new HashMap<String, Map<String, FlagPermissions>>());
|
||||
}
|
||||
public PermissionListManager(final ResidenceMain plugin) {
|
||||
this.plugin = plugin;
|
||||
lists = Collections.synchronizedMap(new HashMap<String, Map<String, FlagPermissions>>());
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static PermissionListManager load(final ResidenceMain plugin, final Map<String, Object> root) {
|
||||
final PermissionListManager p = new PermissionListManager(plugin);
|
||||
if (root != null) {
|
||||
for (final Entry<String, Object> players : root.entrySet()) {
|
||||
try {
|
||||
final Map<String, Object> value = (Map<String, Object>) players.getValue();
|
||||
final Map<String, FlagPermissions> loadedMap = Collections.synchronizedMap(new HashMap<String, FlagPermissions>());
|
||||
for (final Entry<String, Object> list : value.entrySet()) {
|
||||
loadedMap.put(list.getKey(), FlagPermissions.load((Map<String, Object>) list.getValue()));
|
||||
}
|
||||
p.lists.put(players.getKey(), loadedMap);
|
||||
} catch (final Exception ex) {
|
||||
plugin.getLogger().warning(" - 玩家: " + players.getKey() + " 的权限列表载入失败...");
|
||||
}
|
||||
}
|
||||
}
|
||||
return p;
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
public static PermissionListManager load(final ResidenceMain plugin, final Map<String, Object> root) {
|
||||
final PermissionListManager p = new PermissionListManager(plugin);
|
||||
if (root != null) {
|
||||
for (final Entry<String, Object> players : root.entrySet()) {
|
||||
try {
|
||||
final Map<String, Object> value = (Map<String, Object>) players.getValue();
|
||||
final Map<String, FlagPermissions> loadedMap = Collections.synchronizedMap(new HashMap<String, FlagPermissions>());
|
||||
for (final Entry<String, Object> list : value.entrySet()) {
|
||||
loadedMap.put(list.getKey(), FlagPermissions.load((Map<String, Object>) list.getValue()));
|
||||
}
|
||||
p.lists.put(players.getKey(), loadedMap);
|
||||
} catch (final Exception ex) {
|
||||
plugin.getLogger().warning(" - 玩家: " + players.getKey() + " 的权限列表载入失败...");
|
||||
}
|
||||
}
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
public void applyListToResidence(final Player player, final String listname, final String areaname, final boolean resadmin) {
|
||||
final FlagPermissions list = this.getList(player.getName(), listname);
|
||||
if (list == null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList"));
|
||||
return;
|
||||
}
|
||||
final ClaimedResidence res = plugin.getResidenceManager().getByName(areaname);
|
||||
if (res == null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence"));
|
||||
return;
|
||||
}
|
||||
res.getPermissions().applyTemplate(player, list, resadmin);
|
||||
}
|
||||
public void applyListToResidence(final Player player, final String listname, final String areaname, final boolean resadmin) {
|
||||
final FlagPermissions list = this.getList(player.getName(), listname);
|
||||
if (list == null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList"));
|
||||
return;
|
||||
}
|
||||
final ClaimedResidence res = plugin.getResidenceManager().getByName(areaname);
|
||||
if (res == null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidResidence"));
|
||||
return;
|
||||
}
|
||||
res.getPermissions().applyTemplate(player, list, resadmin);
|
||||
}
|
||||
|
||||
public FlagPermissions getList(final String player, final String listname) {
|
||||
final Map<String, FlagPermissions> get = lists.get(player);
|
||||
if (get == null) {
|
||||
return null;
|
||||
}
|
||||
return get.get(listname);
|
||||
}
|
||||
public FlagPermissions getList(final String player, final String listname) {
|
||||
final Map<String, FlagPermissions> get = lists.get(player);
|
||||
if (get == null) {
|
||||
return null;
|
||||
}
|
||||
return get.get(listname);
|
||||
}
|
||||
|
||||
public void makeList(final Player player, final String listname) {
|
||||
Map<String, FlagPermissions> get = lists.get(player.getName());
|
||||
if (get == null) {
|
||||
get = new HashMap<String, FlagPermissions>();
|
||||
lists.put(player.getName(), get);
|
||||
}
|
||||
FlagPermissions perms = get.get(listname);
|
||||
if (perms == null) {
|
||||
perms = new FlagPermissions();
|
||||
get.put(listname, perms);
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ListCreate", listname));
|
||||
} else {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ListExists"));
|
||||
}
|
||||
}
|
||||
public void makeList(final Player player, final String listname) {
|
||||
Map<String, FlagPermissions> get = lists.get(player.getName());
|
||||
if (get == null) {
|
||||
get = new HashMap<String, FlagPermissions>();
|
||||
lists.put(player.getName(), get);
|
||||
}
|
||||
FlagPermissions perms = get.get(listname);
|
||||
if (perms == null) {
|
||||
perms = new FlagPermissions();
|
||||
get.put(listname, perms);
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("ListCreate", listname));
|
||||
} else {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ListExists"));
|
||||
}
|
||||
}
|
||||
|
||||
public void printList(final Player player, final String listname) {
|
||||
final FlagPermissions list = this.getList(player.getName(), listname);
|
||||
if (list == null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList"));
|
||||
return;
|
||||
}
|
||||
player.sendMessage(ChatColor.LIGHT_PURPLE + "------Permission Template------");
|
||||
player.sendMessage(plugin.getLanguage().getPhrase("Name") + ": " + ChatColor.GREEN + listname);
|
||||
list.printFlags(player);
|
||||
}
|
||||
public void printList(final Player player, final String listname) {
|
||||
final FlagPermissions list = this.getList(player.getName(), listname);
|
||||
if (list == null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList"));
|
||||
return;
|
||||
}
|
||||
player.sendMessage(ChatColor.LIGHT_PURPLE + "------Permission Template------");
|
||||
player.sendMessage(plugin.getLanguage().getPhrase("Name") + ": " + ChatColor.GREEN + listname);
|
||||
list.printFlags(player);
|
||||
}
|
||||
|
||||
public void printLists(final Player player) {
|
||||
final StringBuilder sbuild = new StringBuilder();
|
||||
final Map<String, FlagPermissions> get = lists.get(player.getName());
|
||||
sbuild.append(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Lists") + ":" + ChatColor.DARK_AQUA + " ");
|
||||
if (get != null) {
|
||||
for (final Entry<String, FlagPermissions> thislist : get.entrySet()) {
|
||||
sbuild.append(thislist.getKey()).append(" ");
|
||||
}
|
||||
}
|
||||
player.sendMessage(sbuild.toString());
|
||||
}
|
||||
public void printLists(final Player player) {
|
||||
final StringBuilder sbuild = new StringBuilder();
|
||||
final Map<String, FlagPermissions> get = lists.get(player.getName());
|
||||
sbuild.append(ChatColor.YELLOW + plugin.getLanguage().getPhrase("Lists") + ":" + ChatColor.DARK_AQUA + " ");
|
||||
if (get != null) {
|
||||
for (final Entry<String, FlagPermissions> thislist : get.entrySet()) {
|
||||
sbuild.append(thislist.getKey()).append(" ");
|
||||
}
|
||||
}
|
||||
player.sendMessage(sbuild.toString());
|
||||
}
|
||||
|
||||
public void removeList(final Player player, final String listname) {
|
||||
final Map<String, FlagPermissions> get = lists.get(player.getName());
|
||||
if (get == null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList"));
|
||||
return;
|
||||
}
|
||||
final FlagPermissions list = get.get(listname);
|
||||
if (list == null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList"));
|
||||
return;
|
||||
}
|
||||
get.remove(listname);
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ListRemoved"));
|
||||
}
|
||||
public void removeList(final Player player, final String listname) {
|
||||
final Map<String, FlagPermissions> get = lists.get(player.getName());
|
||||
if (get == null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList"));
|
||||
return;
|
||||
}
|
||||
final FlagPermissions list = get.get(listname);
|
||||
if (list == null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidList"));
|
||||
return;
|
||||
}
|
||||
get.remove(listname);
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ListRemoved"));
|
||||
}
|
||||
|
||||
public Map<String, Object> save() {
|
||||
final Map<String, Object> root = new LinkedHashMap<String, Object>();
|
||||
for (final Entry<String, Map<String, FlagPermissions>> players : lists.entrySet()) {
|
||||
final Map<String, Object> saveMap = new LinkedHashMap<String, Object>();
|
||||
final Map<String, FlagPermissions> map = players.getValue();
|
||||
for (final Entry<String, FlagPermissions> list : map.entrySet()) {
|
||||
saveMap.put(list.getKey(), list.getValue().save());
|
||||
}
|
||||
root.put(players.getKey(), saveMap);
|
||||
}
|
||||
return root;
|
||||
}
|
||||
public Map<String, Object> save() {
|
||||
final Map<String, Object> root = new LinkedHashMap<String, Object>();
|
||||
for (final Entry<String, Map<String, FlagPermissions>> players : lists.entrySet()) {
|
||||
final Map<String, Object> saveMap = new LinkedHashMap<String, Object>();
|
||||
final Map<String, FlagPermissions> map = players.getValue();
|
||||
for (final Entry<String, FlagPermissions> list : map.entrySet()) {
|
||||
saveMap.put(list.getKey(), list.getValue().save());
|
||||
}
|
||||
root.put(players.getKey(), saveMap);
|
||||
}
|
||||
return root;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -31,463 +31,463 @@ import cn.citycraft.Residence.permissions.PermissionManager;
|
||||
*/
|
||||
public class ResidencePermissions extends FlagPermissions {
|
||||
|
||||
protected String owner;
|
||||
protected PluginManager pm;
|
||||
protected ClaimedResidence residence;
|
||||
protected String world;
|
||||
ResidenceMain plugin;
|
||||
protected String owner;
|
||||
protected PluginManager pm;
|
||||
protected ClaimedResidence residence;
|
||||
protected String world;
|
||||
ResidenceMain plugin;
|
||||
|
||||
public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res) {
|
||||
this.plugin = plugin;
|
||||
this.pm = plugin.getServer().getPluginManager();
|
||||
residence = res;
|
||||
}
|
||||
public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res) {
|
||||
this.plugin = plugin;
|
||||
this.pm = plugin.getServer().getPluginManager();
|
||||
residence = res;
|
||||
}
|
||||
|
||||
public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res, final String creator, final String inworld) {
|
||||
this(plugin, res);
|
||||
owner = creator;
|
||||
world = inworld;
|
||||
}
|
||||
public ResidencePermissions(final ResidenceMain plugin, final ClaimedResidence res, final String creator, final String inworld) {
|
||||
this(plugin, res);
|
||||
owner = creator;
|
||||
world = inworld;
|
||||
}
|
||||
|
||||
public static ResidencePermissions load(final ResidenceMain plugin, final ClaimedResidence res, final Map<String, Object> root) throws Exception {
|
||||
final ResidencePermissions newperms = new ResidencePermissions(plugin, res);
|
||||
newperms.owner = (String) root.get("Owner");
|
||||
if (newperms.owner == null) {
|
||||
newperms.owner = (String) root.get("OwnerLastKnownName");
|
||||
}
|
||||
if (newperms.owner == null) {
|
||||
plugin.getLogger().warning("发现未知所有者的领地,转换为Server Land...");
|
||||
newperms.owner = "Server Land";
|
||||
}
|
||||
newperms.world = (String) root.get("World");
|
||||
FlagPermissions.load(root, newperms);
|
||||
if (newperms.owner == null) {
|
||||
throw new IllegalArgumentException("错误的Owner数据...");
|
||||
}
|
||||
if (newperms.world == null) {
|
||||
throw new IllegalArgumentException("错误的World数据...");
|
||||
}
|
||||
if (newperms.playerFlags == null) {
|
||||
throw new IllegalArgumentException("错误的PlayerFlags数据...");
|
||||
}
|
||||
if (newperms.groupFlags == null) {
|
||||
throw new IllegalArgumentException("错误的GroupFlags数据...");
|
||||
}
|
||||
if (newperms.cuboidFlags == null) {
|
||||
throw new IllegalArgumentException("错误的CuboidFlags数据...");
|
||||
}
|
||||
newperms.fixNames();
|
||||
return newperms;
|
||||
}
|
||||
public static ResidencePermissions load(final ResidenceMain plugin, final ClaimedResidence res, final Map<String, Object> root) throws Exception {
|
||||
final ResidencePermissions newperms = new ResidencePermissions(plugin, res);
|
||||
newperms.owner = (String) root.get("Owner");
|
||||
if (newperms.owner == null) {
|
||||
newperms.owner = (String) root.get("OwnerLastKnownName");
|
||||
}
|
||||
if (newperms.owner == null) {
|
||||
plugin.getLogger().warning("发现未知所有者的领地,转换为Server Land...");
|
||||
newperms.owner = "Server Land";
|
||||
}
|
||||
newperms.world = (String) root.get("World");
|
||||
FlagPermissions.load(root, newperms);
|
||||
if (newperms.owner == null) {
|
||||
throw new IllegalArgumentException("错误的Owner数据...");
|
||||
}
|
||||
if (newperms.world == null) {
|
||||
throw new IllegalArgumentException("错误的World数据...");
|
||||
}
|
||||
if (newperms.playerFlags == null) {
|
||||
throw new IllegalArgumentException("错误的PlayerFlags数据...");
|
||||
}
|
||||
if (newperms.groupFlags == null) {
|
||||
throw new IllegalArgumentException("错误的GroupFlags数据...");
|
||||
}
|
||||
if (newperms.cuboidFlags == null) {
|
||||
throw new IllegalArgumentException("错误的CuboidFlags数据...");
|
||||
}
|
||||
newperms.fixNames();
|
||||
return newperms;
|
||||
}
|
||||
|
||||
public void applyDefaultFlags() {
|
||||
final PermissionManager gm = plugin.getPermissionManager();
|
||||
final PermissionGroup group = gm.getGroup(owner, world);
|
||||
final Set<Entry<String, Boolean>> dflags = group.getDefaultResidenceFlags();
|
||||
final Set<Entry<String, Boolean>> dcflags = group.getDefaultCreatorFlags();
|
||||
final Set<Entry<String, Map<String, Boolean>>> dgflags = group.getDefaultGroupFlags();
|
||||
this.applyGlobalDefaults();
|
||||
for (final Entry<String, Boolean> next : dflags) {
|
||||
if (this.checkValidFlag(next.getKey(), true)) {
|
||||
if (next.getValue()) {
|
||||
this.setFlag(next.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setFlag(next.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final Entry<String, Boolean> next : dcflags) {
|
||||
if (this.checkValidFlag(next.getKey(), false)) {
|
||||
if (next.getValue()) {
|
||||
this.setPlayerFlag(owner, next.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setPlayerFlag(owner, next.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final Entry<String, Map<String, Boolean>> entry : dgflags) {
|
||||
final Map<String, Boolean> value = entry.getValue();
|
||||
for (final Entry<String, Boolean> flag : value.entrySet()) {
|
||||
if (flag.getValue()) {
|
||||
this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void applyDefaultFlags() {
|
||||
final PermissionManager gm = plugin.getPermissionManager();
|
||||
final PermissionGroup group = gm.getGroup(owner, world);
|
||||
final Set<Entry<String, Boolean>> dflags = group.getDefaultResidenceFlags();
|
||||
final Set<Entry<String, Boolean>> dcflags = group.getDefaultCreatorFlags();
|
||||
final Set<Entry<String, Map<String, Boolean>>> dgflags = group.getDefaultGroupFlags();
|
||||
this.applyGlobalDefaults();
|
||||
for (final Entry<String, Boolean> next : dflags) {
|
||||
if (this.checkValidFlag(next.getKey(), true)) {
|
||||
if (next.getValue()) {
|
||||
this.setFlag(next.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setFlag(next.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final Entry<String, Boolean> next : dcflags) {
|
||||
if (this.checkValidFlag(next.getKey(), false)) {
|
||||
if (next.getValue()) {
|
||||
this.setPlayerFlag(owner, next.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setPlayerFlag(owner, next.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final Entry<String, Map<String, Boolean>> entry : dgflags) {
|
||||
final Map<String, Boolean> value = entry.getValue();
|
||||
for (final Entry<String, Boolean> flag : value.entrySet()) {
|
||||
if (flag.getValue()) {
|
||||
this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void applyDefaultFlags(final Player player, final boolean resadmin) {
|
||||
if (this.hasResidencePermission(player, true) || resadmin) {
|
||||
this.applyDefaultFlags();
|
||||
player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("FlagsDefault"));
|
||||
} else {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("NoPermission"));
|
||||
}
|
||||
}
|
||||
public void applyDefaultFlags(final Player player, final boolean resadmin) {
|
||||
if (this.hasResidencePermission(player, true) || resadmin) {
|
||||
this.applyDefaultFlags();
|
||||
player.sendMessage(ChatColor.YELLOW + plugin.getLanguage().getPhrase("FlagsDefault"));
|
||||
} else {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("NoPermission"));
|
||||
}
|
||||
}
|
||||
|
||||
public void applyGlobalDefaults() {
|
||||
this.clearFlags();
|
||||
final FlagPermissions gRD = plugin.getConfigManager().getGlobalResidenceDefaultFlags();
|
||||
final FlagPermissions gCD = plugin.getConfigManager().getGlobalCreatorDefaultFlags();
|
||||
final Map<String, FlagPermissions> gGD = plugin.getConfigManager().getGlobalGroupDefaultFlags();
|
||||
for (final Entry<String, Boolean> entry : gRD.cuboidFlags.entrySet()) {
|
||||
if (entry.getValue()) {
|
||||
this.setFlag(entry.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setFlag(entry.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
for (final Entry<String, Boolean> entry : gCD.cuboidFlags.entrySet()) {
|
||||
if (entry.getValue()) {
|
||||
this.setPlayerFlag(owner, entry.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setPlayerFlag(owner, entry.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
for (final Entry<String, FlagPermissions> entry : gGD.entrySet()) {
|
||||
for (final Entry<String, Boolean> flag : entry.getValue().cuboidFlags.entrySet()) {
|
||||
if (flag.getValue()) {
|
||||
this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void applyGlobalDefaults() {
|
||||
this.clearFlags();
|
||||
final FlagPermissions gRD = plugin.getConfigManager().getGlobalResidenceDefaultFlags();
|
||||
final FlagPermissions gCD = plugin.getConfigManager().getGlobalCreatorDefaultFlags();
|
||||
final Map<String, FlagPermissions> gGD = plugin.getConfigManager().getGlobalGroupDefaultFlags();
|
||||
for (final Entry<String, Boolean> entry : gRD.cuboidFlags.entrySet()) {
|
||||
if (entry.getValue()) {
|
||||
this.setFlag(entry.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setFlag(entry.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
for (final Entry<String, Boolean> entry : gCD.cuboidFlags.entrySet()) {
|
||||
if (entry.getValue()) {
|
||||
this.setPlayerFlag(owner, entry.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setPlayerFlag(owner, entry.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
for (final Entry<String, FlagPermissions> entry : gGD.entrySet()) {
|
||||
for (final Entry<String, Boolean> flag : entry.getValue().cuboidFlags.entrySet()) {
|
||||
if (flag.getValue()) {
|
||||
this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.TRUE);
|
||||
} else {
|
||||
this.setGroupFlag(entry.getKey(), flag.getKey(), FlagState.FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void applyTemplate(final Player player, final FlagPermissions list, boolean resadmin) {
|
||||
if (player != null) {
|
||||
if (!player.getName().equals(owner) && !resadmin) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
resadmin = true;
|
||||
}
|
||||
final PermissionGroup group = plugin.getPermissionManager().getGroup(owner, world);
|
||||
for (final Entry<String, Boolean> flag : list.cuboidFlags.entrySet()) {
|
||||
if (group.hasFlagAccess(flag.getKey()) || resadmin) {
|
||||
this.cuboidFlags.put(flag.getKey(), flag.getValue());
|
||||
} else if (player != null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagSetDeny", ChatColor.YELLOW + flag.getKey() + ChatColor.RED));
|
||||
}
|
||||
}
|
||||
for (final Entry<String, Map<String, Boolean>> plists : list.playerFlags.entrySet()) {
|
||||
for (final Entry<String, Boolean> flag : plists.getValue().entrySet()) {
|
||||
if (group.hasFlagAccess(flag.getKey()) || resadmin) {
|
||||
if (!this.playerFlags.containsKey(plists.getKey())) {
|
||||
this.playerFlags.put(plists.getKey(), Collections.synchronizedMap(new HashMap<String, Boolean>()));
|
||||
}
|
||||
this.playerFlags.get(plists.getKey()).put(flag.getKey(), flag.getValue());
|
||||
} else if (player != null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagSetDeny", ChatColor.YELLOW + flag.getKey() + ChatColor.RED));
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final Entry<String, Map<String, Boolean>> glists : list.groupFlags.entrySet()) {
|
||||
for (final Entry<String, Boolean> flag : glists.getValue().entrySet()) {
|
||||
if (group.hasFlagAccess(flag.getKey()) || resadmin) {
|
||||
if (!this.groupFlags.containsKey(glists.getKey())) {
|
||||
this.groupFlags.put(glists.getKey(), Collections.synchronizedMap(new HashMap<String, Boolean>()));
|
||||
}
|
||||
this.groupFlags.get(glists.getKey()).put(flag.getKey(), flag.getValue());
|
||||
} else if (player != null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagSetDeny", ChatColor.YELLOW + flag.getKey() + ChatColor.RED));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (player != null) {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("PermissionsApply"));
|
||||
}
|
||||
}
|
||||
public void applyTemplate(final Player player, final FlagPermissions list, boolean resadmin) {
|
||||
if (player != null) {
|
||||
if (!player.getName().equals(owner) && !resadmin) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
resadmin = true;
|
||||
}
|
||||
final PermissionGroup group = plugin.getPermissionManager().getGroup(owner, world);
|
||||
for (final Entry<String, Boolean> flag : list.cuboidFlags.entrySet()) {
|
||||
if (group.hasFlagAccess(flag.getKey()) || resadmin) {
|
||||
this.cuboidFlags.put(flag.getKey(), flag.getValue());
|
||||
} else if (player != null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagSetDeny", ChatColor.YELLOW + flag.getKey() + ChatColor.RED));
|
||||
}
|
||||
}
|
||||
for (final Entry<String, Map<String, Boolean>> plists : list.playerFlags.entrySet()) {
|
||||
for (final Entry<String, Boolean> flag : plists.getValue().entrySet()) {
|
||||
if (group.hasFlagAccess(flag.getKey()) || resadmin) {
|
||||
if (!this.playerFlags.containsKey(plists.getKey())) {
|
||||
this.playerFlags.put(plists.getKey(), Collections.synchronizedMap(new HashMap<String, Boolean>()));
|
||||
}
|
||||
this.playerFlags.get(plists.getKey()).put(flag.getKey(), flag.getValue());
|
||||
} else if (player != null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagSetDeny", ChatColor.YELLOW + flag.getKey() + ChatColor.RED));
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final Entry<String, Map<String, Boolean>> glists : list.groupFlags.entrySet()) {
|
||||
for (final Entry<String, Boolean> flag : glists.getValue().entrySet()) {
|
||||
if (group.hasFlagAccess(flag.getKey()) || resadmin) {
|
||||
if (!this.groupFlags.containsKey(glists.getKey())) {
|
||||
this.groupFlags.put(glists.getKey(), Collections.synchronizedMap(new HashMap<String, Boolean>()));
|
||||
}
|
||||
this.groupFlags.get(glists.getKey()).put(flag.getKey(), flag.getValue());
|
||||
} else if (player != null) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagSetDeny", ChatColor.YELLOW + flag.getKey() + ChatColor.RED));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (player != null) {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("PermissionsApply"));
|
||||
}
|
||||
}
|
||||
|
||||
public void fixNames() {
|
||||
final ArrayList<String> fixNames = new ArrayList<String>();
|
||||
final Iterator<Entry<String, Map<String, Boolean>>> it = playerFlags.entrySet().iterator();
|
||||
while (it.hasNext()) {
|
||||
final String name = it.next().getKey();
|
||||
if (!name.equals(name.toLowerCase())) {
|
||||
fixNames.add(name);
|
||||
}
|
||||
}
|
||||
for (final String name : fixNames) {
|
||||
final Map<String, Boolean> get = playerFlags.get(name);
|
||||
playerFlags.remove(name);
|
||||
playerFlags.put(name.toLowerCase(), get);
|
||||
}
|
||||
}
|
||||
public void fixNames() {
|
||||
final ArrayList<String> fixNames = new ArrayList<String>();
|
||||
final Iterator<Entry<String, Map<String, Boolean>>> it = playerFlags.entrySet().iterator();
|
||||
while (it.hasNext()) {
|
||||
final String name = it.next().getKey();
|
||||
if (!name.equals(name.toLowerCase())) {
|
||||
fixNames.add(name);
|
||||
}
|
||||
}
|
||||
for (final String name : fixNames) {
|
||||
final Map<String, Boolean> get = playerFlags.get(name);
|
||||
playerFlags.remove(name);
|
||||
playerFlags.put(name.toLowerCase(), get);
|
||||
}
|
||||
}
|
||||
|
||||
public String getOwner() {
|
||||
return owner;
|
||||
}
|
||||
public String getOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
public String getWorld() {
|
||||
return world;
|
||||
}
|
||||
public String getWorld() {
|
||||
return world;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean groupHas(final String group, final String flag, final boolean def) {
|
||||
final ResidenceFlagCheckEvent fc = new ResidenceFlagCheckEvent(residence, flag, FlagType.GROUP, group, def);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isOverriden()) {
|
||||
return fc.getOverrideValue();
|
||||
}
|
||||
return super.groupHas(group, flag, def);
|
||||
}
|
||||
@Override
|
||||
public boolean groupHas(final String group, final String flag, final boolean def) {
|
||||
final ResidenceFlagCheckEvent fc = new ResidenceFlagCheckEvent(residence, flag, FlagType.GROUP, group, def);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isOverriden()) {
|
||||
return fc.getOverrideValue();
|
||||
}
|
||||
return super.groupHas(group, flag, def);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean has(final String flag, final boolean def) {
|
||||
final ResidenceFlagCheckEvent fc = new ResidenceFlagCheckEvent(residence, flag, FlagType.RESIDENCE, null, def);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isOverriden()) {
|
||||
return fc.getOverrideValue();
|
||||
}
|
||||
return super.has(flag, def);
|
||||
}
|
||||
@Override
|
||||
public boolean has(final String flag, final boolean def) {
|
||||
final ResidenceFlagCheckEvent fc = new ResidenceFlagCheckEvent(residence, flag, FlagType.RESIDENCE, null, def);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isOverriden()) {
|
||||
return fc.getOverrideValue();
|
||||
}
|
||||
return super.has(flag, def);
|
||||
}
|
||||
|
||||
public boolean hasApplicableFlag(final String player, final String flag) {
|
||||
return super.inheritanceIsPlayerSet(player, flag) || super.inheritanceIsGroupSet(plugin.getPermissionManager().getGroupNameByPlayer(player, world), flag) || super.inheritanceIsSet(flag);
|
||||
}
|
||||
public boolean hasApplicableFlag(final String player, final String flag) {
|
||||
return super.inheritanceIsPlayerSet(player, flag) || super.inheritanceIsGroupSet(plugin.getPermissionManager().getGroupNameByPlayer(player, world), flag) || super.inheritanceIsSet(flag);
|
||||
}
|
||||
|
||||
public boolean hasResidencePermission(final Player player, final boolean requireOwner) {
|
||||
if (plugin.getConfigManager().enabledRentSystem()) {
|
||||
final String resname = residence.getName();
|
||||
if (plugin.getRentManager().isRented(resname)) {
|
||||
if (requireOwner) {
|
||||
return false;
|
||||
}
|
||||
final String renter = plugin.getRentManager().getRentingPlayer(resname);
|
||||
if (player.getName().equalsIgnoreCase(renter)) {
|
||||
return true;
|
||||
}
|
||||
return (playerHas(player.getName(), "admin", false));
|
||||
}
|
||||
}
|
||||
if (requireOwner) {
|
||||
return (owner.equalsIgnoreCase(player.getName()));
|
||||
}
|
||||
return (playerHas(player.getName(), "admin", false) || owner.equalsIgnoreCase(player.getName()));
|
||||
}
|
||||
public boolean hasResidencePermission(final Player player, final boolean requireOwner) {
|
||||
if (plugin.getConfigManager().enabledRentSystem()) {
|
||||
final String resname = residence.getName();
|
||||
if (plugin.getRentManager().isRented(resname)) {
|
||||
if (requireOwner) {
|
||||
return false;
|
||||
}
|
||||
final String renter = plugin.getRentManager().getRentingPlayer(resname);
|
||||
if (player.getName().equalsIgnoreCase(renter)) {
|
||||
return true;
|
||||
}
|
||||
return (playerHas(player.getName(), "admin", false));
|
||||
}
|
||||
}
|
||||
if (requireOwner) {
|
||||
return (owner.equalsIgnoreCase(player.getName()));
|
||||
}
|
||||
return (playerHas(player.getName(), "admin", false) || owner.equalsIgnoreCase(player.getName()));
|
||||
}
|
||||
|
||||
public boolean playerHas(final String player, final String flag, final boolean def) {
|
||||
return this.playerHas(player, world, flag, def);
|
||||
}
|
||||
public boolean playerHas(final String player, final String flag, final boolean def) {
|
||||
return this.playerHas(player, world, flag, def);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean playerHas(final String player, final String world, final String flag, final boolean def) {
|
||||
final ResidenceFlagCheckEvent fc = new ResidenceFlagCheckEvent(residence, flag, FlagType.PLAYER, player, def);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isOverriden()) {
|
||||
return fc.getOverrideValue();
|
||||
}
|
||||
return super.playerHas(player, world, flag, def);
|
||||
}
|
||||
@Override
|
||||
public boolean playerHas(final String player, final String world, final String flag, final boolean def) {
|
||||
final ResidenceFlagCheckEvent fc = new ResidenceFlagCheckEvent(residence, flag, FlagType.PLAYER, player, def);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isOverriden()) {
|
||||
return fc.getOverrideValue();
|
||||
}
|
||||
return super.playerHas(player, world, flag, def);
|
||||
}
|
||||
|
||||
public boolean removeAllGroupFlags(final Player player, final String group, final boolean resadmin) {
|
||||
if (this.hasResidencePermission(player, false) || resadmin) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, "ALL", ResidenceFlagChangeEvent.FlagType.GROUP, FlagState.NEITHER, null);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
super.removeAllGroupFlags(group);
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet"));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean removeAllGroupFlags(final Player player, final String group, final boolean resadmin) {
|
||||
if (this.hasResidencePermission(player, false) || resadmin) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, "ALL", ResidenceFlagChangeEvent.FlagType.GROUP, FlagState.NEITHER, null);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
super.removeAllGroupFlags(group);
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet"));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean removeAllPlayerFlags(final Player player, final String targetPlayer, final boolean resadmin) {
|
||||
if (this.hasResidencePermission(player, false) || resadmin) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, "ALL", ResidenceFlagChangeEvent.FlagType.RESIDENCE, FlagState.NEITHER, null);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
super.removeAllPlayerFlags(targetPlayer);
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet"));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean removeAllPlayerFlags(final Player player, final String targetPlayer, final boolean resadmin) {
|
||||
if (this.hasResidencePermission(player, false) || resadmin) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, "ALL", ResidenceFlagChangeEvent.FlagType.RESIDENCE, FlagState.NEITHER, null);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
super.removeAllPlayerFlags(targetPlayer);
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet"));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> save() {
|
||||
final Map<String, Object> root = super.save();
|
||||
root.put("Owner", owner);
|
||||
root.put("World", world);
|
||||
return root;
|
||||
}
|
||||
@Override
|
||||
public Map<String, Object> save() {
|
||||
final Map<String, Object> root = super.save();
|
||||
root.put("Owner", owner);
|
||||
root.put("World", world);
|
||||
return root;
|
||||
}
|
||||
|
||||
public boolean setFlag(final Player player, final String flag, final String flagstate, final boolean resadmin) {
|
||||
if (validFlagGroups.containsKey(flag)) {
|
||||
return this.setFlagGroup(player, flag, flagstate, resadmin);
|
||||
}
|
||||
final FlagState state = FlagPermissions.stringToFlagState(flagstate);
|
||||
if (checkCanSetFlag(player, flag, state, true, resadmin)) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, flag, ResidenceFlagChangeEvent.FlagType.RESIDENCE, state, null);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
if (super.setFlag(flag, state)) {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean setFlag(final Player player, final String flag, final String flagstate, final boolean resadmin) {
|
||||
if (validFlagGroups.containsKey(flag)) {
|
||||
return this.setFlagGroup(player, flag, flagstate, resadmin);
|
||||
}
|
||||
final FlagState state = FlagPermissions.stringToFlagState(flagstate);
|
||||
if (checkCanSetFlag(player, flag, state, true, resadmin)) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, flag, ResidenceFlagChangeEvent.FlagType.RESIDENCE, state, null);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
if (super.setFlag(flag, state)) {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setFlag(final String flag, final FlagState state) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, null, flag, ResidenceFlagChangeEvent.FlagType.RESIDENCE, state, null);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
return super.setFlag(flag, state);
|
||||
}
|
||||
@Override
|
||||
public boolean setFlag(final String flag, final FlagState state) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, null, flag, ResidenceFlagChangeEvent.FlagType.RESIDENCE, state, null);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
return super.setFlag(flag, state);
|
||||
}
|
||||
|
||||
public boolean setFlagGroup(final Player player, final String flaggroup, final String state, final boolean resadmin) {
|
||||
if (ResidencePermissions.validFlagGroups.containsKey(flaggroup)) {
|
||||
final ArrayList<String> flags = ResidencePermissions.validFlagGroups.get(flaggroup);
|
||||
boolean changed = false;
|
||||
for (final String flag : flags) {
|
||||
if (this.setFlag(player, flag, state, resadmin)) {
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean setFlagGroup(final Player player, final String flaggroup, final String state, final boolean resadmin) {
|
||||
if (ResidencePermissions.validFlagGroups.containsKey(flaggroup)) {
|
||||
final ArrayList<String> flags = ResidencePermissions.validFlagGroups.get(flaggroup);
|
||||
boolean changed = false;
|
||||
for (final String flag : flags) {
|
||||
if (this.setFlag(player, flag, state, resadmin)) {
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean setFlagGroupOnGroup(final Player player, final String flaggroup, final String group, final String state, final boolean resadmin) {
|
||||
if (ResidencePermissions.validFlagGroups.containsKey(flaggroup)) {
|
||||
final ArrayList<String> flags = ResidencePermissions.validFlagGroups.get(flaggroup);
|
||||
boolean changed = false;
|
||||
for (final String flag : flags) {
|
||||
if (this.setGroupFlag(player, group, flag, state, resadmin)) {
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean setFlagGroupOnGroup(final Player player, final String flaggroup, final String group, final String state, final boolean resadmin) {
|
||||
if (ResidencePermissions.validFlagGroups.containsKey(flaggroup)) {
|
||||
final ArrayList<String> flags = ResidencePermissions.validFlagGroups.get(flaggroup);
|
||||
boolean changed = false;
|
||||
for (final String flag : flags) {
|
||||
if (this.setGroupFlag(player, group, flag, state, resadmin)) {
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean setFlagGroupOnPlayer(final Player player, final String target, final String flaggroup, final String state, final boolean resadmin) {
|
||||
if (ResidencePermissions.validFlagGroups.containsKey(flaggroup)) {
|
||||
final ArrayList<String> flags = ResidencePermissions.validFlagGroups.get(flaggroup);
|
||||
boolean changed = false;
|
||||
for (final String flag : flags) {
|
||||
if (this.setPlayerFlag(player, target, flag, state, resadmin)) {
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean setFlagGroupOnPlayer(final Player player, final String target, final String flaggroup, final String state, final boolean resadmin) {
|
||||
if (ResidencePermissions.validFlagGroups.containsKey(flaggroup)) {
|
||||
final ArrayList<String> flags = ResidencePermissions.validFlagGroups.get(flaggroup);
|
||||
boolean changed = false;
|
||||
for (final String flag : flags) {
|
||||
if (this.setPlayerFlag(player, target, flag, state, resadmin)) {
|
||||
changed = true;
|
||||
}
|
||||
}
|
||||
return changed;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean setGroupFlag(final Player player, String group, final String flag, final String flagstate, final boolean resadmin) {
|
||||
group = group.toLowerCase();
|
||||
if (validFlagGroups.containsKey(flag)) {
|
||||
return this.setFlagGroupOnGroup(player, flag, group, flagstate, resadmin);
|
||||
}
|
||||
final FlagState state = FlagPermissions.stringToFlagState(flagstate);
|
||||
if (checkCanSetFlag(player, flag, state, false, resadmin)) {
|
||||
if (plugin.getPermissionManager().hasGroup(group)) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, flag, ResidenceFlagChangeEvent.FlagType.GROUP, state, group);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
if (super.setGroupFlag(group, flag, state)) {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet"));
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidGroup"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean setGroupFlag(final Player player, String group, final String flag, final String flagstate, final boolean resadmin) {
|
||||
group = group.toLowerCase();
|
||||
if (validFlagGroups.containsKey(flag)) {
|
||||
return this.setFlagGroupOnGroup(player, flag, group, flagstate, resadmin);
|
||||
}
|
||||
final FlagState state = FlagPermissions.stringToFlagState(flagstate);
|
||||
if (checkCanSetFlag(player, flag, state, false, resadmin)) {
|
||||
if (plugin.getPermissionManager().hasGroup(group)) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, flag, ResidenceFlagChangeEvent.FlagType.GROUP, state, group);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
if (super.setGroupFlag(group, flag, state)) {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet"));
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidGroup"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setGroupFlag(final String group, final String flag, final FlagState state) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, null, flag, ResidenceFlagChangeEvent.FlagType.GROUP, state, group);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
return super.setGroupFlag(group, flag, state);
|
||||
}
|
||||
@Override
|
||||
public boolean setGroupFlag(final String group, final String flag, final FlagState state) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, null, flag, ResidenceFlagChangeEvent.FlagType.GROUP, state, group);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
return super.setGroupFlag(group, flag, state);
|
||||
}
|
||||
|
||||
public void setOwner(final String newOwner, final boolean resetFlags) {
|
||||
final ResidenceOwnerChangeEvent ownerchange = new ResidenceOwnerChangeEvent(residence, newOwner);
|
||||
pm.callEvent(ownerchange);
|
||||
owner = newOwner;
|
||||
if (resetFlags) {
|
||||
this.applyDefaultFlags();
|
||||
}
|
||||
}
|
||||
public void setOwner(final String newOwner, final boolean resetFlags) {
|
||||
final ResidenceOwnerChangeEvent ownerchange = new ResidenceOwnerChangeEvent(residence, newOwner);
|
||||
pm.callEvent(ownerchange);
|
||||
owner = newOwner;
|
||||
if (resetFlags) {
|
||||
this.applyDefaultFlags();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean setPlayerFlag(final Player player, final String targetPlayer, final String flag, final String flagstate, final boolean resadmin) {
|
||||
if (validFlagGroups.containsKey(flag)) {
|
||||
return this.setFlagGroupOnPlayer(player, targetPlayer, flag, flagstate, resadmin);
|
||||
}
|
||||
final FlagState state = FlagPermissions.stringToFlagState(flagstate);
|
||||
if (checkCanSetFlag(player, flag, state, false, resadmin)) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, flag, ResidenceFlagChangeEvent.FlagType.PLAYER, state, targetPlayer);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
if (super.setPlayerFlag(targetPlayer, flag, state)) {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public boolean setPlayerFlag(final Player player, final String targetPlayer, final String flag, final String flagstate, final boolean resadmin) {
|
||||
if (validFlagGroups.containsKey(flag)) {
|
||||
return this.setFlagGroupOnPlayer(player, targetPlayer, flag, flagstate, resadmin);
|
||||
}
|
||||
final FlagState state = FlagPermissions.stringToFlagState(flagstate);
|
||||
if (checkCanSetFlag(player, flag, state, false, resadmin)) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, player, flag, ResidenceFlagChangeEvent.FlagType.PLAYER, state, targetPlayer);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
if (super.setPlayerFlag(targetPlayer, flag, state)) {
|
||||
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("FlagSet"));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setPlayerFlag(final String player, final String flag, final FlagState state) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, null, flag, ResidenceFlagChangeEvent.FlagType.PLAYER, state, player);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
return super.setPlayerFlag(player, flag, state);
|
||||
}
|
||||
@Override
|
||||
public boolean setPlayerFlag(final String player, final String flag, final FlagState state) {
|
||||
final ResidenceFlagChangeEvent fc = new ResidenceFlagChangeEvent(residence, null, flag, ResidenceFlagChangeEvent.FlagType.PLAYER, state, player);
|
||||
pm.callEvent(fc);
|
||||
if (fc.isCancelled()) {
|
||||
return false;
|
||||
}
|
||||
return super.setPlayerFlag(player, flag, state);
|
||||
}
|
||||
|
||||
private boolean checkCanSetFlag(final Player player, final String flag, final FlagState state, final boolean globalflag, final boolean resadmin) {
|
||||
if (!checkValidFlag(flag, globalflag)) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidFlag"));
|
||||
return false;
|
||||
}
|
||||
if (state == FlagState.INVALID) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidFlagState"));
|
||||
return false;
|
||||
}
|
||||
if (!resadmin) {
|
||||
if (!this.hasResidencePermission(player, false)) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
|
||||
return false;
|
||||
}
|
||||
if (!hasFlagAccess(owner, flag)) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("OwnerNoPermission"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
private boolean checkCanSetFlag(final Player player, final String flag, final FlagState state, final boolean globalflag, final boolean resadmin) {
|
||||
if (!checkValidFlag(flag, globalflag)) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidFlag"));
|
||||
return false;
|
||||
}
|
||||
if (state == FlagState.INVALID) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("InvalidFlagState"));
|
||||
return false;
|
||||
}
|
||||
if (!resadmin) {
|
||||
if (!this.hasResidencePermission(player, false)) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
|
||||
return false;
|
||||
}
|
||||
if (!hasFlagAccess(owner, flag)) {
|
||||
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("OwnerNoPermission"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean hasFlagAccess(final String player, final String flag) {
|
||||
final PermissionGroup group = plugin.getPermissionManager().getGroup(player, world);
|
||||
return group.hasFlagAccess(flag);
|
||||
}
|
||||
private boolean hasFlagAccess(final String player, final String flag) {
|
||||
final PermissionGroup group = plugin.getPermissionManager().getGroup(player, world);
|
||||
return group.hasFlagAccess(flag);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,112 +22,112 @@ import cn.citycraft.Residence.ResidenceMain;
|
||||
* @author Administrator
|
||||
*/
|
||||
public class WorldFlagManager {
|
||||
protected FlagPermissions globaldefaults;
|
||||
protected Map<String, Map<String, FlagPermissions>> groupperms;
|
||||
protected Map<String, FlagPermissions> worldperms;
|
||||
ResidenceMain plugin;
|
||||
protected FlagPermissions globaldefaults;
|
||||
protected Map<String, Map<String, FlagPermissions>> groupperms;
|
||||
protected Map<String, FlagPermissions> worldperms;
|
||||
ResidenceMain plugin;
|
||||
|
||||
public WorldFlagManager(final ResidenceMain plugin) {
|
||||
this.plugin = plugin;
|
||||
globaldefaults = new FlagPermissions();
|
||||
worldperms = new HashMap<String, FlagPermissions>();
|
||||
groupperms = new HashMap<String, Map<String, FlagPermissions>>();
|
||||
this.parsePerms(plugin.getConfig());
|
||||
}
|
||||
public WorldFlagManager(final ResidenceMain plugin) {
|
||||
this.plugin = plugin;
|
||||
globaldefaults = new FlagPermissions();
|
||||
worldperms = new HashMap<String, FlagPermissions>();
|
||||
groupperms = new HashMap<String, Map<String, FlagPermissions>>();
|
||||
this.parsePerms(plugin.getConfig());
|
||||
}
|
||||
|
||||
public FlagPermissions getPerms(final Player player) {
|
||||
return this.getPerms(player.getWorld().getName(), plugin.getPermissionManager().getGroupNameByPlayer(player));
|
||||
}
|
||||
public FlagPermissions getPerms(final Player player) {
|
||||
return this.getPerms(player.getWorld().getName(), plugin.getPermissionManager().getGroupNameByPlayer(player));
|
||||
}
|
||||
|
||||
public FlagPermissions getPerms(String world) {
|
||||
world = world.toLowerCase();
|
||||
final FlagPermissions list = worldperms.get(world);
|
||||
if (list == null) {
|
||||
if (globaldefaults == null) {
|
||||
return new FlagPermissions();
|
||||
}
|
||||
return globaldefaults;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
public FlagPermissions getPerms(String world) {
|
||||
world = world.toLowerCase();
|
||||
final FlagPermissions list = worldperms.get(world);
|
||||
if (list == null) {
|
||||
if (globaldefaults == null) {
|
||||
return new FlagPermissions();
|
||||
}
|
||||
return globaldefaults;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public FlagPermissions getPerms(String world, String group) {
|
||||
world = world.toLowerCase();
|
||||
group = group.toLowerCase();
|
||||
final Map<String, FlagPermissions> groupworldperms = groupperms.get(group);
|
||||
if (groupworldperms == null) {
|
||||
return this.getPerms(world);
|
||||
}
|
||||
FlagPermissions list = groupworldperms.get(world);
|
||||
if (list == null) {
|
||||
list = groupworldperms.get("global." + world);
|
||||
if (list == null) {
|
||||
list = groupworldperms.get("global");
|
||||
}
|
||||
if (list == null) {
|
||||
return this.getPerms(world);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
public FlagPermissions getPerms(String world, String group) {
|
||||
world = world.toLowerCase();
|
||||
group = group.toLowerCase();
|
||||
final Map<String, FlagPermissions> groupworldperms = groupperms.get(group);
|
||||
if (groupworldperms == null) {
|
||||
return this.getPerms(world);
|
||||
}
|
||||
FlagPermissions list = groupworldperms.get(world);
|
||||
if (list == null) {
|
||||
list = groupworldperms.get("global." + world);
|
||||
if (list == null) {
|
||||
list = groupworldperms.get("global");
|
||||
}
|
||||
if (list == null) {
|
||||
return this.getPerms(world);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public void parsePerms(final FileConfiguration config) {
|
||||
try {
|
||||
Set<String> keys = config.getConfigurationSection("Global.Flags").getKeys(false);
|
||||
if (keys != null) {
|
||||
for (final String key : keys) {
|
||||
if (key.equalsIgnoreCase("Global")) {
|
||||
globaldefaults = FlagPermissions.parseFromConfigNode(key, config.getConfigurationSection("Global.Flags"));
|
||||
} else {
|
||||
worldperms.put(key.toLowerCase(), FlagPermissions.parseFromConfigNode(key, config.getConfigurationSection("Global.Flags")));
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final Entry<String, FlagPermissions> entry : worldperms.entrySet()) {
|
||||
entry.getValue().setParent(globaldefaults);
|
||||
}
|
||||
keys = config.getConfigurationSection("Groups").getKeys(false);
|
||||
if (keys != null) {
|
||||
for (final String key : keys) {
|
||||
final ConfigurationSection worldkeylist = config.getConfigurationSection("Groups." + key + ".Flags.World");
|
||||
if (worldkeylist != null) {
|
||||
final Set<String> worldkeys = config.getConfigurationSection("Groups." + key + ".Flags.World").getKeys(false);
|
||||
if (worldkeys != null) {
|
||||
final Map<String, FlagPermissions> perms = new HashMap<String, FlagPermissions>();
|
||||
for (final String wkey : worldkeys) {
|
||||
FlagPermissions list = FlagPermissions.parseFromConfigNode(wkey, config.getConfigurationSection("Groups." + key + ".Flags.World"));
|
||||
if (wkey.equalsIgnoreCase("global")) {
|
||||
list.setParent(globaldefaults);
|
||||
perms.put(wkey.toLowerCase(), list);
|
||||
for (final Entry<String, FlagPermissions> worldperm : worldperms.entrySet()) {
|
||||
list = FlagPermissions.parseFromConfigNode(wkey, config.getConfigurationSection("Groups." + key + ".Flags.World"));
|
||||
list.setParent(worldperm.getValue());
|
||||
perms.put("global." + worldperm.getKey().toLowerCase(), list);
|
||||
}
|
||||
} else {
|
||||
perms.put(wkey.toLowerCase(), list);
|
||||
}
|
||||
}
|
||||
for (final Entry<String, FlagPermissions> entry : perms.entrySet()) {
|
||||
final String wkey = entry.getKey();
|
||||
final FlagPermissions list = entry.getValue();
|
||||
if (!wkey.startsWith("global.")) {
|
||||
list.setParent(perms.get("global." + wkey));
|
||||
if (list.getParent() == null) {
|
||||
list.setParent(worldperms.get(wkey));
|
||||
}
|
||||
if (list.getParent() == null) {
|
||||
list.setParent(globaldefaults);
|
||||
}
|
||||
}
|
||||
}
|
||||
groupperms.put(key.toLowerCase(), perms);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (final Exception ex) {
|
||||
Logger.getLogger(WorldFlagManager.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
public void parsePerms(final FileConfiguration config) {
|
||||
try {
|
||||
Set<String> keys = config.getConfigurationSection("Global.Flags").getKeys(false);
|
||||
if (keys != null) {
|
||||
for (final String key : keys) {
|
||||
if (key.equalsIgnoreCase("Global")) {
|
||||
globaldefaults = FlagPermissions.parseFromConfigNode(key, config.getConfigurationSection("Global.Flags"));
|
||||
} else {
|
||||
worldperms.put(key.toLowerCase(), FlagPermissions.parseFromConfigNode(key, config.getConfigurationSection("Global.Flags")));
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final Entry<String, FlagPermissions> entry : worldperms.entrySet()) {
|
||||
entry.getValue().setParent(globaldefaults);
|
||||
}
|
||||
keys = config.getConfigurationSection("Groups").getKeys(false);
|
||||
if (keys != null) {
|
||||
for (final String key : keys) {
|
||||
final ConfigurationSection worldkeylist = config.getConfigurationSection("Groups." + key + ".Flags.World");
|
||||
if (worldkeylist != null) {
|
||||
final Set<String> worldkeys = config.getConfigurationSection("Groups." + key + ".Flags.World").getKeys(false);
|
||||
if (worldkeys != null) {
|
||||
final Map<String, FlagPermissions> perms = new HashMap<String, FlagPermissions>();
|
||||
for (final String wkey : worldkeys) {
|
||||
FlagPermissions list = FlagPermissions.parseFromConfigNode(wkey, config.getConfigurationSection("Groups." + key + ".Flags.World"));
|
||||
if (wkey.equalsIgnoreCase("global")) {
|
||||
list.setParent(globaldefaults);
|
||||
perms.put(wkey.toLowerCase(), list);
|
||||
for (final Entry<String, FlagPermissions> worldperm : worldperms.entrySet()) {
|
||||
list = FlagPermissions.parseFromConfigNode(wkey, config.getConfigurationSection("Groups." + key + ".Flags.World"));
|
||||
list.setParent(worldperm.getValue());
|
||||
perms.put("global." + worldperm.getKey().toLowerCase(), list);
|
||||
}
|
||||
} else {
|
||||
perms.put(wkey.toLowerCase(), list);
|
||||
}
|
||||
}
|
||||
for (final Entry<String, FlagPermissions> entry : perms.entrySet()) {
|
||||
final String wkey = entry.getKey();
|
||||
final FlagPermissions list = entry.getValue();
|
||||
if (!wkey.startsWith("global.")) {
|
||||
list.setParent(perms.get("global." + wkey));
|
||||
if (list.getParent() == null) {
|
||||
list.setParent(worldperms.get(wkey));
|
||||
}
|
||||
if (list.getParent() == null) {
|
||||
list.setParent(globaldefaults);
|
||||
}
|
||||
}
|
||||
}
|
||||
groupperms.put(key.toLowerCase(), perms);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (final Exception ex) {
|
||||
Logger.getLogger(WorldFlagManager.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user