Skip to content

Introduce the world of Wings of Fire to Minecraft! This datapack is used by other Elytras of Fire datapacks to function properly.

License

Notifications You must be signed in to change notification settings

iHeronGH/Elytras-of-Fire-Lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Elytras of Fire Lib

Welcome!

Elytras of Fire Lib is a Minecraft datapack used by other Elytras of Fire DLCs to function properly. Without it, these DLCs will not work at all, so make sure you have this downloaded!

This datapack does nothing on its own. If you are looking to use this alongside other datapacks that depend on this, view a list of available DLCs here; if you would like to develop a DLC, view this example pack and read the documentation below.


Table of Contents


Installation and Uninstallation

Back to top

Installing Elytras of Fire Lib is relatively simple:

  1. Download the datapack using the Releases tab on the right (this will be populated when the datapack is in a releasable state, which it is not as of writing this.)
  2. Open your world folder and place the downloaded folder into the "datapacks" folder.
  3. Use /reload in-game to refresh your world. If you have installed it correctly, you will be met with a successful installation message. Thank you for using Elytras of Fire! I hope you enjoy it.

And uninstalling Elytras of Fire Lib is even simpler:

  1. Run the command /function eoflib:uninstall. This will uninstall Elytras of Fire Lib along with all other dependent DLCs*. And that's it!

    *Always double-check that your DLCs uninstalled correctly! Elytras of Fire Lib does its best to remove itself and its dependencies, but it's up to the developers of these DLCs that they are removed entirely. Contact the respective developers regarding incomplete uninstallation; unless it is an issue with Elytras of Fire Lib itself, I will not offer my assistance directly.


Features

Back to top

DLC Compatibility

Elytras of Fire Lib, as a library of sources that other datapacks can hook into, promotes DLCs!

If you're looking to use Elytras of Fire Lib and other DLCs, here is a list updated as of January 10, 2024 for all supported DLCs:

If you're a developer, contributor, or just plain curious, continue below as documented are some features that datapack makers can use to get the most out of this library. You can also check out an example pack to have the process a little more streamlined and have guidance throughout your development.


Advancements

Elytras of Fire Lib comes with 9 advancements:

View Advancements List

Back to top

eoflib:ability_used.json

ability_used.json is an advancement that is rewarded to players who have right-clicked their ability item β€” not necessarily activating said ability, but solely using the item. ability_used.json can be hooked into by adding your functions to your datapack's eoflib:reset/abilities.json function tag. Note that functions triggered via this advancement will activate one game tick after this advancement is rewarded to properly reset used abilities. Do not overwrite/add the file to Elytras of Fire Lib.

πŸ“¦ eoflib:advancements
β”” πŸ“„ ability_used.json

eoflib:death.json

death.json is an advancement that is rewarded to players who have died. death.json can be hooked into by setting this advancement as a parent to any other advancement you'd like, or by adding your functions to your datapack's eoflib:tags/functions/death.json function tag. Do not overwrite/add the file to Elytras of Fire Lib.

{
  "parent": "eoflib:death",
  ...
}
πŸ“¦ eoflib:advancements
β”” πŸ“„ death.json

eoflib:dragon.json

dragon.json is an advancement that is rewarded under either of the following conditions: when a player joins a team that is recognised by any datapack as an Elytras of Fire team, or when a player is given a tag matching the name of an Elytras of Fire team. dragon.json can be hooked into by setting this advancement as a parent to any other advancement you'd like. Do not overwrite/add the file to Elytras of Fire Lib.

{
  "parent": "eoflib:dragon",
  ...
}
πŸ“¦ eoflib:advancements
β”” πŸ“„ dragon.json

eoflib:ignited.json

ignited.json is an advancement that is rewarded when a player is damaged by fire. ignited.json can be hooked into by setting this advancement as a parent to any other advancement you'd like. Do not overwrite/add the file to Elytras of Fire Lib.

