C_far icon

[Spigot] My first plugin V2 - FloorLamp.java

C_far | PRO | 08/02/16 01:51:13 PM UTC | 0 ⭐ | 464 👁️ | Never ⏰ | []
Java |

1.61 KB

|

None

|

0 👍

/

0 👎

package fr.c_far.lampfloorauto;
 
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
 
public class FloorLamp
{
    private final Material LAMP_ON = Material.REDSTONE_LAMP_ON;
    private final Material LAMP_OFF = Material.REDSTONE_LAMP_OFF;
    private final Material BASE = Material.COBBLE_WALL;
    
    private final int MAX_HEIGHT_FLOOR_LAMP = 6;
    
    public boolean isFloorLamp(Block b)
    {           
        if(!b.getType().equals(BASE)) return false;
        
        Block lamp = getBlockLamp(b);
        Material m = lamp.getType();
        
        if(!(m.equals(LAMP_ON) || m.equals(LAMP_OFF))) return false;
        
        int distance = lamp.getY() - b.getY();
        
        if(distance >= MAX_HEIGHT_FLOOR_LAMP || distance <= 1) return false;
        
        Block fence = b;
        
        for(int i = 1; i < distance; i++)
        {
            fence = fence.getRelative(BlockFace.UP);
            if(!fence.getType().equals(Material.FENCE)) return false;
        }
        
        return true;
    }
    
    public boolean setON(Block b)
    {
        if(!b.getType().equals(BASE)) return false;
 
        getBlockLamp(b).setType(LAMP_ON);
        
        if(LAMP_ON.equals(Material.REDSTONE_LAMP_ON))
        {           
            Block rb = b.getWorld().getHighestBlockAt(b.getLocation());
            rb.setType(Material.REDSTONE_BLOCK);
            rb.setType(Material.AIR);
        }
        
        return true;
    }
    
    public boolean setOFF(Block b)
    {
        if(!b.getType().equals(BASE)) return false;
        
        getBlockLamp(b).setType(LAMP_OFF);
        
        return true;
    }
    
    private Block getBlockLamp(Block b)
    {
        return b.getWorld().getHighestBlockAt(b.getLocation()).getRelative(BlockFace.DOWN);
    }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