Search in sources :

Example 6 with Block

use of org.bukkit.block.Block in project Prism-Bukkit by prism.

the class ProfileWand method showLocationProfile.

/**
     * 
     * @param player
     * @param block
     * @param loc
     */
protected void showLocationProfile(Player player, Location loc) {
    final Block block = loc.getBlock();
    player.sendMessage(Prism.messenger.playerHeaderMsg("Location Profile"));
    player.sendMessage(Prism.messenger.playerMsg("Name: " + block.getType().toString().toLowerCase()));
    player.sendMessage(Prism.messenger.playerMsg("Alias: " + Prism.getItems().getAlias(block.getTypeId(), block.getData())));
    player.sendMessage(Prism.messenger.playerMsg("ID: " + block.getTypeId() + ":" + block.getData()));
    player.sendMessage(Prism.messenger.playerMsg("Coords: " + block.getX() + " " + block.getY() + " " + block.getZ()));
}
Also used : Block(org.bukkit.block.Block)

Example 7 with Block

use of org.bukkit.block.Block in project Prism-Bukkit by prism.

the class RollbackWand method rollback.

/**
     * 
     * @param player
     * @param block
     */
protected void rollback(Player player, Location loc) {
    final Block block = loc.getBlock();
    plugin.eventTimer.recordTimedEvent("rollback wand used");
    // Build params
    QueryParameters params;
    try {
        params = parameters.clone();
    } catch (final CloneNotSupportedException ex) {
        params = new QueryParameters();
        player.sendMessage(Prism.messenger.playerError("Error retrieving parameters. Checking with default parameters."));
    }
    params.setWorld(player.getWorld().getName());
    params.setSpecificBlockLocation(block.getLocation());
    params.setLimit(1);
    params.setProcessType(PrismProcessType.ROLLBACK);
    boolean timeDefault = false;
    for (final String _default : params.getDefaultsUsed()) {
        if (_default.startsWith("t:")) {
            timeDefault = true;
        }
    }
    if (timeDefault) {
        params.setIgnoreTime(true);
    }
    final ActionsQuery aq = new ActionsQuery(plugin);
    final QueryResult results = aq.lookup(params, player);
    if (!results.getActionResults().isEmpty()) {
        final Rollback rb = new Rollback(plugin, player, results.getActionResults(), params, new PrismApplierCallback());
        rb.apply();
    } else {
        final String space_name = (block.getType().equals(Material.AIR) ? "space" : block.getType().toString().replaceAll("_", " ").toLowerCase() + (block.getType().toString().endsWith("BLOCK") ? "" : " block"));
        player.sendMessage(Prism.messenger.playerError("Nothing to rollback for this " + space_name + " found."));
    }
}
Also used : QueryResult(me.botsko.prism.actionlibs.QueryResult) PrismApplierCallback(me.botsko.prism.appliers.PrismApplierCallback) ActionsQuery(me.botsko.prism.actionlibs.ActionsQuery) Block(org.bukkit.block.Block) QueryParameters(me.botsko.prism.actionlibs.QueryParameters) Rollback(me.botsko.prism.appliers.Rollback)

Example 8 with Block

use of org.bukkit.block.Block in project Prism-Bukkit by prism.

the class PrismBlockEvents method onPistonRetract.

/**
     * 
     * @param event
     */
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPistonRetract(final BlockPistonRetractEvent event) {
    if (!Prism.getIgnore().event("block-shift", event.getBlock()))
        return;
    if (!event.isSticky())
        return;
    final Block block = event.getBlock();
    if (block.getType().equals(Material.AIR))
        return;
    RecordingQueue.addToQueue(ActionFactory.createBlockShift("block-shift", event.getRetractLocation().getBlock(), block.getRelative(event.getDirection()).getLocation(), "Piston"));
}
Also used : Block(org.bukkit.block.Block) EventHandler(org.bukkit.event.EventHandler)

Example 9 with Block

use of org.bukkit.block.Block in project Prism-Bukkit by prism.

the class PrismBlockEvents method onBlockBreak.

