当前位置: 首页>>代码示例>>Java>>正文


Java BlockFace.SOUTH属性代码示例

本文整理汇总了Java中org.bukkit.block.BlockFace.SOUTH属性的典型用法代码示例。如果您正苦于以下问题:Java BlockFace.SOUTH属性的具体用法?Java BlockFace.SOUTH怎么用?Java BlockFace.SOUTH使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在org.bukkit.block.BlockFace的用法示例。


在下文中一共展示了BlockFace.SOUTH属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: notchToBlockFace

/**
 * Notch uses a 0-5 to mean DOWN, UP, NORTH, SOUTH, WEST, EAST
 * in that order all over. This method is convenience to convert for us.
 *
 * @return BlockFace the BlockFace represented by this number
 */
public static BlockFace notchToBlockFace(int notch) {
    switch (notch) {
    case 0:
        return BlockFace.DOWN;
    case 1:
        return BlockFace.UP;
    case 2:
        return BlockFace.NORTH;
    case 3:
        return BlockFace.SOUTH;
    case 4:
        return BlockFace.WEST;
    case 5:
        return BlockFace.EAST;
    default:
        return BlockFace.SELF;
    }
}
 
开发者ID:UraniumMC,项目名称:Uranium,代码行数:24,代码来源:CraftBlock.java

示例2: send

