package cofh.api.tileentity; import com.mojang.authlib.GameProfile; import net.minecraft.entity.player.EntityPlayer; /** * Implement this interface on Tile Entities which can have access restrictions. * * @author King Lemming * */ public interface ISecurable { /** * Enum for Access Modes - Restricted is Friends Only, Private is Owner only. * * @author King Lemming * */ public static enum AccessMode { PUBLIC, RESTRICTED, PRIVATE; public boolean isPublic() { return this == PUBLIC; } public boolean isRestricted() { return this == RESTRICTED; } public boolean isPrivate() { return this == PRIVATE; } public static AccessMode stepForward(AccessMode curAccess) { return curAccess == PUBLIC ? RESTRICTED : curAccess == PRIVATE ? PUBLIC : PRIVATE; } public static AccessMode stepBackward(AccessMode curAccess) { return curAccess == PUBLIC ? PRIVATE : curAccess == PRIVATE ? RESTRICTED : PUBLIC; } } boolean setAccess(AccessMode access); boolean setOwnerName(String name); boolean setOwner(GameProfile name); AccessMode getAccess(); String getOwnerName(); GameProfile getOwner(); boolean canPlayerAccess(EntityPlayer player); }