eggolib

eggolib

Mod

A Fabric mod that extends Apoli's system for funsies

Client and server LibraryUtility

8,319 downloads
6 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
Filter versions...

Changes

  • Migrated to using a data tracker (from a CCA component) for syncing command tags.

Fixes

  • Fixed leash bi-entity action type dropping leash item when detached.
  • Fixed eggolib using a wrong version of Modmenu as a dependency.

Changes

  • Migrated to using a data tracker (from a CCA component) for syncing command tags.

Fixes

  • Fixed leash bi-entity action type dropping leash item when detached.

Fixes

  • (#50) Fixed mod dependency resolution (should now work with newer versions of Fabric API/Loader.)

Fixes

  • Temporarily fixed lag issue with Apoli setting the holder of an item stack.
  • (#50) Fixed mod dependency resolution (should now work with newer versions of Fabric API/Loader.)

This is a backport of v1.10.0 (1.20.2), with some notable differences:

  • The NBT operation/operator data types are still re-using vanilla's NBT operation/operator classes.
  • The modify_riding_position and modify_passenger_position power types are currently not re-implemented due to its dependence on a method that only existed in Minecraft versions 1.20.2 and above for its implementation.

Fixes

  • Fixed eggolib:misc CCA component breaking pre-set command tags.

Fixes

  • Fixed issue with message filters/consumers

Changes

  • Updated to Minecraft 1.20.2
  • Removed some power/condition/action types that are now available in Apoli.
  • The end bound for the linear-interpolated FOV multiplier is no longer affected by the affected_by_fov_effect_scale field of the modify_fov power type.
  • Changed the object at which the NBT operation/operator data types operate on.
  • Improved object-based packet implementation.
  • Added should_resolve boolean field to modify_label_render power type, with a default value of true (set this to false if you don't plan on using text components which require resolution.)

Fixes

  • Fixed open_inventory entity action type not opening the inventory of the entity that invoked the action if no power is specified (for real this time.)

Additions

  • New power type: pose, which sets the pose of the entity that has the power (may not work for certain poses for certain entities). It supports a pose field, which then supports these values: standing, fall_flying, sleeping, swimming, spin_attack, crouching, long_jumping, dying, croaking, using_tongue, sitting, roaring, sniffing, emerging, digging.
  • New entity condition type: in_pose, which checks the entity's current pose. It supports a pose field.
  • New data type: message filter, used for executing an entity action if a message matches the specified filter. It supports these fields:
    • filter; the string used as the filter for matching the message. Supports regular expressions.
    • entity_action; an optional entity action field, which will be executed upon the message matching the filter.
  • New data type: message consumer, used for executing entity actions if a message matches the specified filter. It supports these fields:
    • filter; the string used as the filter for matching the message. Supports regular expressions.
    • before_action/after_action; an optional entity action field. When this entity action is invoked will depend on the power type.
  • New data type: message replacer, used for replacing a message and executing entity actions if the message matches the specified filter. It supports these fields:
    • filter; the string used as the filter for matching the message. Supports regular expressions.
    • before_action; an optional entity action field, which will be executed before the message is replaced.
    • after_action; an optional entity action field, which will be executed after the message has been replaced successfully (e.g: the message is no longer as it was.)
  • New power type: action_on_sending_message, which executes an action upon sending a message. It supports these fields:
    • message_type; determines whether the actions should be executed if the message is of this type. See here for a list of vanilla message types
    • filter/filters; optional message consumer(s) fields. Invokes before_action before the message is prevented from being sent.
    • priority; determines the execution priority of the power. Higher values means the power will be executed earlier.
  • New power type: prevent_sending_message, which prevents a message from being sent. It supports these fields:
    • message_type; determines whether the actions should be executed if the message is of this type. See here for a list of vanilla message types
    • filter/filters; optional message filter(s) fields.
    • priority; determines the execution priority of the power. Higher values means the power will be executed earlier.
  • New power type: modify_sent_message, which modifies the message sent by the player before it's broadcasted to the server. It supports these fields:
    • filter/filters; optional message filter(s) fields.
    • priority; determines the execution priority of the power. Higher values means the power will be executed earlier.
  • New item action type: modify_item_cooldown, which modifies the item's cooldown. It supports these fields:
    • modifier/modifiers; these modifiers will be applied to the item's previous cooldown.
  • New item condition type: item_cooldown, which compares the cooldown progress (ranging from 0.0 to 1.0) of the item to a specific value. It supports these fields:
    • comparison; determines how the cooldown progress value of the item is compared to the specified value.
    • compare_to; the value to compare the cooldown progress value of the item to.
  • New power types, modify_riding_position and modify_passenger_position, which modifies the mounting position of the entity that has the power, and the passenger(s) of the entity that has the power respectively. It supports these fields:
    • bientity_condition; an optional bi-entity condition field, which if present, checks whether either or both the actor (the passenger(s)) and the target (the entity being ridden) fulfills this bi-entity condition.
    • x_modifier; an optional modifier field, which will be applied to the passenger's X mounting position.
    • y_modifier; an optional modifier field, which will be applied to the passenger's Y mounting position.
    • z_modifier; an optional modifier field, which will be applied to the passenger's Z mounting position.
  • New damage condition type: attacker; similar to Apoli's attacker damage condition type, except it has a bientity_condition field.

Full changelog: v1.9.1-1.20...v1.10.0-1.20.2

Changelog

Changes

  • The current screen and perspective is now only synced after a certain amount of ticks (controlled by the syncTickRate field in the client config.)
  • Simplified the attack distance scaling factor implementation of the eggolib:invisibility power type.
  • Optimized implementation of syncing command tags.

Fixes

  • Fixed performance issue with setting the item stack's holder.
  • Fixed open_inventory entity action type not opening the entity's inventory if no power is specified.

Changelog

  • Updated to 1.20.x
  • Added tooltip power type
    • Similar to Apoli's tooltip power type, except it can resolve JSON text component on the server-side
  • Added these new entity action types:
    • grant_advancement
    • revoke_advancement
      • Both are similar to Apoli's *_advancement entity action types, except it's more functionally similar to the /advancement command
  • Added these new item action types:
    • execute_command
    • copy_to_storage
  • Added type damage condition type

Changelog

  • Added tooltip power type
    • Similar to Apoli's tooltip power type, except it can resolve JSON text component on the server-side
  • Added these new entity action types:
    • grant_advancement
    • revoke_advancement
      • Both are similar to Apoli's *_advancement entity action types, except it's more functionally similar to the /advancement command
  • Added these new item action types:
    • execute_command
    • copy_to_storage
  • Added type damage condition type

Changelog

  • Updated to 1.19.4
  • Updated testdata
  • Added these new power types:
    • prevent_key_use
    • stat
  • Updated the invisibility power type:
    • It now affects the attack distance scaling factor of mobs
  • Added these new entity condition types:
    • in_snow
    • in_thunderstorm
    • has_spawnpoint
  • Added these new bi-entity condition types:
    • colliding
    • owner
      • Similar to Apoli's owner bi-entity condition type, except it works for other ownable entities
  • Added command block condition type
  • Added modify item action type
    • Similar to Apoli's modify item action type, except with more loot context
  • Added fuel item condition type

Changelog

  • Added the modify_fov power type
  • Updated the modify_label_render power type
    • Now parses the specified JSON text component in the text field
    • Now has a before_parse_action and after_parse_action entity action fields
    • Now has a tick_rate positive integer field
  • Added the exposed_to_weather entity condition type
  • Updated the scoreboard entity condition type
    • Now accepts a score holder in its name field
  • Updated the inventory entity condition type
    • Now has a comparison and compare_to fields

Changelog

  • Updated testdata
  • Tweaked the eggolib:loop meta action type
    • The action specified in the before_action field is now executed before getting the score from the specified scoreboard
  • Updated the eggolib:invisibility power type
    • Now has the new fields from the apoli:invisibility power type
  • Removed the eggolib:prevent_item_use power type
  • Removed the eggolib:clear_key_cache entity action type
  • Added an eggolib:equal bi-entity condition type
  • Tweaked the eggolib:game_event_listener power type
    • Now has a show_particle boolean field, which determines whether it should spawn the vibration particle
    • Now can listen to the game events emitted by the power holder
  • Added an eggolib:selector_action entity action type
  • Made the SCOREBOARD data type accept score holders
    • e.g: scoreHolderName and @e[tag = test, limit = 1] are valid inputs
  • Added an eggolib:leash bi-entity action type
  • Added an eggolib:moon_phase entity condition type
  • Optimized the eggolib:in_screen entity condition type
    • Now it shouldn't lag the server exponentially if many players are invoking it
  • Added an eggolib:crawling power type
  • Added an eggolib:crawling entity condition type
  • Updated testdata
  • Fixed client-server desync with the action_on_block_place power type
  • Changed how the vibration listener is set in the game_event_listener power type

Changelog:

  • Made compatible with Minecraft 1.19.x
  • Added modify_key_sequence entity action type (to generalize and replace the clear_key_sequence entity action type)
  • Added starting_equipment power type; like Apoli's starting_equipment power type, except it's generalized for entities

Project members

eggohito

Owner

Details

Licensed MIT
Published 2 years ago
Updated 7 months ago