Releases: apace100/apoli
Releases · apace100/apoli
Apoli 2.12.0-pre.2 (Minecraft 1.21.1)
Changes
- The replacement IDs in the
replace_loot_tablepower type can now reference capture groups from the regular expression.
Fixes
- [
#267] Fixed incompatibility with message-api. - Fixed
command_along_rayinraycastentity action type not being executed even whencommand_along_ray_only_on_hitisfalse. - Fixed
offsetblock condition type not checking the block at the offset position. - Fixed incompatibility with Trickster.
- Fixed
apoli:replaced_loot_tableloot table sometimes not referencing the replaced loot table. - Fixed
attributepower type not re-applying the attributes when the player goes through the End Portal (e.g: pseudo-respawning.)
Apoli 2.9.2 (Minecraft 1.20.1)
Fixes
- [
apoli (connector)] Fixedaction_on_block_break,modify_harvestpowers and thegamemodeentity condition - [
apoli] Fixedmodify_air_speed - [
apoli] made Inventory related functionality more efficient
Apoli 2.9.1 (Minecraft 1.20.1)
Additions
- [
apoli] Added Connector support
Fixes
- [
apoli] Fixed brightness related conditions that would not work with shader powers. (origins:exposed_to_sun,origins:brightness, etc) - [
apoli] Fixed explode entity action not displaying particles or sounds - [
apoli] Fixed a crash that occurs whenorigins:damageis not given adamage_type - [
apoli] Fixed the "allow_holding" field in theorigins:climbingpower type not functioning
Apoli 2.12.0-pre.1 (Minecraft 1.21.1)
Changes
- Power/global power resource reload listeners now have direct access to the registry wrapper lookup (this means Apoli won't have to rely on pretty-hacky methods to get the registry wrapper lookup to use for parsing powers/global powers.)
- Powers are now validated when data pack contents are refreshed (e.g: after all data packs have been reloaded) instead of after powers are parsed.
- Power recipes are now registered when data pack contents are refreshed (e.g: after all data packs have been reloaded) instead of after powers are parsed.
- Allowed indexed stacks (the data type used in the
starting_equipmentpower type) to have a slot range with multiple slots. - Optimized inventory-related actions/utilities to reduce performance overhead.
- {For addon developers} Simplified and improved namings of some classes/methods. This affects the following classes/methods:
AbstractAction-->ActionAbstractCondition-->ConditionPower#getPowerType-->Power#getTypeAction#getActionType-->Action#getTypeCondition#getConditionType-->Condition#getType
Fixes
- [#260] Fixed memory leaks and threading issues.
- Fixed attribute modifiers added via the
attributepower type not persisting on respawn. - Fixed attribute modifiers added via the
conditioned_attributepower type being added unconditionally upon gaining the power. - Fixed
.mcfunctionfiles not being loaded due to non-existent powers caused by loading order issue (since.mcfunctionfiles are loaded before powers.) - Fixed inventory-related entity action/condition types improperly checking the size boundary of the inventories and specified slots.
- Fixed
passenger_actionentity action type executing its own entity action on the ridden entity instead of the riding entity. - Fixed
attackerdamage condition type not checking if the attacker actually exists. - Fixed powers unnecessarily being synced in singleplayer.
- Fixed crash with the
raycastentity action/condition types caused by not checking if the entity has the reach-related attributes. - Fixed tooltips of item powers being duplicated after each equipment slot tooltips.
- Fixed the position context of the
raycastentity action type to use the position of the raycast's end position instead of the specified destination position.
Apoli 2.12.0-alpha.15 (Minecraft 1.21.1)
Additions
- Added new generic container types (with the
_AxBsuffix, where A is the amount of columns and B is the amount of rows);generic_9x1generic_9x2generic_9x4generic_9x5
Changes
- Renamed the
keyfield in keybinding references toid(and added the old name as an alias.) - Renamed some container types to match its corresponding screen handlers (and added its old names as aliases);
double_chest-->generic_9x6chest-->generic_9x3dropper/dispenser-->generic_3x3
- Block actions now only execute on the server to prevent desync with the client.
- Item actions now only execute on the server to prevent desync with the client.
- The
on_blockentity condition type now checks the block currently being stepped on, instead of the block underneath the entity (e.g: carpet on soul sand --> carpet will be the block being stepped on.) - [For addon developers] Refactored action/condition types and context;
- Action/condition types no longer have the
execute(...)/test(...)methods respectively. To implement action/condition logic, override theaccept(ActionContext)/test(ConditionContext)methods respectively, and access the action/condition context directly instead. - Renamed
TypeActionContextandTypeConditionContexttoActionContextandConditionContextrespectively. - Added
shouldExecute(ActionContext)for action types to evaluate the action context before proceeding with the action logic. - Added
shouldTest(ConditionContext)for condition types to evaluate the condition context before proceeding with the condition logic. - Added
BiEntityRequirementenum used in bi-entity action/condition types to determine whetherBOTH,EITHER, orDEFAULT(no requirement) actor/target entities are required. - Added
getRequirement()in bi-entity action/condition types to indicate its requirement.
- Action/condition types no longer have the
- [For addon developers] Fixed and tweaked power keybinding references;
- Renamed
Active$Keyclass toKeyBindingReference, and moved it into theio.github.apace100.apoli.util.keybindingpackage. - Fixed issue with triggering active power types with server-sided conditions.
- Renamed
Fixes
- Fixed syncing powers in LAN servers.
- Fixed origin position of the
raycastentity action/condition types. - Fixed how the command in
command_along_rayis executed in theraycastentity action type. - Fixed default value of the
comparisonfield of thepassengerentity condition type. - Fixed actor/target context in
passenger_actionentity action type. - Fixed field order, and encoding issue with particle-related power/action types.
- Fixed the
stacking_status_effectpower type not decreasing its stacks properly. - Fixed the
action_on_block_placepower type unable to be encoded properly (e.g: with/power dumpor when syncing the power to the client.) - Fixed the
spawn_entityentity action type not properly recognizing the action in itsbientity_actionfield as a bi-entity action. - Fixed issues with the
starting_equipmentpower type;- Fixed the power type unable to be encoded properly (e.g: with
/power dumpor when syncing the power to the client.) - Fixed the power type preventing the server to be reloaded (or causing a client crash.)
- Fixed the power type unable to be encoded properly (e.g: with
- Fixed issues with the
game_event_listenerpower type;- Fixed class-casting crash issue when a new instance of the power type is created.
- Fixed the power type unable to listen to game events.
Changelogs
Apoli 2.12.0-alpha.14 (Minecraft 1.21.1)
Changes
- The
modifier/modifiersfield(s) are now required in themodify_item_cooldownpower type - The tooltip texts in the
tooltippower type are no longer wrapped in string when serialized to NBT
Fixes
- Fixed class casting issue in
offsetblock condition type - Fixed ID of the
action_on_key_presspower type - Fixed initializing issues with power types
- Fixed abnormal behavior with
add_velocityentity/bi-entity action types - Fixed default offset values of
spawn_particlesentity action type - Fixed
area_of_effectentity/block action types accepting a positive integer/floating pointradiusvalue instead of a non-negative integer/floating point value respectively - Fixed
action_on_block_breakpower type evaluating its block condition too late (evaluating the block at the mined position after it's been mined) - Fixed typo in fields for encoding the
modify_foodpower type - Fixed
choicemeta action type executing all the defined actions instead of just one - Fixed
giveentity action type only working once (per game/server restart) due to the provided item stack not being copied - Fixed
*_inventoryentity action/condition types being provided slots that aren't within the bounds of an entity's inventory (or inventory of a power that uses theinventorypower type) - Fixed
modify_harvestpower type evaluating its block condition too late (evaluating the block at the mined position after it's been mined) - Fixed
attackerdamage condition type requiring an entity condition
Changelogs
Apoli 2.12.0-alpha.13 (Minecraft 1.21.1)
Additions
- Added legacy aliases for meta condition types;
and-->all_ofor-->any_ofchance-->random_chance
Changes
- Renamed some meta condition types (and added their old name as an alias)
and-->sequencechance-->random_chance
- Made the
*_inventoryaction/condition types use slot ranges (e.g:hotbar.*,armor.*, etc.) - Made the
keep_inventorypower type use slot ranges (e.g:enderchest.*,inventory.*, etc.) - Renamed the
simplepower type todummy(and added its old name as an alias) - Renamed the
active_selfpower type toaction_on_key_press(and added its old name as an alias) - [For addon developers] Added
PowerUtil, a utility class for modifying/querying resource values, and validating if a power type is considered a resource. - [For addon developers] Made container type an interface. There's also a new registry,
ApoliRegistries#CONTAINER_TYPE, where addons can register their container types to be used by theinventorypower type. Currently, there are two types of container type:- Preset container type, which re-uses a screen handler/screen of a pre-existing container
- Dynamic container type, which has definable rows, columns, title alignment, and texture via data; also has its own screen handler/screen (currently incomplete and unsupported)
- [#254] [For addon developers] Overhauled power/action/condition (types);
- Power/action/condition types no longer use type factories, but type configurations (that has its ID (via
TypeConfiguration#id), and itsTypedDataObjectFactory(viaTypeConfiguration#dataFactory), which is an extension of Calio'sDataObjectFactorythat contains itsCompoundSerializableDataType) - Power/action/condition types now use a similar structure for consistency
- Actions/conditions now have their own classes (e.g:
EntityActioninstead ofConsumer<Entity>orActionTypeFactory<Entity>.Instance)
- Power/action/condition types no longer use type factories, but type configurations (that has its ID (via
Fixes
- Fixed
amountfield of modifiers being prioritized over theresourcefield (it should be the other way around) - Fixed
/power removecommand and revoking powers in general - Fixed NullPointerException issue (crash) when checking for power types in entities
- Fixed
action_on_item_pickuppower type not properly executing its actions - Fixed
inventorypower type giving ghost items when the power is lost - Fixed
in_entity_setbi-entity condition type causing a crash when either the actor or target do not exist
Changelogs
Apoli 2.12.0-alpha.12 (Minecraft 1.21.1)
Warning
Make sure to check out https://gist.github.com/eggohito/510eb0cf7d36d40f906ac1fcef74ee96#file-alpha_9-md for more details about this update!
Changes
- [#247] Crafting recipes defined in powers are now visible in the recipe book.
- Fields that accept action types can now accept an array as a shorthand for using the
andmeta action type. - Renamed the following meta condition types for consistency with vanilla:
chance-->random_chanceand-->all_ofor-->any_of
- The
slotparameters of thehas_powerandpower_countitem condition types are now optional. - The
apoli:powersitem component will no longer error when a non-existent power is defined. - Power names/descriptions can now be translated with the respective
power.<namespace>.<path>.name/descriptiontranslation keys, even when not using thetranslateJSON text component.
Fixes
- Fixed crash caused by encoding global power sets.
- Fixed some aspects of global power sets being replaced when merging.
- Fixed minor issue with printing JSON as text where JSON keys with null values are being printed (affects the
/power dumpcommand.) - Fixed determining logic in the
game_event_listenerpower type used for determining whether a game event should be accepted. - Fixed
on_blockentity condition type incorrectly evaluating a block at the wrong position. - Fixed crash caused by the
modify_projectile_damagepower type. - Fixed
spawn_particlesentity action type miscalculating its spread. - Fixed default translatable text (aka. the
ApoliDataTypes#DEFAULT_TRANSLATABLE_TEXTdata type) not being translatable by default.
Apoli 2.12.0-alpha.11 (Minecraft 1.21)
Changes
- The name of sub-powers is now validated before the sub-power itself is parsed.
- The
modify_type_tagpower type can now account for when the defined tag in the power is nested in multiple parent tags.
Apoli 2.12.0-alpha.10 (Minecraft 1.21)
Warning
Make sure to check out https://gist.github.com/eggohito/510eb0cf7d36d40f906ac1fcef74ee96#file-alpha_7-md for more details about this update!
Fixes
- Fixed sub-powers being decoded first before its Fabric resource conditions are evaluated (it should be evaluating the resource conditions first.)
- Fixed some action/condition types using the wrong IDs. This affected the following types:
modify_status_effect_durationpower type (it usedmodify_status_effect_amplifier.)riding_actionentity action type (it usedpassenger_action.)airentity condition type (it usedfood_level.)
- Fixed
fire_projectileentity action/power types having inconsistent implementations. - Fixed
if_elsemeta action type causing a crash if the optionalelse_actionfield is not present. - Fixed
advancemententity condition type not working properly. - Fixed
target_actionbi-entity action type executing on the 'actor' in a bi-entity context. - Fixed how the
biomeentity condition type is evaluated. - Fixed
attackerdamage condition type not accounting for when the attacker is non-existent like it used to. - Fixed
damageentity action type accepting an optional damage type when it should be required.
Changes
- The NBT structure of powers in entities has been changed for clarity and consistency with new NBTs in certain vanilla entities.
- The
FactoryNBT has been renamed totype. - The
TypeNBT has been renamed toid. - The
SourcesNBT has been renamed tosources. - The
DataNBT has been renamed todata.
- The
- The
modify_type_tagpower type can now account for tags that may include the tag specified in the power. - The
damageentity/bi-entity action types now require any of theamount,modifierormodifiersfields to be defined. - The
/power revokeall <targets> <source>sub-command has been changed to/power revoke <targets> all <source>.