diff --git a/src/main/java/fr/themode/minestom/entity/Player.java b/src/main/java/fr/themode/minestom/entity/Player.java index 191df60a6..a49dd9334 100644 --- a/src/main/java/fr/themode/minestom/entity/Player.java +++ b/src/main/java/fr/themode/minestom/entity/Player.java @@ -93,7 +93,7 @@ public class Player extends LivingEntity { this.username = username; this.playerConnection = playerConnection; - setBoundingBox(0.6f, 1.8f, 0.6f); + setBoundingBox(0.69f, 1.8f, 0.69f); // Some client update getPlayerConnection().sendPacket(getPropertiesPacket()); // Send default properties diff --git a/src/main/java/fr/themode/minestom/instance/block/Block.java b/src/main/java/fr/themode/minestom/instance/block/Block.java index d6dfda6a7..49cb39908 100644 --- a/src/main/java/fr/themode/minestom/instance/block/Block.java +++ b/src/main/java/fr/themode/minestom/instance/block/Block.java @@ -722,6 +722,539 @@ public enum Block { return blockId; } + public boolean isSolid() { + if (blockId == 0) { + return false; + } + switch (this) { + case ACACIA_DOOR: + case ACACIA_FENCE: + case ACACIA_FENCE_GATE: + case ACACIA_LEAVES: + case ACACIA_LOG: + case ACACIA_PLANKS: + case ACACIA_PRESSURE_PLATE: + case ACACIA_SIGN: + case ACACIA_SLAB: + case ACACIA_STAIRS: + case ACACIA_TRAPDOOR: + case ACACIA_WALL_SIGN: + case ACACIA_WOOD: + case ANDESITE: + case ANDESITE_SLAB: + case ANDESITE_STAIRS: + case ANDESITE_WALL: + case ANVIL: + case BAMBOO: + case BARREL: + case BARRIER: + case BEACON: + case BEDROCK: + case BEEHIVE: + case BEE_NEST: + case BELL: + case BIRCH_DOOR: + case BIRCH_FENCE: + case BIRCH_FENCE_GATE: + case BIRCH_LEAVES: + case BIRCH_LOG: + case BIRCH_PLANKS: + case BIRCH_PRESSURE_PLATE: + case BIRCH_SIGN: + case BIRCH_SLAB: + case BIRCH_STAIRS: + case BIRCH_TRAPDOOR: + case BIRCH_WALL_SIGN: + case BIRCH_WOOD: + case BLACK_BANNER: + case BLACK_BED: + case BLACK_CONCRETE: + case BLACK_CONCRETE_POWDER: + case BLACK_GLAZED_TERRACOTTA: + case BLACK_SHULKER_BOX: + case BLACK_STAINED_GLASS: + case BLACK_STAINED_GLASS_PANE: + case BLACK_TERRACOTTA: + case BLACK_WALL_BANNER: + case BLACK_WOOL: + case BLAST_FURNACE: + case BLUE_BANNER: + case BLUE_BED: + case BLUE_CONCRETE: + case BLUE_CONCRETE_POWDER: + case BLUE_GLAZED_TERRACOTTA: + case BLUE_ICE: + case BLUE_SHULKER_BOX: + case BLUE_STAINED_GLASS: + case BLUE_STAINED_GLASS_PANE: + case BLUE_TERRACOTTA: + case BLUE_WALL_BANNER: + case BLUE_WOOL: + case BONE_BLOCK: + case BOOKSHELF: + case BRAIN_CORAL_BLOCK: + case BREWING_STAND: + case BRICKS: + case BRICK_SLAB: + case BRICK_STAIRS: + case BRICK_WALL: + case BROWN_BANNER: + case BROWN_BED: + case BROWN_CONCRETE: + case BROWN_CONCRETE_POWDER: + case BROWN_GLAZED_TERRACOTTA: + case BROWN_MUSHROOM_BLOCK: + case BROWN_SHULKER_BOX: + case BROWN_STAINED_GLASS: + case BROWN_STAINED_GLASS_PANE: + case BROWN_TERRACOTTA: + case BROWN_WALL_BANNER: + case BROWN_WOOL: + case BUBBLE_CORAL_BLOCK: + case CACTUS: + case CAKE: + case CAMPFIRE: + case CARTOGRAPHY_TABLE: + case CARVED_PUMPKIN: + case CAULDRON: + case CHAIN_COMMAND_BLOCK: + case CHEST: + case CHIPPED_ANVIL: + case CHISELED_QUARTZ_BLOCK: + case CHISELED_RED_SANDSTONE: + case CHISELED_SANDSTONE: + case CHISELED_STONE_BRICKS: + case CLAY: + case COAL_BLOCK: + case COAL_ORE: + case COARSE_DIRT: + case COBBLESTONE: + case COBBLESTONE_SLAB: + case COBBLESTONE_STAIRS: + case COBBLESTONE_WALL: + case COMMAND_BLOCK: + case COMPOSTER: + case CONDUIT: + case CRACKED_STONE_BRICKS: + case CRAFTING_TABLE: + case CUT_RED_SANDSTONE: + case CUT_RED_SANDSTONE_SLAB: + case CUT_SANDSTONE: + case CUT_SANDSTONE_SLAB: + case CYAN_BANNER: + case CYAN_BED: + case CYAN_CONCRETE: + case CYAN_CONCRETE_POWDER: + case CYAN_GLAZED_TERRACOTTA: + case CYAN_SHULKER_BOX: + case CYAN_STAINED_GLASS: + case CYAN_STAINED_GLASS_PANE: + case CYAN_TERRACOTTA: + case CYAN_WALL_BANNER: + case CYAN_WOOL: + case DAMAGED_ANVIL: + case DARK_OAK_DOOR: + case DARK_OAK_FENCE: + case DARK_OAK_FENCE_GATE: + case DARK_OAK_LEAVES: + case DARK_OAK_LOG: + case DARK_OAK_PLANKS: + case DARK_OAK_PRESSURE_PLATE: + case DARK_OAK_SIGN: + case DARK_OAK_SLAB: + case DARK_OAK_STAIRS: + case DARK_OAK_TRAPDOOR: + case DARK_OAK_WALL_SIGN: + case DARK_OAK_WOOD: + case DARK_PRISMARINE: + case DARK_PRISMARINE_SLAB: + case DARK_PRISMARINE_STAIRS: + case DAYLIGHT_DETECTOR: + case DEAD_BRAIN_CORAL: + case DEAD_BRAIN_CORAL_BLOCK: + case DEAD_BRAIN_CORAL_FAN: + case DEAD_BRAIN_CORAL_WALL_FAN: + case DEAD_BUBBLE_CORAL: + case DEAD_BUBBLE_CORAL_BLOCK: + case DEAD_BUBBLE_CORAL_FAN: + case DEAD_BUBBLE_CORAL_WALL_FAN: + case DEAD_FIRE_CORAL: + case DEAD_FIRE_CORAL_BLOCK: + case DEAD_FIRE_CORAL_FAN: + case DEAD_FIRE_CORAL_WALL_FAN: + case DEAD_HORN_CORAL: + case DEAD_HORN_CORAL_BLOCK: + case DEAD_HORN_CORAL_FAN: + case DEAD_HORN_CORAL_WALL_FAN: + case DEAD_TUBE_CORAL: + case DEAD_TUBE_CORAL_BLOCK: + case DEAD_TUBE_CORAL_FAN: + case DEAD_TUBE_CORAL_WALL_FAN: + case DIAMOND_BLOCK: + case DIAMOND_ORE: + case DIORITE: + case DIORITE_SLAB: + case DIORITE_STAIRS: + case DIORITE_WALL: + case DIRT: + case DISPENSER: + case DRAGON_EGG: + case DRIED_KELP_BLOCK: + case DROPPER: + case EMERALD_BLOCK: + case EMERALD_ORE: + case ENCHANTING_TABLE: + case ENDER_CHEST: + case END_PORTAL_FRAME: + case END_STONE: + case END_STONE_BRICKS: + case END_STONE_BRICK_SLAB: + case END_STONE_BRICK_STAIRS: + case END_STONE_BRICK_WALL: + case FARMLAND: + case FIRE_CORAL_BLOCK: + case FLETCHING_TABLE: + case FROSTED_ICE: + case FURNACE: + case GLASS: + case GLASS_PANE: + case GLOWSTONE: + case GOLD_BLOCK: + case GOLD_ORE: + case GRANITE: + case GRANITE_SLAB: + case GRANITE_STAIRS: + case GRANITE_WALL: + case GRASS_BLOCK: + case GRASS_PATH: + case GRAVEL: + case GRAY_BANNER: + case GRAY_BED: + case GRAY_CONCRETE: + case GRAY_CONCRETE_POWDER: + case GRAY_GLAZED_TERRACOTTA: + case GRAY_SHULKER_BOX: + case GRAY_STAINED_GLASS: + case GRAY_STAINED_GLASS_PANE: + case GRAY_TERRACOTTA: + case GRAY_WALL_BANNER: + case GRAY_WOOL: + case GREEN_BANNER: + case GREEN_BED: + case GREEN_CONCRETE: + case GREEN_CONCRETE_POWDER: + case GREEN_GLAZED_TERRACOTTA: + case GREEN_SHULKER_BOX: + case GREEN_STAINED_GLASS: + case GREEN_STAINED_GLASS_PANE: + case GREEN_TERRACOTTA: + case GREEN_WALL_BANNER: + case GREEN_WOOL: + case GRINDSTONE: + case HAY_BLOCK: + case HEAVY_WEIGHTED_PRESSURE_PLATE: + case HONEYCOMB_BLOCK: + case HONEY_BLOCK: + case HOPPER: + case HORN_CORAL_BLOCK: + case ICE: + case INFESTED_CHISELED_STONE_BRICKS: + case INFESTED_COBBLESTONE: + case INFESTED_CRACKED_STONE_BRICKS: + case INFESTED_MOSSY_STONE_BRICKS: + case INFESTED_STONE: + case INFESTED_STONE_BRICKS: + case IRON_BARS: + case IRON_BLOCK: + case IRON_DOOR: + case IRON_ORE: + case IRON_TRAPDOOR: + case JACK_O_LANTERN: + case JIGSAW: + case JUKEBOX: + case JUNGLE_DOOR: + case JUNGLE_FENCE: + case JUNGLE_FENCE_GATE: + case JUNGLE_LEAVES: + case JUNGLE_LOG: + case JUNGLE_PLANKS: + case JUNGLE_PRESSURE_PLATE: + case JUNGLE_SIGN: + case JUNGLE_SLAB: + case JUNGLE_STAIRS: + case JUNGLE_TRAPDOOR: + case JUNGLE_WALL_SIGN: + case JUNGLE_WOOD: + case LANTERN: + case LAPIS_BLOCK: + case LAPIS_ORE: + case LECTERN: + case LIGHT_BLUE_BANNER: + case LIGHT_BLUE_BED: + case LIGHT_BLUE_CONCRETE: + case LIGHT_BLUE_CONCRETE_POWDER: + case LIGHT_BLUE_GLAZED_TERRACOTTA: + case LIGHT_BLUE_SHULKER_BOX: + case LIGHT_BLUE_STAINED_GLASS: + case LIGHT_BLUE_STAINED_GLASS_PANE: + case LIGHT_BLUE_TERRACOTTA: + case LIGHT_BLUE_WALL_BANNER: + case LIGHT_BLUE_WOOL: + case LIGHT_GRAY_BANNER: + case LIGHT_GRAY_BED: + case LIGHT_GRAY_CONCRETE: + case LIGHT_GRAY_CONCRETE_POWDER: + case LIGHT_GRAY_GLAZED_TERRACOTTA: + case LIGHT_GRAY_SHULKER_BOX: + case LIGHT_GRAY_STAINED_GLASS: + case LIGHT_GRAY_STAINED_GLASS_PANE: + case LIGHT_GRAY_TERRACOTTA: + case LIGHT_GRAY_WALL_BANNER: + case LIGHT_GRAY_WOOL: + case LIGHT_WEIGHTED_PRESSURE_PLATE: + case LIME_BANNER: + case LIME_BED: + case LIME_CONCRETE: + case LIME_CONCRETE_POWDER: + case LIME_GLAZED_TERRACOTTA: + case LIME_SHULKER_BOX: + case LIME_STAINED_GLASS: + case LIME_STAINED_GLASS_PANE: + case LIME_TERRACOTTA: + case LIME_WALL_BANNER: + case LIME_WOOL: + case LOOM: + case MAGENTA_BANNER: + case MAGENTA_BED: + case MAGENTA_CONCRETE: + case MAGENTA_CONCRETE_POWDER: + case MAGENTA_GLAZED_TERRACOTTA: + case MAGENTA_SHULKER_BOX: + case MAGENTA_STAINED_GLASS: + case MAGENTA_STAINED_GLASS_PANE: + case MAGENTA_TERRACOTTA: + case MAGENTA_WALL_BANNER: + case MAGENTA_WOOL: + case MAGMA_BLOCK: + case MELON: + case MOSSY_COBBLESTONE: + case MOSSY_COBBLESTONE_SLAB: + case MOSSY_COBBLESTONE_STAIRS: + case MOSSY_COBBLESTONE_WALL: + case MOSSY_STONE_BRICKS: + case MOSSY_STONE_BRICK_SLAB: + case MOSSY_STONE_BRICK_STAIRS: + case MOSSY_STONE_BRICK_WALL: + case MOVING_PISTON: + case MUSHROOM_STEM: + case MYCELIUM: + case NETHERRACK: + case NETHER_BRICKS: + case NETHER_BRICK_FENCE: + case NETHER_BRICK_SLAB: + case NETHER_BRICK_STAIRS: + case NETHER_BRICK_WALL: + case NETHER_QUARTZ_ORE: + case NETHER_WART_BLOCK: + case NOTE_BLOCK: + case OAK_DOOR: + case OAK_FENCE: + case OAK_FENCE_GATE: + case OAK_LEAVES: + case OAK_LOG: + case OAK_PLANKS: + case OAK_PRESSURE_PLATE: + case OAK_SIGN: + case OAK_SLAB: + case OAK_STAIRS: + case OAK_TRAPDOOR: + case OAK_WALL_SIGN: + case OAK_WOOD: + case OBSERVER: + case OBSIDIAN: + case ORANGE_BANNER: + case ORANGE_BED: + case ORANGE_CONCRETE: + case ORANGE_CONCRETE_POWDER: + case ORANGE_GLAZED_TERRACOTTA: + case ORANGE_SHULKER_BOX: + case ORANGE_STAINED_GLASS: + case ORANGE_STAINED_GLASS_PANE: + case ORANGE_TERRACOTTA: + case ORANGE_WALL_BANNER: + case ORANGE_WOOL: + case PACKED_ICE: + case PETRIFIED_OAK_SLAB: + case PINK_BANNER: + case PINK_BED: + case PINK_CONCRETE: + case PINK_CONCRETE_POWDER: + case PINK_GLAZED_TERRACOTTA: + case PINK_SHULKER_BOX: + case PINK_STAINED_GLASS: + case PINK_STAINED_GLASS_PANE: + case PINK_TERRACOTTA: + case PINK_WALL_BANNER: + case PINK_WOOL: + case PISTON: + case PISTON_HEAD: + case PODZOL: + case POLISHED_ANDESITE: + case POLISHED_ANDESITE_SLAB: + case POLISHED_ANDESITE_STAIRS: + case POLISHED_DIORITE: + case POLISHED_DIORITE_SLAB: + case POLISHED_DIORITE_STAIRS: + case POLISHED_GRANITE: + case POLISHED_GRANITE_SLAB: + case POLISHED_GRANITE_STAIRS: + case PRISMARINE: + case PRISMARINE_BRICKS: + case PRISMARINE_BRICK_SLAB: + case PRISMARINE_BRICK_STAIRS: + case PRISMARINE_SLAB: + case PRISMARINE_STAIRS: + case PRISMARINE_WALL: + case PUMPKIN: + case PURPLE_BANNER: + case PURPLE_BED: + case PURPLE_CONCRETE: + case PURPLE_CONCRETE_POWDER: + case PURPLE_GLAZED_TERRACOTTA: + case PURPLE_SHULKER_BOX: + case PURPLE_STAINED_GLASS: + case PURPLE_STAINED_GLASS_PANE: + case PURPLE_TERRACOTTA: + case PURPLE_WALL_BANNER: + case PURPLE_WOOL: + case PURPUR_BLOCK: + case PURPUR_PILLAR: + case PURPUR_SLAB: + case PURPUR_STAIRS: + case QUARTZ_BLOCK: + case QUARTZ_PILLAR: + case QUARTZ_SLAB: + case QUARTZ_STAIRS: + case REDSTONE_BLOCK: + case REDSTONE_LAMP: + case REDSTONE_ORE: + case RED_BANNER: + case RED_BED: + case RED_CONCRETE: + case RED_CONCRETE_POWDER: + case RED_GLAZED_TERRACOTTA: + case RED_MUSHROOM_BLOCK: + case RED_NETHER_BRICKS: + case RED_NETHER_BRICK_SLAB: + case RED_NETHER_BRICK_STAIRS: + case RED_NETHER_BRICK_WALL: + case RED_SAND: + case RED_SANDSTONE: + case RED_SANDSTONE_SLAB: + case RED_SANDSTONE_STAIRS: + case RED_SANDSTONE_WALL: + case RED_SHULKER_BOX: + case RED_STAINED_GLASS: + case RED_STAINED_GLASS_PANE: + case RED_TERRACOTTA: + case RED_WALL_BANNER: + case RED_WOOL: + case REPEATING_COMMAND_BLOCK: + case SAND: + case SANDSTONE: + case SANDSTONE_SLAB: + case SANDSTONE_STAIRS: + case SANDSTONE_WALL: + case SEA_LANTERN: + case SHULKER_BOX: + case SLIME_BLOCK: + case SMITHING_TABLE: + case SMOKER: + case SMOOTH_QUARTZ: + case SMOOTH_QUARTZ_SLAB: + case SMOOTH_QUARTZ_STAIRS: + case SMOOTH_RED_SANDSTONE: + case SMOOTH_RED_SANDSTONE_SLAB: + case SMOOTH_RED_SANDSTONE_STAIRS: + case SMOOTH_SANDSTONE: + case SMOOTH_SANDSTONE_SLAB: + case SMOOTH_SANDSTONE_STAIRS: + case SMOOTH_STONE: + case SMOOTH_STONE_SLAB: + case SNOW_BLOCK: + case SOUL_SAND: + case SPAWNER: + case SPONGE: + case SPRUCE_DOOR: + case SPRUCE_FENCE: + case SPRUCE_FENCE_GATE: + case SPRUCE_LEAVES: + case SPRUCE_LOG: + case SPRUCE_PLANKS: + case SPRUCE_PRESSURE_PLATE: + case SPRUCE_SIGN: + case SPRUCE_SLAB: + case SPRUCE_STAIRS: + case SPRUCE_TRAPDOOR: + case SPRUCE_WALL_SIGN: + case SPRUCE_WOOD: + case STICKY_PISTON: + case STONE: + case STONECUTTER: + case STONE_BRICKS: + case STONE_BRICK_SLAB: + case STONE_BRICK_STAIRS: + case STONE_BRICK_WALL: + case STONE_PRESSURE_PLATE: + case STONE_SLAB: + case STONE_STAIRS: + case STRIPPED_ACACIA_LOG: + case STRIPPED_ACACIA_WOOD: + case STRIPPED_BIRCH_LOG: + case STRIPPED_BIRCH_WOOD: + case STRIPPED_DARK_OAK_LOG: + case STRIPPED_DARK_OAK_WOOD: + case STRIPPED_JUNGLE_LOG: + case STRIPPED_JUNGLE_WOOD: + case STRIPPED_OAK_LOG: + case STRIPPED_OAK_WOOD: + case STRIPPED_SPRUCE_LOG: + case STRIPPED_SPRUCE_WOOD: + case STRUCTURE_BLOCK: + case TERRACOTTA: + case TNT: + case TRAPPED_CHEST: + case TUBE_CORAL_BLOCK: + case TURTLE_EGG: + case WET_SPONGE: + case WHITE_BANNER: + case WHITE_BED: + case WHITE_CONCRETE: + case WHITE_CONCRETE_POWDER: + case WHITE_GLAZED_TERRACOTTA: + case WHITE_SHULKER_BOX: + case WHITE_STAINED_GLASS: + case WHITE_STAINED_GLASS_PANE: + case WHITE_TERRACOTTA: + case WHITE_WALL_BANNER: + case WHITE_WOOL: + case YELLOW_BANNER: + case YELLOW_BED: + case YELLOW_CONCRETE: + case YELLOW_CONCRETE_POWDER: + case YELLOW_GLAZED_TERRACOTTA: + case YELLOW_SHULKER_BOX: + case YELLOW_STAINED_GLASS: + case YELLOW_STAINED_GLASS_PANE: + case YELLOW_TERRACOTTA: + case YELLOW_WALL_BANNER: + case YELLOW_WOOL: + return true; + default: + return false; + } + } + public List getBlockAlternatives() { return Collections.unmodifiableList(blockAlternatives); }