{
  "parent": "eoflib:ignited",
  ...
}
πŸ“¦ eoflib:advancements
β”” πŸ“„ ignited.json

eoflib:new_id.json

new_id.json is an advancement that is rewarded to players who have joined the server for the first time since the datapack's loading. It assigns every player a unique score that can be used to distinguish between players, separate ability users from targets, and so on. new_id.json can be hooked into by adding your functions to your datapack's eoflib:tags/functions/new_id.json function tag. Do not overwrite/add the file to Elytras of Fire Lib.

{
  "replace": false,
  "values": [
    "namespace:function/path/here",
    ...
  ]
}
πŸ“¦ eoflib:advancements
β”” πŸ“„ new_id.json

eoflib:rejoin.json

rejoin.json is an advancement that is activated when a player rejoins the server. Most commonly, this is used to reactivate schedules that require players present on the server such as tribe effects and passive abilities. rejoin.json can be hooked into by adding your functions to your datapack's eoflib:tags/functions/rejoin.json function tag. Do not overwrite/add the file to Elytras of Fire Lib.

{
  "parent": "eoflib:rejoin",
  ...
}
πŸ“¦ eoflib:advancements
β”” πŸ“„ rejoin.json

eoflib:ricardo_report.json

ricardo_report.json is an advancement used by this library to detect if something has gone horribly wrong. It handles the event in which a player either throws or eats Ricardo the Error potato, sending the player a bug report form in chat along with the opportunity to bid Ricardo farewell.

πŸ“¦ eoflib:advancements
β”” πŸ“„ ricardo_report.json

eoflib:root.json

root.json is an advancement that is rewarded to players who have joined the server for the first time since the datapack's loading. It is simply used to detect that the datapack has loaded. Do not overwrite/add the file to Elytras of Fire Lib.

{
  "parent": "eoflib:root",
  ...
}
πŸ“¦ eoflib:advancements
β”” πŸ“„ root.json

eoflib:trigger.json

trigger.json is an advancement that is rewarded to players who have triggered certain scoreboard events.**

πŸ“¦ eoflib:advancements
β”” πŸ“„ trigger.json

Loot Tables

Elytras of Fire Lib comes with 2 loot tables: ricardo.json and shulker_box.json.

View Loot Tables List

Back to top

eoflib:ricardo.json

ricardo.json is a loot table that creates a poisonous potato named Ricardo the Error Potato. He's a cute little guy with big, round eyes, a well-kept mustache, and a black-as-coals top hat! Ricardo is meant to be a bug item; if Ricardo is accidentally β€” or on purpose β€” given to a player, he lets them know to submit a bug report.

πŸ“¦ eoflib:loot_tables
β”” πŸ“ commands
  β”” πŸ“„ ricardo.json

minecraft:shulker_box.json

shulker_box.json is a loot table that manipulates shulkers to drop their contents if an item with specific NBT is used to break it. Use any item or /loot mine command that has the {items: 1b} tag to obtain only the contents of the shulker box.

πŸ“¦ minecraft:loot_tables
β”” πŸ“ blocks
  β”” πŸ“„ shulker_box.json

Predicates

Elytras of Fire Lib comes with many predicates for DLCs to hook into:

View Predicates List

Back to top

eoflib:on_fire.json

on_fire.json checks if an entity is on fire.

πŸ“¦ eoflib:predicates
β”” πŸ“„ on_fire.json

inventory/.../<predicate>.json

Predicates located here deal with inventory checking. By default, 9 files are included, each checking a specific hotbar slot to see if it is unoccupied.

πŸ“¦ eoflib:predicates
β”” πŸ“ inventory
  β”œ πŸ“„ slot_0_empty.json
  β”œ πŸ“„ slot_1_empty.json
  β”œ πŸ“„ slot_2_empty.json
  β”œ πŸ“„ slot_3_empty.json
  β”œ πŸ“„ slot_4_empty.json
  β”œ πŸ“„ slot_5_empty.json
  β”œ πŸ“„ slot_6_empty.json
  β”œ πŸ“„ slot_7_empty.json
  β”” πŸ“„ slot_8_empty.json

