Skip to content

0.1.3

Latest
Compare
Choose a tag to compare
@smartcmd smartcmd released this 16 Jan 17:17

Compare with 0.1.2

For Minecraft: Bedrock Edition 1.21.50

Added

  • (API) Introduced AllayAPI#isDevBuild to let plugin know if the current server is a dev build.
  • (API) Introduced BlockCustomTags#WATER and BlockCustomTags#LAVA to allow checking if a block is water or lava
    easier. This is because there are two types of water (minecraft:water and minecraft:flowing_water) and lava (
    minecraft:lava and minecraft:flowing_lava) in vanilla.
  • (API) Introduced Dimension#getLiquid, Dimension#setLiquid and Dimension#removeLiquid methods to help plugin
    operate liquid easier.
  • (API) Introduced Dimension#addLevelSoundEvent(Vector3ic pos, SoundEvent soundEvent, int extraData) and
    Dimension#addLevelSoundEvent(Vector3fc pos, SoundEvent soundEvent, int extraData).
  • (API) Added EntityTrampleFarmlandEvent. EntityTrampleFarmlandEvent is called when a farmland is trampled by an
    entity.
  • (API) Added BlockGrowEvent which will be called when crops grow.
  • (API) Added two overloads LightService#getInternalLight(Vector3ic) and LightService#getSkyLight(Vector3ic), they
    have the same functionality as LightService#getXXXLight(int, int, int).
  • (API) BlockContainer#getBlockPos and BlockContainer#setBlockPos now return/require Position3ic instead of
    Vector3ic, this enables us to get the dimension information of a BlockContainer.
  • (API) Implemented brewing stand, and several related interfaces & objects including BlockEntityBrewingStand, BrewingStandContainer,
    Registries#POTION_MIX_RECIPES, PotionMixRecipe are added to api module, see commit history for more details. Added BrewingStandBrewEvent,
    BrewingStandConsumeFuelEvent and BrewingStandStartBrewEvent events.
  • (API) Implemented slab, and several related interfaces are added to api module.
  • (API) Introduced BlockBaseComponent#combine method which is used by slab. For the details of this method, see the javadoc.
  • (API) Implemented beacon block, and several related interfaces are added to api module.
  • (API) Implemented brewing stand, and several related interfaces & objects including BlockEntityBrewingStand,
    BrewingStandContainer, Registries#POTION_MIX_RECIPES, PotionMixRecipe are added to api module. See commit
    history for more details.
  • (API) Implemented picking block with block entity data. The following methods are added: ItemBaseComponent#getBlockEntityNBT,
    ItemBaseComponent#setBlockEntityNBT, ItemBaseComponent#clearBlockEntityNBT and ItemBaseComponent#hasBlockEntityNBT.
  • (API) Implemented TNT. There is now a new class called Explosion which can be used by plugin to make custom explosion.
  • (API) Introduced a number of overloads of Dimension#addSound.
  • (API) Introduced method EntityAttributeComponent#supportAttribute to check if the entity support specified attribute type.
  • (API) Introduced methods DamageContainer#blockExplosion and DamageContainer#entityExplosion to create explosion related damage.
  • (API) Introduced methods EntityBaseComponent#getDragFactorOnGround and EntityBaseComponent#getDragFactorInAir, which can be used to
    customize the drag factor of an entity.
  • (API) Introduced event EntityExplodeEvent which will be called when tnt or creeper(WIP) is about to explode.
  • (API) Introduced method EntityBaseComponent#isTouchingWater to check if an entity is touching water.
  • (API) Implemented TNT entity, block and related features. Several related interfaces are added to api module.
  • Implemented trapdoor except redstone feature (Redstone feature requires the implementation of redstone system).
  • Implemented sponge and wet sponge.
  • Implemented farmland and hoe.
  • Implemented most of the crops, including wheat, potato, carrot, beetroot, melon and pumpkin.
  • Introduced sentry to capture exception and upload them to sentry server automatically, which
    helps us to track and fix bug more efficiently. Sentry is only enabled in non-dev version.
  • Server version will also be uploaded to bStats now.
  • Introduced Extension#afterServerStarted method which will be called after the server is started.

Changed

  • (API) Removed BlockFace#toStairDirectionValue, this method shouldn't exist in api module.
  • (API) BlockTags, BlockCustomTags, ItemTags and ItemCustomTags are now annotated with
    @MinecraftVersionSensitive as these tags may change between different versions.
  • (API) The second parameter of BlockBaseComponent#onEntityFallOn now accepts BlockStateWithPos instead of
    BlockState.
  • (API) EntityBaseComponent#getBlockStateStandingOn now return BlockStateWithPos instead of BlockState.
  • (API) Removed BlockFace#horizontalIndex which is useless.
  • (API) Removed ScoreboardService#ServerEventListener as it is not supposed to be touched by plugin.
  • (API) Methods BlockEntityFurnaceBaseComponent#getStoredXP and BlockEntityFurnaceBaseComponent#setStoredXP now
    accept int instead of float.
  • (API) Renamed Structure#pickStructure to Structure#pick.
  • (API) Renamed ItemItemStorableComponentImpl to ItemStuffStorableComponentImpl, and now ItemShulkerBoxStack
    extends ItemStuffStorableComponent.
  • (API) Removed methods EntityAttributeComponent#supportHealth and EntityAttributeComponent#supportAbsorption.
    Consider using new method EntityAttributeComponent#supportAttribute.
  • (API) Renamed method EntityBaseComponent#getBaseOffset to EntityBaseComponent#getNetworkOffset for better
    understanding.
  • (API) Removed method Dimension#setBlockStates. This method is considered to be unsafe as it will only set the block state,
    block entity won't be created if the block has block entity. Further research is currently needed.
  • Removed useless class PackageClassLoaderUtils, dependency org.reflections.reflections is also removed.
  • Added -dev suffix to api version in development build.
  • Changed ContainerActionProcessorHolder to a final class instead of an interface, because this abstraction is
    meaningless.
  • Changed enableGui to enable-gui in server-settings.yml
  • Disabled packet limit only in dev build.
  • Optimized the performance of physics calculation when there are a lot of entities.
  • Changed the gravity of item and xp orb entity to 0.04f to better match vanilla behavior.

Fixed

  • (API) BlockHangingSignBehavior now extends BlockEntityHolderComponent<BlockEntityHangingSign> which was forgotten
    to be added.
  • Fixed several bugs that can led falling block keep existing even if it is already on ground or can't move.
  • Fixed the ClassCastException when breaking shulker box.
  • Fixed the bug that interacting with door doesn't have any sound.
  • Waxing copper-made block using honeycomb won't call BlockFadeEvent now.
  • Fixed the bug that player can still open enchant table even if he is sneaking.
  • Fixed NaN motion caused by liquid in some very special cases.
  • Fixed the bug that entity will still get ticked after called removeEntity().
  • Fixed the bug that player's pos sometimes get frozen after teleport. This is caused by the issue that sometimes client doesn't send
    back teleport ack after server sends teleport packet to client.
  • Fixed the bug that flint and steel durability reduced in creative mode.
  • Fixed the network offset of item entity. Its visual position should now be normal.
  • Liquid won't be broken into item by falling block now.