|  | package stargatetech2.api.shields; | 
|  |  | 
|  | /** | 
|  | * Implemented by the shield emitter TileEntities. | 
|  | * | 
|  | * @author LordFokas | 
|  | */ | 
|  | public interface ITileShieldEmitter { | 
|  | /** | 
|  | * Given the way shield emitters work together, you cannot | 
|  | * directly access their ShieldPermissions object. | 
|  | * This means you cannot use this method to change | 
|  | * permissions on a shield. | 
|  | * | 
|  | * @return A deep clone of  theShieldPermissions object that | 
|  | * defines this emitter's shield behavior. | 
|  | */ | 
|  | public ShieldPermissions getPermissions(); | 
|  |  | 
|  | /** | 
|  | * @return True if the shield is activated, false otherwise. | 
|  | */ | 
|  | public boolean isShieldOn(); | 
|  |  | 
|  | /** | 
|  | * Update the permissions on this emitter. | 
|  | * It will propagate to the whole shield. | 
|  | * | 
|  | * @param isAllow true if allowing this flag, false if disallowing. | 
|  | * @param flag The flag we're (dis)allowing. | 
|  | * @see stargatetech2.api.ShieldPermissions | 
|  | */ | 
|  | public void updatePermissions(boolean isAllow, int flag); | 
|  |  | 
|  | /** | 
|  | * Update the exceptions on this emitter. | 
|  | * It will propagate to the whole shield. | 
|  | * | 
|  | * @param isAdding true if we're adding a player to the exceptions, false if removing. | 
|  | * @param player The name of the player we're adding / removing. | 
|  | * @see stargatetech2.api.ShieldPermissions | 
|  | */ | 
|  | public void updateExceptions(boolean isAdding, String player); | 
|  |  | 
|  | /** | 
|  | * Sets the owner of this Shield Emitter. | 
|  | * An owner has previleges no other players have. | 
|  | * | 
|  | * @param owner The owner's player name. | 
|  | */ | 
|  | public void setOwner(String owner); | 
|  |  | 
|  | /** | 
|  | * @return The player name of this machine's owner. | 
|  | */ | 
|  | public String getOwner(); | 
|  |  | 
|  | /** | 
|  | * Checks if a player can access this device. | 
|  | * | 
|  | * @param player The player's name. | 
|  | * @return Whether or not this player can access this device. | 
|  | */ | 
|  | public boolean canAccess(String player); | 
|  | } |