location/.../<predicate>.json

Predicates located here deal with location checking. By default, 2 files are included: submerged_in_water.json checks for players that are completely encompassed in water (or waterlogged blocks) and water.json checks for players standing on or in water (or waterlogged blocks.)

πŸ“¦ eoflib:predicates
β”” πŸ“ location
  β”œ πŸ“„ submerged_in_water.json
  β”” πŸ“„ water.json

mainhand/.../<predicate>.json

Predicates located here deal with mainhand checking. By default, 3 files are included, each checking whether a player is holding either a primary, secondary, or tertiary ability in their mainhand.

πŸ“¦ eoflib:predicates
β”” πŸ“ mainhand
  β”” πŸ“ ability
    β”œ πŸ“„ primary.json
    β”œ πŸ“„ secondary.json
    β”” πŸ“„ tertiary.json

movement/.../<predicate>.json

Predicates located here deal with movement checking. By default, 6 files are included, each checking for general and player-specific movement types.

πŸ“¦ eoflib:predicates
β”” πŸ“ movement
  β”œ πŸ“„ elytra_flight.json
  β”œ πŸ“„ ground_sneak.json
  β”œ πŸ“„ on_ground.json
  β”œ πŸ“„ sneak.json
  β”œ πŸ“„ sprint.json
  β”” πŸ“„ swim.json

tribes/.../<predicate>.json

Predicates located here deal with tribe checking. By default, only 1 file is included.

πŸ“¦ eoflib:predicates
β”” πŸ“ tribes
  β”” πŸ“„ dragon.json

Tags

Elytras of Fire Lib comes with dozens of tags for blocks, entities, functions, and items for DLCs to hook into:

View Block Tags List

Back to top

eoflib:earth_blocks.json

earth_blocks.json groups blocks associated with earthy/silty materials.

πŸ“¦ eoflib:tags
β”” πŸ“ blocks
  β”” πŸ“„ earth_blocks.json

eoflib:ice.json

ice.json groups blocks associated with ice.

πŸ“¦ eoflib:tags
β”” πŸ“ blocks
  β”” πŸ“„ ice.json

eoflib:snow.json

snow.json groups blocks associated with snow.

πŸ“¦ eoflib:tags
β”” πŸ“ blocks
  β”” πŸ“„ snow.json

eoflib:waterlogged.json

waterlogged.json groups blocks that are able to be waterlogged.

πŸ“¦ eoflib:tags
β”” πŸ“ blocks
  β”” πŸ“„ waterlogged.json

minecraft:climbable.json

climbable.json adds to Minecraft's own climbable.json block tag. Because there is no way to make custom block tags climbable, this is the only overwrite Elytras of Fire Lib does to the Minecraft namespace.

πŸ“¦ minecraft:tags
β”” πŸ“ blocks
  β”” πŸ“„ climbable.json

eoflib:desert/.../<tag>.json

Tags here group blocks commonly found composing Minecraft deserts. By default, 5 related files are included.

πŸ“¦ eoflib:tags
β”” πŸ“ blocks
  β”œ πŸ“„ desert.json
  β”” πŸ“ desert
    β”œ πŸ“„ sand.json
    β”œ πŸ“„ sandstone.json
    β”” πŸ“ sandstone
      β”œ πŸ“„ red.json
      β”” πŸ“„ white.json

eoflib:flora/.../<tag>.json

Tags here group blocks best described as flora. They are further grouped by dimension and general distinction (grasses, mosses, vines, etc.) By default, 10 related files are included.

