Module fr.fidorial
@NullMarked
module fr.fidorial
Public API for writing Fidorial plugins.
Fidorial has no Forge, no Fabric and no Mixin. A plugin implements
Plugin, receives a
PluginContext on load, then subscribes to
events and registers services from there.
Getting started
fr.fidorial.plugin— plugin entry point and contextfr.fidorial.event— observe and cancel server eventsfr.fidorial.service— replace default server behaviourfr.fidorial.entity.mob— bend the built-in mobs, or write new onesfr.fidorial.scheduler— hand long work off the region threadsfr.fidorial.dialog— show modal windows and read what players fill infr.fidorial.recipe— crafting recipes, several items per slot includedfr.fidorial.registry.keys— generated keys for blocks, items and morefr.fidorial.world.redstone— redstone signals, the blocks taking part in them, and the engine driving themfr.fidorial.world.farming— soil, the plants growing on it, and the engine making them grow
Threading
The world is split into independent 32×32-chunk regions, each ticking at 20 TPS on its own thread. Event listeners run on the thread of the region owning the block or entity — never block inside one, hand long work to the scheduler.
Nullability
This module is NullMarked: every type is
non-null unless explicitly annotated @Nullable.
- See Also:
-
Packages
ExportsPackageDescriptionRoot of the Fidorial API: theServerand its entry points.Annotations documenting the API itself.Attribute modifiers carried by items.Chat types: how messages sent to players are decorated.Damage sources and the combat service.Brigadier commands: registration, sources and senders.Argument types for Brigadier commands.Custom argument types built on top of native ones.Arguments resolved against the source running the command, such as selectors and relative or local positions.Dialogs: modal windows shown to players, and the values they send back.Entities and players, online or offline.Goals and pathfinding driving mobs.Status effects running on living entities.Bending the built-in mobs, and writing new ones.The event bus: subscribing to, posting and cancelling events.Events fired when blocks are placed or broken.Events fired about entities.Events fired by farming: soil being tilled, getting wet, drying out or trampled, plants growing, fertilizer being used, and harvests dropping.Events fired about a single player.Events fired by redstone: a signal spreading through dust, components switching, blocks reacting to being powered, pistons moving, and the block updates carrying it all from one block to the next.Events fired about the server as a whole.Game rules, server-wide and per world.Containers and the inventories of players.Item stacks and the item registry.Values of the data components items carry.Data components: the typed data attached to item stacks.Enchantments, vanilla or added by plugins, synchronised with clients like the other data-driven registries.Maps: the 128×128 pictures drawn onfilled_mapitems.Bans and the whitelist.Permission nodes, their defaults and how they are resolved.Plugin entry point, context and metadata.Crafting recipes: the vanilla ones the server ships with, and the ones plugins add.Registries, and the keys addressing their entries and tags.Running tasks on the region threads, and their performance.Services: the pieces of server behaviour plugins can replace.Sound events played by the server.The status shown in the multiplayer server list.Persistence backends for player data, inventories and enderchests.Scenario tests run against a real server.Annotations marking scenario tests.Worlds, chunks and positions.Biome definitions and the biome registry.Block types, block states and their behaviour.Traits of block states, one per common property.Block states of specific blocks, combining several traits.Environment attributes of dimensions and biomes.Farming: soil, the plants growing on it, and the engine making them grow.Fluids and their simulation.World generators and the chunks they fill.Redstone: the signals blocks emit and read, and the engine that carries them.Datapack structures and templates.The day/night cycle of worlds.The weather of worlds.