Skip to main content

ServerReloadListeners

Trait ServerReloadListeners 

pub trait ServerReloadListeners {
    // Required methods
    fn add_listener(
        &mut self,
        id: Identifier,
        converter: FileToIdConverter,
        listener: Arc<dyn ServerReloadListener>,
    ) -> Result<(), ReloadOrderError>;
    fn add_retained(
        &mut self,
        id: Identifier,
        converter: FileToIdConverter,
        listener: Arc<dyn ServerReloadListener>,
        retained: Arc<dyn Any + Send + Sync>,
    ) -> Result<(), ReloadOrderError>;
    fn add_dependency(
        &mut self,
        first: Identifier,
        second: Identifier,
    ) -> Result<(), ReloadOrderError>;
    fn get_registry(&self) -> Vec<Identifier>;
    fn get_graph(&self) -> Vec<(Identifier, Identifier)>;
    fn get_last_vanilla_listener(&self) -> Identifier;
}
Expand description

The server reload’s listener registry, as add_server_reload_listeners hands it out: its registration methods and a read-only view of names and edges, rebuilt on each server reload. Listener names need not belong to the registering mod.

Required Methods§

fn add_listener( &mut self, id: Identifier, converter: FileToIdConverter, listener: Arc<dyn ServerReloadListener>, ) -> Result<(), ReloadOrderError>

Register a unique listener and converter, e.g. FileToIdConverter::json("machines"). Keep the Arc to read the listener’s published state outside reloads.

fn add_retained( &mut self, id: Identifier, converter: FileToIdConverter, listener: Arc<dyn ServerReloadListener>, retained: Arc<dyn Any + Send + Sync>, ) -> Result<(), ReloadOrderError>

add_listener, keeping retained (the listener itself, as the mod holds it) in the reload resources; mods reach it through add_retained_listener.

fn add_dependency( &mut self, first: Identifier, second: Identifier, ) -> Result<(), ReloadOrderError>

Require first before second; both names must already be registered.

fn get_registry(&self) -> Vec<Identifier>

The registered names in registration order, boundaries included.

fn get_graph(&self) -> Vec<(Identifier, Identifier)>

The dependency edges as (first, second) names.

fn get_last_vanilla_listener(&self) -> Identifier

The name of the vanilla anchor preceding mod listeners by default.

Implementations§

§

impl dyn ServerReloadListeners + '_

pub fn add_retained_listener<T>( &mut self, key: &ListenerKey<T>, converter: FileToIdConverter, listener: Arc<T>, ) -> Result<(), ReloadOrderError>

Register a listener whose object is also kept in the reload resources, as NeoForge’s addRetainedListener(key, listener): the caller builds the typed ListenerKey (ListenerKey::new(id)), and reads the object back through ServerReloadResources after the reload, from any server hook.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§