πŸ“¦ eoflib:tags
β”” πŸ“ blocks
  β”œ πŸ“„ flora.json
  β”” πŸ“ flora
    β”œ πŸ“„ dripleaf.json
    β”œ πŸ“„ grass.json
    β”œ πŸ“„ moss.json
    β”œ πŸ“„ mushrooms.json
    β”œ πŸ“„ vines.json
    β”” πŸ“ nether
    β”‚ β”œ πŸ“„ grass.json
    β”‚ β”” πŸ“„ vines.json
    β”” πŸ“ overworld
      β”œ πŸ“„ grass.json
      β”” πŸ“„ vines.json

eoflib:minecraft/.../<tag>.json

Tags here group blocks that are meant to replace or add to the default Minecraft tags in terms of usage. As it is good practice to not overwrite default tags, these are simply here to abide by this practice. By default, 11 files are included.

πŸ“¦ eoflib:tags
β”” πŸ“ blocks
  β”” πŸ“ minecraft
    β”œ πŸ“„ air.json
    β”œ πŸ“„ amethyst.json
    β”œ πŸ“„ coral_fans.json
    β”œ πŸ“„ corals.json
    β”œ πŸ“„ dirt.json
    β”œ πŸ“„ flowers.json
    β”œ πŸ“„ glass_panes.json
    β”œ πŸ“„ gravel.json
    β”œ πŸ“„ redstone_components.json
    β”œ πŸ“„ sand.json
    β”” πŸ“„ torches.json
View Entity Tags List

Back to top

eoflib:projectiles.json

projectiles.json groups entities used as projectiles by any entity or block.

πŸ“¦ eoflib:tags
β”” πŸ“ entities
  β”” πŸ“„ projectiles.json

eoflib:unaffected.json

unaffected.json groups entities that are unable to be affected by any vanilla Minecraft effects.

πŸ“¦ eoflib:tags
β”” πŸ“ entities
  β”” πŸ“„ unaffected.json
View Function Tags List

Back to top

tags/functions/config.json

config.json is used by Elytras of Fire Lib and other DLCs to run configuration settings provided by them.

πŸ“¦ eoflib:tags
β”” πŸ“ functions
  β”” πŸ“„ config.json

tags/functions/detect_dlcs.json

detect_dlcs.json is used by Elytras of Fire Lib and other DLCs to detect other DLCs.

πŸ“¦ eoflib:tags
β”” πŸ“ functions
  β”” πŸ“„ detect_dlcs.json

tags/functions/dlc_load.json

dlc_load.json is used by Elytras of Fire Lib and other DLCs to load themselves and/or other DLCs.

πŸ“¦ eoflib:tags
β”” πŸ“ functions
  β”” πŸ“„ dlc_load.json

tags/functions/uninstall.json

uninstall.json is used by Elytras of Fire Lib and other DLCs to uninstall themselves and/or other DLCs.

πŸ“¦ eoflib:tags
β”” πŸ“ functions
  β”” πŸ“„ uninstall.json

tags/functions/load/.../<tag>.json

Tags here group functions to be ran only once by Elytras of Fire Lib or other DLCs. By default, 8 files are included.

πŸ“¦ eoflib:tags
β”” πŸ“ functions
  β”” πŸ“ load
    β”œ πŸ“ del
    β”‚ β”œ πŸ“„ forceloads.json
    β”‚ β”œ πŸ“„ scoreboards.json
    β”‚ β”œ πŸ“„ storage.json
    β”‚ β”” πŸ“„ teams.json
    β”” πŸ“ gen
      β”œ πŸ“„ forceloads.json
      β”œ πŸ“„ scoreboards.json
      β”œ πŸ“„ storage.json
      β”” πŸ“„ teams.json

tags/functions/reset/.../<tag>.json

Tags here group functions to be ran when resetting certain aspects of Elytras of Fire Lib. By default, 1 file is included.

πŸ“¦ eoflib:tags
β”” πŸ“ functions
  β”” πŸ“ reset
    β”” πŸ“„ tribe_advancements.json

tags/functions/timers/.../<tag>.json

Tags here group functions to be ran on a regular schedule. By default, 4 files are included.