@Override
public void send(Player p) {
    if (direction == BlockFace.UP) {
        for (double r = basis; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new RectangleForm(getLocation().clone().subtract(0, r, 0), "y", getDense(), r, r, isFilled(), getAction()).send(p);
    } else if (direction == BlockFace.EAST) {
        for (double r = basis; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new RectangleForm(getLocation().clone().subtract(r, 0, 0), "z", getDense(), r, r, isFilled(), getAction()).send(p);
    } else if (direction == BlockFace.WEST) {
        for (double r = basis; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new RectangleForm(getLocation().clone().add(r, 0, 0), "z", getDense(), r, r, isFilled(), getAction()).send(p);
    } else if (direction == BlockFace.SOUTH) {
        for (double r = basis; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new RectangleForm(getLocation().clone().subtract(0, 0, r), "x", getDense(), r, r, isFilled(), getAction()).send(p);
    } else if (direction == BlockFace.NORTH) {
        for (double r = basis; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new RectangleForm(getLocation().clone().add(0, 0, r), "x", getDense(), r, r, isFilled(), getAction()).send(p);
    } else {
        for (double r = basis; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new RectangleForm(getLocation().clone().add(0, r, 0), "y", getDense(), r, r, isFilled(), getAction()).send(p);
    }
}
 
开发者ID:AlphaHelixDev,项目名称:AlphaLibary,代码行数:22,代码来源:PyramidForm.java

示例3: send

@Override
public void send(Player p) {
    if (direction == BlockFace.UP) {
        for (double r = baseRadius; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new CircleForm(getLocation().clone().subtract(0, r, 0), "y", getDense(), r, getAction()).send(p);
    } else if (direction == BlockFace.EAST) {
        for (double r = baseRadius; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new CircleForm(getLocation().clone().subtract(r, 0, 0), "z", getDense(), r, getAction()).send(p);
    } else if (direction == BlockFace.WEST) {
        for (double r = baseRadius; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new CircleForm(getLocation().clone().add(r, 0, 0), "z", getDense(), r, getAction()).send(p);
    } else if (direction == BlockFace.SOUTH) {
        for (double r = baseRadius; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new CircleForm(getLocation().clone().subtract(0, 0, r), "x", getDense(), r, getAction()).send(p);
    } else if (direction == BlockFace.NORTH) {
        for (double r = baseRadius; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new CircleForm(getLocation().clone().add(0, 0, r), "x", getDense(), r, getAction()).send(p);
    } else {
        for (double r = baseRadius; r > 0 && size != 0; r -= getDense(), size -= getDense())
            new CircleForm(getLocation().clone().add(0, r, 0), "y", getDense(), r, getAction()).send(p);
    }
}
 
开发者ID:AlphaHelixDev,项目名称:AlphaLibary,代码行数:22,代码来源:ConeForm.java

示例4: getFacing

public BlockFace getFacing() {
    switch (this.getHandle().hangingDirection) {
        case 0:
        default:
            return BlockFace.SOUTH;
        case 1:
            return BlockFace.WEST;
        case 2:
            return BlockFace.NORTH;
        case 3:
            return BlockFace.EAST;
    }
}
 
开发者ID:UraniumMC,项目名称:Uranium,代码行数:13,代码来源:CraftHanging.java

示例5: getBlockPower

public int getBlockPower(BlockFace face) {
    int power = 0;
    BlockRedstoneWire wire = Blocks.redstone_wire;
    net.minecraft.world.World world = chunk.getHandle().worldObj;
    if ((face == BlockFace.DOWN || face == BlockFace.SELF) && world.getIndirectPowerOutput(x, y - 1, z, 0)) power = wire.func_150178_a(world, x, y - 1, z, power);
    if ((face == BlockFace.UP || face == BlockFace.SELF) && world.getIndirectPowerOutput(x, y + 1, z, 1)) power = wire.func_150178_a(world, x, y + 1, z, power);
    if ((face == BlockFace.EAST || face == BlockFace.SELF) && world.getIndirectPowerOutput(x + 1, y, z, 2)) power = wire.func_150178_a(world, x + 1, y, z, power);
    if ((face == BlockFace.WEST || face == BlockFace.SELF) && world.getIndirectPowerOutput(x - 1, y, z, 3)) power = wire.func_150178_a(world, x - 1, y, z, power);
    if ((face == BlockFace.NORTH || face == BlockFace.SELF) && world.getIndirectPowerOutput(x, y, z - 1, 4)) power = wire.func_150178_a(world, x, y, z - 1, power);
    if ((face == BlockFace.SOUTH || face == BlockFace.SELF) && world.getIndirectPowerOutput(x, y, z + 1, 5)) power = wire.func_150178_a(world, x, y, z - 1, power);
    return power > 0 ? power : (face == BlockFace.SELF ? isBlockIndirectlyPowered() : isBlockFaceIndirectlyPowered(face)) ? 15 : 0;
}
 
开发者ID:UraniumMC,项目名称:Uranium,代码行数:12,代码来源:CraftBlock.java

示例6: getBlockFace

static BlockFace getBlockFace(byte rotation) {
    switch (rotation) {
        case 0:
            return BlockFace.NORTH;
        case 1:
            return BlockFace.NORTH_NORTH_EAST;
        case 2:
            return BlockFace.NORTH_EAST;
        case 3:
            return BlockFace.EAST_NORTH_EAST;
        case 4:
            return BlockFace.EAST;
        case 5:
            return BlockFace.EAST_SOUTH_EAST;
        case 6:
            return BlockFace.SOUTH_EAST;
        case 7:
            return BlockFace.SOUTH_SOUTH_EAST;
        case 8:
            return BlockFace.SOUTH;
        case 9:
            return BlockFace.SOUTH_SOUTH_WEST;
        case 10:
            return BlockFace.SOUTH_WEST;
        case 11:
            return BlockFace.WEST_SOUTH_WEST;
        case 12:
            return BlockFace.WEST;
        case 13:
            return BlockFace.WEST_NORTH_WEST;
        case 14:
            return BlockFace.NORTH_WEST;
        case 15:
            return BlockFace.NORTH_NORTH_WEST;
        default:
            throw new AssertionError(rotation);
    }
}
 
开发者ID:UraniumMC,项目名称:Uranium,代码行数:38,代码来源:CraftSkull.java

示例7: getDirectionFromRelative

public Block getDirectionFromRelative(Block blockIn, BlockFace dir, boolean left)
{
	Block b;
	if( dir == BlockFace.NORTH )	
	{
		if( left )
			b = blockIn.getRelative(BlockFace.WEST);
		else
			b = blockIn.getRelative(BlockFace.EAST);
	}else if( dir == BlockFace.SOUTH )
	{
		if( left )
			b = blockIn.getRelative(BlockFace.EAST);
		else
			b = blockIn.getRelative(BlockFace.WEST);
	}else if( dir == BlockFace.EAST )
	{
		if( left )
			b = blockIn.getRelative(BlockFace.NORTH);
		else
			b = blockIn.getRelative(BlockFace.SOUTH);
	}else //if( direction == BlockFace.WEST )
	{
		if( left )
			b = blockIn.getRelative(BlockFace.SOUTH);
		else
			b = blockIn.getRelative(BlockFace.NORTH);
	}
	return b;
}
 
开发者ID:Maximuspayne,项目名称:NavyCraft2-Lite,代码行数:30,代码来源:OneCannon.java

示例8: getTubeBlockFace

public BlockFace getTubeBlockFace(boolean left)
{
	BlockFace bf;
	if( direction == BlockFace.NORTH )	
	{
		if( left )
			bf = BlockFace.WEST;
		else
			bf = BlockFace.EAST;
	}else if( direction == BlockFace.SOUTH )
	{
		if( left )
			bf = BlockFace.EAST;
		else
			bf = BlockFace.WEST;
	}else if( direction == BlockFace.EAST )
	{
		if( left )
			bf = BlockFace.NORTH;
		else
			bf = BlockFace.SOUTH;
	}else //if( direction == BlockFace.WEST )
	{
		if( left )
			bf = BlockFace.SOUTH;
		else
			bf = BlockFace.NORTH;
	}
	return bf;
}
 
开发者ID:Maximuspayne,项目名称:NavyCraft2-Lite,代码行数:30,代码来源:OneCannon.java

示例9: isGeckBuildCorrect

/**
 * Checks if the geck structure is correct.
 * 
 * @param center
 *            The center block.
 * @return true if the build is correct, false otherwise.
 */
public boolean isGeckBuildCorrect(Block center) {

	BlockFace[] faces = { BlockFace.EAST, BlockFace.WEST, BlockFace.NORTH, BlockFace.SOUTH };
	for (BlockFace f : faces) {
		if (center.getRelative(f).getType() != Material.PISTON_BASE)
			return false;
	}
	return true;
}
 
开发者ID:kadeska,项目名称:MT_Core,代码行数:16,代码来源:GeckManager.java

示例10: getBlockFace

public static BlockFace getBlockFace(double yaw){
	int y = (int) ((yaw+11.25)/22.5);
	switch(y){
	case -8:
		return BlockFace.NORTH;
	case -7:
		return BlockFace.NORTH_NORTH_EAST;
	case -6:
		return BlockFace.NORTH_EAST;
	case -5:
		return BlockFace.EAST_NORTH_EAST;
	case -4:
		return BlockFace.EAST;
	case -3:
		return BlockFace.EAST_SOUTH_EAST;
	case -2:
		return BlockFace.SOUTH_EAST;
	case -1:
		return BlockFace.SOUTH_SOUTH_EAST;
	case 0:
		return BlockFace.SOUTH;
	case 1:
		return BlockFace.SOUTH_SOUTH_WEST;
	case 2:
		return BlockFace.SOUTH_WEST;
	case 3:
		return BlockFace.WEST_SOUTH_WEST;
	case 4:
		return BlockFace.WEST;
	case 5:
		return BlockFace.WEST_NORTH_WEST;
	case 6:
		return BlockFace.NORTH_WEST;
	case 7:
		return BlockFace.NORTH_NORTH_WEST;
	default:
		return BlockFace.NORTH;
	}
}
 
开发者ID:dracnis,项目名称:VanillaPlus,代码行数:39,代码来源:BlockFaceUtil.java

示例11: addChunk

private void addChunk(Player player, Region region, String[] args, int i) {
    World world = player.getWorld();
    Chunk chunk = player.getLocation().getChunk();
    int x = chunk.getX();
    int z = chunk.getZ();
    boolean override = args.length > i + 2 ? args[i + 2].equalsIgnoreCase("-override") : false;

    if (region == null) {
        ParsingUtil.sendMessage(player, ChatColor.RED + "/f world addChunk [region name] [radius|line|auto] [value] ([-override])");
        return;
    }
    if (args.length >= i + 1) {
        if (args[i].equalsIgnoreCase("radius") || args[i].equalsIgnoreCase("r")) {
            int r = args.length > i + 1 ? NumberUtil.parseInt(args[i + 1]) : 1;
            x += -1 * r;
            z += -1 * r;
            while (z <= chunk.getZ() + r) {
                if (board.isWilderness(world.getChunkAt(x, z)) || override) {
                    addChunk(region, world.getChunkAt(x, z), override);
                }
                x++;
                if (x > chunk.getX() + r) {
                    x = chunk.getX() + -1 * r;
                    z++;
                }
            }

        } else if (args[i].equalsIgnoreCase("line") || args[i].equalsIgnoreCase("l")) {
            int l = args.length > i + 1 ? NumberUtil.parseInt(args[i + 1]) : 1;
            BlockFace face = AXIS[Math.round(player.getLocation().getYaw() / 90F) & 0x3];
            if (face == BlockFace.NORTH) {
                while (l >= 0) {
                    if (board.isWilderness(world.getChunkAt(x, z + l)) || override) {
                        addChunk(region, world.getChunkAt(x, z + l), override);
                    }
                    l--;
                }
            } else if (face == BlockFace.EAST) {
                while (l >= 0) {
                    if (board.isWilderness(world.getChunkAt(x - l, z)) || override) {
                        addChunk(region, world.getChunkAt(x - l, z), override);
                    }
                    l--;
                }
            } else if (face == BlockFace.WEST) {
                while (l >= 0) {
                    if (board.isWilderness(world.getChunkAt(x + l, z)) || override) {
                        addChunk(region, world.getChunkAt(x + l, z), override);
                    }
                    l--;
                }
            } else if (face == BlockFace.SOUTH) {
                while (l >= 0) {
                    if (board.isWilderness(world.getChunkAt(x, z - l)) || override) {
                        addChunk(region, world.getChunkAt(x, z - l), override);
                    }
                    l--;
                }
            }

        } else if (args[i].equalsIgnoreCase("auto") || args[i].equalsIgnoreCase("a")) {
            FPlayer fPlayer = plugin.getFPlayerCache().getByPlayer(player);
            if (fPlayer.isAutoclaiming()) {
                fPlayer.setAutoclaiming(null);
                ParsingUtil.sendMessage(player, FMessage.CMD_WORLD_AUTOCLAIM_END.getMessage());
                return;
            } else {
                fPlayer.setAutoclaiming(region);
                ParsingUtil.sendMessage(player, FMessage.CMD_WORLD_AUTOCLAIM_START.getMessage(), region);
            }
        }

    } else {
        addChunk(region, chunk, override);
    }
    ParsingUtil.sendMessage(player, FMessage.CMD_WORLD_CHUNK_ADDED.getMessage(), region);
}
 
开发者ID:DRE2N,项目名称:FactionsXL,代码行数:77,代码来源:WorldCommand.java

示例12: loadTorpedo

@SuppressWarnings("deprecation")
public boolean loadTorpedo(boolean left)
   {
   	Block b;
   	b = getDirectionFromRelative(loc.getBlock(), direction, left).getRelative(direction, -5);
   	
   	if( direction == BlockFace.NORTH && left )
   		b = b.getRelative(BlockFace.WEST);
   	else if( direction == BlockFace.NORTH && !left )
   		b = b.getRelative(BlockFace.EAST);
   	else if( direction == BlockFace.SOUTH && left )
   		b = b.getRelative(BlockFace.EAST);
   	else if( direction == BlockFace.SOUTH && !left )
   		b = b.getRelative(BlockFace.WEST);
   	else if( direction == BlockFace.EAST && left )
   		b = b.getRelative(BlockFace.NORTH);
   	else if( direction == BlockFace.EAST && !left )
   		b = b.getRelative(BlockFace.SOUTH);
   	else if( direction == BlockFace.WEST && left )
   		b = b.getRelative(BlockFace.SOUTH);
   	else //if( direction == BlockFace.WEST && !left )
   		b = b.getRelative(BlockFace.NORTH);
   	
   	for( int i=0; i<4; i++)
   	{
   		if( b.getTypeId() == 35 )
   			if( b.getRelative(direction,-1).getTypeId() == 35 )
       			if( b.getRelative(direction,-2).getTypeId() == 35 )
       				if( b.getRelative(direction,-3).getTypeId() == 35 )
       				{
       					if( i > 1 )
       						loadingTorp(left, b, direction, true);
       					else
       						loadingTorp(left, b, direction, false);
       					
       					if( left )
       						leftLoading = true;
       					else
       						rightLoading = true;
       					
       					Craft testCraft = Craft.getCraft(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
       					if( testCraft != null )
       					{
       						testCraft.waitTorpLoading++;
       					}
       					return true;
       				}
   		//move back four spaces unless going from 2 to 3, then carriage return it
   		if( i == 1 )
   			b = b.getRelative(direction,4).getRelative(BlockFace.DOWN);
   		else
   			b = b.getRelative(direction,-4);
   	}
   	return false;
   	
   }
 
开发者ID:Maximuspayne,项目名称:NavyCraft2-Lite,代码行数:56,代码来源:OneCannon.java

示例13: fireDCButton

@SuppressWarnings("deprecation")
public void fireDCButton(Player p, boolean leftClick)
   {
   	if( checkProtectedRegion(p, p.getLocation()) )
   	{
   		p.sendMessage("You are in a protected region");
   		return;
   	}
   	
	if( leftClick )
	{
		if( charged > 0 )
		{
			if( depth == 0 )
				depth = 10;
			if( cannonType == 4 )
			{
				
				loc.getBlock().getRelative(direction,4).setTypeIdAndData(35, (byte) 0x8, false);
				loc.getBlock().getRelative(direction,4).getRelative(BlockFace.DOWN).setTypeIdAndData(35, (byte) 0x8, false);
				fireDC(p, loc.getBlock().getRelative(direction,4), depth, loc.getBlockY(), 0, 2);
				p.sendMessage("Depth Charge Away!");
			}else if( cannonType == 9 )
			{
				
				loc.getBlock().getRelative(BlockFace.DOWN,5).setTypeIdAndData(35, (byte) 0x8, false);
				loc.getBlock().getRelative(BlockFace.DOWN,5).getRelative(BlockFace.DOWN).setTypeIdAndData(35, (byte) 0x7, false);
				fireDC(p, loc.getBlock().getRelative(BlockFace.DOWN,5), 0, loc.getBlock().getRelative(BlockFace.DOWN,5).getY(), 0, 2);
				p.sendMessage("Bomb Away!");
			}else
			{
				
				loc.getBlock().getRelative(direction,4).setTypeIdAndData(35, (byte) 0x8, false);
				loc.getBlock().getRelative(direction,4).getRelative(BlockFace.DOWN).setTypeIdAndData(35, (byte) 0x8, false);
				fireDC(p, loc.getBlock().getRelative(direction,4), depth, loc.getBlockY(), 0, 0);
				
				if( direction == BlockFace.NORTH || direction == BlockFace.SOUTH )
				{
					loc.getBlock().getRelative(direction,6).getRelative(BlockFace.EAST,10).setTypeIdAndData(35, (byte) 0x8, false);
					loc.getBlock().getRelative(direction,6).getRelative(BlockFace.DOWN).getRelative(BlockFace.EAST,10).setTypeIdAndData(35, (byte) 0x8, false);
					fireDC(p, loc.getBlock().getRelative(direction,6).getRelative(BlockFace.EAST,10), depth, loc.getBlockY(), 1000, 1);
					loc.getBlock().getRelative(direction,6).getRelative(BlockFace.WEST,10).setTypeIdAndData(35, (byte) 0x8, false);
					loc.getBlock().getRelative(direction,6).getRelative(BlockFace.DOWN).getRelative(BlockFace.WEST,10).setTypeIdAndData(35, (byte) 0x8, false);
					fireDC(p, loc.getBlock().getRelative(direction,6).getRelative(BlockFace.WEST,10), depth, loc.getBlockY(), 1000, -1);
				}else
				{
					loc.getBlock().getRelative(direction,6).getRelative(BlockFace.NORTH,10).setTypeIdAndData(35, (byte) 0x8, false);
					loc.getBlock().getRelative(direction,6).getRelative(BlockFace.DOWN).getRelative(BlockFace.NORTH,10).setTypeIdAndData(35, (byte) 0x8, false);
					fireDC(p, loc.getBlock().getRelative(direction,6).getRelative(BlockFace.NORTH,10), depth, loc.getBlockY(), 1000, 1);
					loc.getBlock().getRelative(direction,6).getRelative(BlockFace.SOUTH,10).setTypeIdAndData(35, (byte) 0x8, false);
					loc.getBlock().getRelative(direction,6).getRelative(BlockFace.DOWN).getRelative(BlockFace.SOUTH,10).setTypeIdAndData(35, (byte) 0x8, false);
					fireDC(p, loc.getBlock().getRelative(direction,6).getRelative(BlockFace.SOUTH,10), depth, loc.getBlockY(), 1000, -1);
				}
				p.sendMessage("Depth Charges Away!");
			}
			
			charged = 0;
		}else
		{
			if( cannonType == 4 )
				p.sendMessage("Load Depth Charge Dropper first.");
			else if( cannonType == 5 )
				p.sendMessage("Load Depth Charge Launcher first.");
			else
				p.sendMessage("Load Bomb Dropper first.");
		}
	}else
	{
		depth += 10;
		if( depth > 40 )
			depth = 10;
		if( cannonType == 4 )
			p.sendMessage("Depth Charge Dropper set to " + depth + " meters.");
		else if( cannonType == 5 )
			p.sendMessage("Depth Charge Launcher set to " + depth + " meters.");
		else if( cannonType == 9 )
			p.sendMessage("Left click to drop bomb.");
	}
   }
 
开发者ID:Maximuspayne,项目名称:NavyCraft2-Lite,代码行数:79,代码来源:OneCannon.java

示例14: clientNewSign

public void clientNewSign(ChannelHandlerContext ctx, int x, int y, int z, int face, String text) {
    if (!allowSigns) {
        webSocketServerThread.sendLine(ctx.channel(), "T,Writing on signs is not allowed");
        // TODO: revert on client
        return;
    }

    BlockFace blockFace;
    switch (face) {
        case 0: // west
            blockFace = BlockFace.WEST;
            x -= 1;
            break;
        case 1: // east
            blockFace = BlockFace.EAST;
            x += 1;
            break;
        default:
        case 2: // north
            blockFace = BlockFace.NORTH;
            z -= 1;
            break;
        case 3: // south
            blockFace = BlockFace.SOUTH;
            z += 1;
            break;
    }
    org.bukkit.material.Sign signDirection = new org.bukkit.material.Sign();
    signDirection.setFacingDirection(blockFace);

    Location location = toBukkitLocation(x, y, z);
    if (!withinSandboxRange(location)) {
        webSocketServerThread.log(Level.FINEST, "client tried to write a sign outside sandbox range");
        return;
    }

    // Create the sign
    Block block = location.getWorld().getBlockAt(location);
    /*
    block.setTypeIdAndData(Material.WALL_SIGN.getId(), data, applyPhysics);
    webSocketServerThread.log(Level.FINEST, "setting sign at "+location+" data="+data);
    */
    BlockState blockState = block.getState();
    blockState.setType(Material.WALL_SIGN);
    blockState.setData(signDirection);
    boolean force = true;
    boolean applyPhysics = false;
    blockState.update(force, applyPhysics);
    webSocketServerThread.log(Level.FINEST, "setting sign at "+location+" blockFace="+blockFace);

    // Set the sign text
    blockState = block.getState();
    if (!(blockState instanceof Sign)) {
        webSocketServerThread.log(Level.WARNING, "failed to place sign at "+location);
        return;
    }
    Sign sign = (Sign) blockState;

    // TODO: text lines by 15 characters into 5 lines
    sign.setLine(0, text);
    sign.update(force, applyPhysics);
    webSocketServerThread.log(Level.FINEST, "set sign text="+text+", signDirection="+signDirection+", blockFace="+blockFace+", block="+block+", face="+face);

    // SignChangeEvent not posted when signs created programmatically; notify web clients ourselves
    notifySignChange(location, block.getType(), block.getState(), sign.getLines());
}
 
开发者ID:satoshinm,项目名称:WebSandboxMC,代码行数:66,代码来源:BlockBridge.java

示例15: onDispenseEquip

@EventHandler
public void onDispenseEquip(BlockDispenseEvent event) {
    ArmorType type = ArmorType.matchType(event.getItem());
    if (type != null) {
        Location blockLoc = event.getBlock().getLocation();
        for (Player player : blockLoc.getWorld().getPlayers()) {
            Location playerLoc = player.getLocation();
            if (blockLoc.getBlockY() - playerLoc.getBlockY() >= -1
                    && blockLoc.getBlockY() - playerLoc.getBlockY() <= 1) {
                if (type == ArmorType.HELMET && player.getInventory().getHelmet() == null
                        || type == ArmorType.CHESTPLATE && player.getInventory().getChestplate() == null
                        || type == ArmorType.LEGGINGS && player.getInventory().getLeggings() == null
                        || type == ArmorType.BOOTS && player.getInventory().getBoots() == null) {
                    org.bukkit.block.Dispenser dispenser = (org.bukkit.block.Dispenser) event.getBlock().getState();
                    org.bukkit.material.Dispenser dis = (org.bukkit.material.Dispenser) dispenser.getData();
                    BlockFace directionFacing = dis.getFacing();
                    // Someone told me not to do big if checks because it's hard to read, look at me doing it -_-
                    if (directionFacing == BlockFace.EAST && playerLoc.getBlockX() != blockLoc.getBlockX()
                            && playerLoc.getX() <= blockLoc.getX() + 2.3 && playerLoc.getX() >= blockLoc.getX()
                            || directionFacing == BlockFace.WEST && playerLoc.getX() >= blockLoc.getX() - 1.3
                            && playerLoc.getX() <= blockLoc.getX()
                            || directionFacing == BlockFace.SOUTH
                            && playerLoc.getBlockZ() != blockLoc.getBlockZ()
                            && playerLoc.getZ() <= blockLoc.getZ() + 2.3 && playerLoc.getZ() >= blockLoc.getZ()
                            || directionFacing == BlockFace.NORTH && playerLoc.getZ() >= blockLoc.getZ() - 1.3
                            && playerLoc.getZ() <= blockLoc.getZ()) {
                        if (!InventoryManager.playerIsLoaded(player)) {
                            return;
                        }

                        Slot armorSlot = SlotManager.instance().getSlot(type.name());
                        event.setCancelled(armorSlot != null
                                && !InventoryManager.validateArmor(
                                player, InventoryAction.PLACE_ONE, armorSlot, event.getItem()));
                        return;
                    }
                }
            }
        }
    }
}
 
开发者ID:EndlessCodeGroup,项目名称:RPGInventory,代码行数:41,代码来源:ArmorEquipListener.java


注:本文中的org.bukkit.block.BlockFace.SOUTH属性示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。