All Mods Resource Packs Data Packs Shaders Modpacks Plugins
eggolib

eggolib

by eggohito • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

eggolib

JitPack GitHub issues GitHub Pull Requests

Required on the client and the server!

eggolib is a Fabric mod library that extends the functionality of Apoli for funsies. This mod library adds new power, condition and action types to be used for developing Origins/Apoli datapacks.

See here for the documentation for eggolib.

Q: Are the versions for 1.18.x going to be updated? A: Probably not, since it'd be quite a task for me to maintain versions for different Minecraft versions.

Q: Can you back-port this to X? A: The same answer from above still applies, but if you can or want to, feel free!

Using as a dependency

You can use eggolib as a dependency by modifying the gradle.properties and build.gradle files of your project, like so: (You can remove the include part if you don't want to include eggolib in your project)

build.gradle

repositories {
    maven {
        url "https://jitpack.io"
    }
}

dependencies {
    modImplementation "com.github.eggohito:eggolib:${project.eggolib_version}"
    include "com.github.eggohito:eggolib:${project.eggolib_version}"
}

gradle.properties

eggolib_version=[INSERT VERSION HERE]

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.20.x
Fabric
last yr. 1
1.20.2
Fabric
last yr. 1
1.20.2
Fabric
last yr. 1
1.20.x
Fabric
last yr. 1
1.20.x
Fabric
last yr. 1
1.20.x
Fabric
last yr. 1
1.20.x
Fabric
last yr. 1
1.20.2
Fabric
last yr. 1
1.20.2
Fabric
last yr. 1
1.20.2
Fabric
last yr. 1
1.20.x
Fabric
last yr. 1
1.20.x
Fabric
last yr. 1
1.19.4
Fabric
last yr. 1
1.19.4
Fabric
last yr. 1
1.19.3
Fabric
last yr. 1
1.19.3
Fabric
last yr. 1
1.19.3
Fabric
last yr. 1
1.19.3
Fabric
last yr. 1
1.19.x
Fabric
last yr. 1
1.19.x
Fabric
last yr. 1
1.19
Fabric
last yr. 1
1.19
Fabric
last yr. 1
1.19
Fabric
last yr. 1
1.18.2
Fabric
last yr. 1
1.18.1
Fabric
last yr. 1
## 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)](https://github.com/eggohito/eggolib/releases/tag/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.](https://minecraft.wiki/w/Raw_JSON_text_format#Component_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](https://minecraft.wiki/w/Chat_type)
  • 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](https://minecraft.wiki/w/Chat_type)
  • 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](https://github.com/eggohito/eggolib/compare/v1.9.1-1.20...v1.10.0-1.20.2)

[v1.9.1-1.20] eggolib v1.9.1 by eggohito on Feb 04, 2024
Download
# 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.

[v1.9.0-1.20] eggolib v1.9.0 by eggohito on Jul 25, 2023
Download
## 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
## Changelog:

  • Added a block_collision entity condition type; similar to Origins/Apoli's block_collision entity condition type but with a block_condition field
  • Added a chance meta condition type
  • Added a damage entity/bi-entity action types; similar to Origins/Apoli's damage entity/bi-entity action types but with a modifier field
  • Added a has_matching_tag bi-entity condition type
  • Added a has_tag entity condition type
  • Added an inventory entity condition type
  • Added a merge_nbt boolean field to the replace_inventory entity action type
  • Added a model_flip power type
  • Added a modify_health entity action type
  • Added a prevent_item_use power type; similar to Origins/Apoli's prevent_item_use power type but with entity_action, held_item_action, result_item_action, result_stack, hands and priority fields
  • Added a priority integer field to the *_block_place power types
  • Added an amount integer field to the drop_inventory entity action type
  • Added an invisibility power type; similar to Origins/Apoli's invisibility power type but with a bientity_condition field
  • Fixed untranslated disconnect.eggolib.missing text
eggolib Icon
Download eggolib
Select game version
Select platform