πŸ“¦ eoflib:tags
β”” πŸ“ functions
  β”” πŸ“ timer
    β”œ πŸ“„ 1t.json
    β”œ πŸ“„ 5t.json
    β”” πŸ“„ 10t.json
    β”” πŸ“„ 20t.json
View Item Tags List

Back to top

tags/items/items.json

items.json is used by Elytras of Fire Lib and other DLCs to group items used by them.

πŸ“¦ eoflib:tags
β”” πŸ“ functions
  β”” πŸ“ items
    β”” πŸ“„ items.json

Planned Features

Back to top

Abilities Support

Arguably one of the most major parts of Elytras of Fire, ability support will be coming next! Currently there is minimal framework for ability support, but this is the next step in the development of Elytras of Fire Lib β€” and Elytras of Fire as a whole.

Ability Blacklist

The Ability Blacklist is planned to exclude certain abilities from being granted to players. It is slated to deny abilities by type (primary, secondary, and tertiary), by tribe, and/or individually.

Custom Death Messages

Custom Death Messages will be exactly that: custom death messages that will play when a player or named entity dies by a registered Elytras of Fire ability.

Friendly Fire (A.K.A. Wings)

"Wings," in this instance, will refer to groups that users of Elytras of Fire can form; this can be most likened to factions found on Factions servers. Players that are a part of the same Wing will not be able to damage or negatively afflict one another via their abilities, and can invite up to 9 other players to their Wing.


Other Qualities

Back to top

Configuration Settings

Elytras of Fire Lib comes with many settings to fit many niches!

Player Settings

Back to top

The following entries are settings that any player can use and configure, no matter the conditions:

  • Enable Tribe Abilities: Toggle on or off your hotbar abilities. (Default: OFF)
    • ON: Player is able to use active abilities freely. They may disable them at any point.
    • OFF: Player is unable to use active abilities. They may enable them at any point.

  • Enable Tribe Attributes: Toggle on or off your tribe's attributes and any passive abilities. (Default: OFF)
    • ON: Player benefits from the passive effects of their current tribe. They may disable them at any point.
    • OFF: Player is unaffected by any tribe's passive effects. They may enable them at any point.

  • Enable Range Display: Toggle on or off the range preview for your held ability. (Default: OFF)
    • ON: Player receives visual feedback of the range/range type of their held ability. They may disable this feedback at any point.
    • OFF: Player no longer sees their held ability's range preview. They may enable this feedback at any point.

  • Ability Handling: Choose what happens when an ability item is replaced with another item. (Default: Remove Abilities)
    • Remove Abilities: Player's abilities are automatically disabled when a non-ability item enters a slot occupied by an ability item.
    • Remove Items: Player's attempt to replace an ability item with a non-ability item results in the non-ability item being dropped at their feet.

Admin Settings

Back to top