/**
     * 
     * @param event
     */
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockBreak(final BlockBreakEvent event) {
    final Player player = event.getPlayer();
    Block block = event.getBlock();
    if (block.getType().equals(Material.AIR))
        return;
    // Run ore find alerts
    if (!player.hasPermission("prism.alerts.ores.ignore") && !player.hasPermission("prism.alerts.ignore")) {
        plugin.oreMonitor.processAlertsFromBlock(player, block);
    }
    if (!Prism.getIgnore().event("block-break", player))
        return;
    // Change handling a bit if it's a long block
    final Block sibling = me.botsko.elixr.BlockUtils.getSiblingForDoubleLengthBlock(block);
    if (sibling != null && !block.getType().equals(Material.CHEST) && !block.getType().equals(Material.TRAPPED_CHEST)) {
        block = sibling;
    }
    // log items removed from container
    // note: done before the container so a "rewind" for rollback will work
    // properly
    logItemRemoveFromDestroyedContainer(player.getName(), block);
    RecordingQueue.addToQueue(ActionFactory.createBlock("block-break", block, player.getName()));
    // check for block relationships
    logBlockRelationshipsForBlock(player.getName(), block);
    // if obsidian, log portal blocks
    if (block.getType().equals(Material.OBSIDIAN)) {
        final ArrayList<Block> blocks = me.botsko.elixr.BlockUtils.findConnectedBlocksOfType(Material.PORTAL, block, null);
        if (!blocks.isEmpty()) {
            // Only log 1 portal break, we don't need all 8
            RecordingQueue.addToQueue(ActionFactory.createBlock("block-break", blocks.get(0), player.getName()));
        }
    }
    // Pass to the break alerter
    if (!player.hasPermission("prism.alerts.use.break.ignore") && !player.hasPermission("prism.alerts.ignore")) {
        plugin.useMonitor.alertOnBlockBreak(player, event.getBlock());
    }
}
Also used : Player(org.bukkit.entity.Player) Block(org.bukkit.block.Block) EventHandler(org.bukkit.event.EventHandler)

Example 10 with Block

use of org.bukkit.block.Block in project Prism-Bukkit by prism.

the class PrismBlockEvents method onBlockBurn.

/**
     * 
     * @param event
     */
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockBurn(final BlockBurnEvent event) {
    if (!Prism.getIgnore().event("block-burn", event.getBlock()))
        return;
    Block block = event.getBlock();
    RecordingQueue.addToQueue(ActionFactory.createBlock("block-burn", block, "Environment"));
    // Change handling a bit if it's a long block
    final Block sibling = me.botsko.elixr.BlockUtils.getSiblingForDoubleLengthBlock(block);
    if (sibling != null && !block.getType().equals(Material.CHEST) && !block.getType().equals(Material.TRAPPED_CHEST)) {
        block = sibling;
    }
    // check for block relationships
    logBlockRelationshipsForBlock("Environment", block);
}
Also used : Block(org.bukkit.block.Block) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Block (org.bukkit.block.Block)187 EventHandler (org.bukkit.event.EventHandler)62 Player (org.bukkit.entity.Player)42 Location (org.bukkit.Location)30 BlockState (org.bukkit.block.BlockState)28 Sign (org.bukkit.block.Sign)24 Material (org.bukkit.Material)23 BlockFace (org.bukkit.block.BlockFace)23 GlowBlock (net.glowstone.block.GlowBlock)19 ASkyBlock (com.wasteofplastic.acidisland.ASkyBlock)16 MaterialData (org.bukkit.material.MaterialData)16 ArrayList (java.util.ArrayList)15 World (org.bukkit.World)14 Entity (org.bukkit.entity.Entity)14 ItemStack (org.bukkit.inventory.ItemStack)14 TownBlock (com.palmergames.bukkit.towny.object.TownBlock)13 Vector (org.bukkit.util.Vector)13 IOException (java.io.IOException)7 net.aufdemrand.denizencore.objects.dList (net.aufdemrand.denizencore.objects.dList)6 net.aufdemrand.denizen.objects.dLocation (net.aufdemrand.denizen.objects.dLocation)5