The following entries are settings that only players with the eoflib.admin tag can change:

  • Persistent Settings: Keep your settings when the world is reloaded in any way. (Default: ON)
    • ON: Admin Settings and Uninstall Settings stay as-configured when the /reload command is ran or the world is otherwise reloaded.
    • OFF: Admin Settings and Uninstall Settings are set to the default, recommended settings on world reloading.
      • Default: Admin Settings and Uninstall Settings are immediately set to their defaults.

  • Allow Abilities: Toggle the ability for non-admin players to toggle their abilities. (Default: ON)
    • ON: Players are able to freely toggle on or off their tribe abilities. Players must reenable their setting when Allow Abilities is changed from OFF to ON.
    • OFF: Players are no longer able to toggle on their tribe abilities, and all players have their abilities disabled.
  • Allow Attributes: Toggle the ability for non-admin players to toggle their tribe attributes. (Default: ON)
    • ON: Players are able to freely toggle on or off their tribe attributes. Players must reenable their setting when Allow Attributes is changed from OFF to ON.
    • OFF: Players are no longer able to toggle on their tribe attributes, and all players have their attributes disabled.

  • Allow Range Display: Toggle the ability for non-admin players to toggle Range Display. (Default: OFF)
    • ON: Players are able to freely toggle on or off their ability's range display. Players must reenable their setting when Allow Range Display is changed from OFF to ON.
    • OFF: Players are no longer able to toggle on their ability's range display, and all players have their ability's range display disabled.

  • Enable Deactiviation Timer: The Deactivation timer automatically disables abilities for players who are not actively using them. Enable this option to decrease performance impact of Elytras of Fire Lib and any installed DLCs. (Default: ON)
    • ON: Players who have not actively used their ability during a period of time will automatically have them disabled.
    • OFF: Players will keep their abilities active regardless of ability inactivity.

  • Enable Destructive Effects: Toggle the destructive properties that some abilities come with. (Default: OFF)
    • ON: Abilities can cause physical damage to some terrain, structures, buildings, etc.
    • OFF: Abilities will cause no damage to the environment and will only affect entities.

  • Custom Death Messages (unreleased): Toggle custom death messages when players are killed by certain abilities. (Default: ON)
    • ON: Deaths caused by certain abilities will give a datapack-generated death message. Purely cosmetic.
    • OFF: Deaths by abilities will not yield new death messages.

  • Enable Friendly Fire (unreleased): Toggle friendly fire for most abilities. (Default: OFF)
    • ON: ---
    • OFF: ---

  • Cooldown Bypass: Allows you to bypass all tribe ability cooldowns. (Default: OFF)
    • ON: User will bypass all cooldowns imposed by abilities.
    • OFF: User is penalised by ability cooldowns on successful use.

  • Debug Mode: Displays helpful information in-game to streamline datapack development and show function references and sources. (Default: OFF)
    • ON: User will receive debugging messages in chat.
    • OFF: User will see no technical messages.
Uninstall Settings

Back to top

The following entries are settings that only players with the eoflib.admin tag can change:

  • Keep Teams: Keep all tribe teams intact when this datapack is uninstalled (Default: ON)
    • ON: Teams will remain after uninstall.
    • OFF: Teams will be removed during uninstall.

  • Keep Scoreboards: Keep all scoreboard objectives and data intact when this datapack is uninstalled. (Default: ON)
    • ON: Scoreboards will remain after uninstall.
    • OFF: Scoreboard objectives and data will be removed during uninstall.

  • Keep Storages: Keep all storage data intact when this datapack is uninstalled. (Default: ON)
    • ON: Storage data will remain after uninstall.
    • OFF: Relevant storage data will be removed during uninstall.

  • Keep Bossbars: Keep all bossbars intact when this datapack is uninstalled. (Default: ON)
    • ON: Bossbars will remain after uninstall.
    • OFF: Bossbars will be removed during uninstall.

  • Keep Forceloads: Toggle whether forceloaded chunks stay forceloaded after this datapack is uninstalled. (Default: ON)
    • ON: Forceloaded chunks will remain forceloaded after uninstall.
    • OFF: Forceloaded chunks will no longer be forceloaded during uninstall.

IMP Compliance

The following features of Elytras of Fire Lib are listed to prove IMP compliance, which are a set of suggested guidelines for Minecraft datapacks that ensure quality, compatibility, and optimal user and development experience.

Core Standards: Leave vanilla alone

The sole edit to Vanilla is the climbable block tag. There is currently no implementable workaround for this.

Core Standards: Namespace everything

All entity tags, custom items, scoreboard objectives, and storages used in Elytras of Fire use the following namespaces to clarify association with Elytras of Fire:

  • eoflib
  • eoflib_raycast
  • eof

Documentation: Function headers

All functions utilise the IMP-recommended header to the best of my ability. I do not guarantee 100% accuracy.

Documentation: Function annotations

All functions utilise the appropriate IMP-recommended annotations to the best of my ability. I do not guarantee 100% accuracy.

About

Introduce the world of Wings of Fire to Minecraft! This datapack is used by other Elytras of Fire datapacks to function properly.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published