Class FunctionLoader
- All Implemented Interfaces:
ResourceReloader
CommandFunctionManager
to use. In the reloads, it loads the tags in one
completable future and each function in a completable future for all functions.
The functions are stored in .mcfunction
files; each line is one
Minecraft command, with blank lines and contents starting with a trailing hash
#
sign ignored.
The function tags are ordered, unlike other tags. Each function's order in the collection of functions from the tag is determined by the order it is listed in the JSON files; if it appears multiple times through tag nesting, only its first appearance will be considered.
- See Also:
- Mappings:
Namespace Name official add
intermediary net/minecraft/class_5349
named net/minecraft/server/function/FunctionLoader
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.minecraft.resource.ResourceReloader
ResourceReloader.Synchronizer
-
Field Summary
Modifier and TypeFieldDescriptionprivate final com.mojang.brigadier.CommandDispatcher<ServerCommandSource>
private static final ResourceFinder
private Map<Identifier,
CommandFunction> private final int
private static final Logger
private final TagGroupLoader<CommandFunction>
private Map<Identifier,
Collection<CommandFunction>> -
Constructor Summary
ConstructorDescriptionFunctionLoader
(int level, com.mojang.brigadier.CommandDispatcher<ServerCommandSource> commandDispatcher) -
Method Summary
Modifier and TypeMethodDescriptionget
(Identifier id) getTags()
reload
(ResourceReloader.Synchronizer synchronizer, ResourceManager manager, Profiler prepareProfiler, Profiler applyProfiler, Executor prepareExecutor, Executor applyExecutor) Performs a reload.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.minecraft.resource.ResourceReloader
getName
-
Field Details
-
LOGGER
- Mappings:
Namespace Name Mixin selector official a
Ladd;a:Lorg/slf4j/Logger;
intermediary field_25326
Lnet/minecraft/class_5349;field_25326:Lorg/slf4j/Logger;
named LOGGER
Lnet/minecraft/server/function/FunctionLoader;LOGGER:Lorg/slf4j/Logger;
-
FINDER
- Mappings:
Namespace Name Mixin selector official b
Ladd;b:Lacj;
intermediary field_39978
Lnet/minecraft/class_5349;field_39978:Lnet/minecraft/class_7654;
named FINDER
Lnet/minecraft/server/function/FunctionLoader;FINDER:Lnet/minecraft/resource/ResourceFinder;
-
functions
- Mappings:
Namespace Name Mixin selector official c
Ladd;c:Ljava/util/Map;
intermediary field_25329
Lnet/minecraft/class_5349;field_25329:Ljava/util/Map;
named functions
Lnet/minecraft/server/function/FunctionLoader;functions:Ljava/util/Map;
-
tagLoader
- Mappings:
Namespace Name Mixin selector official d
Ladd;d:Lank;
intermediary field_25330
Lnet/minecraft/class_5349;field_25330:Lnet/minecraft/class_3503;
named tagLoader
Lnet/minecraft/server/function/FunctionLoader;tagLoader:Lnet/minecraft/registry/tag/TagGroupLoader;
-
tags
- Mappings:
Namespace Name Mixin selector official e
Ladd;e:Ljava/util/Map;
intermediary field_25801
Lnet/minecraft/class_5349;field_25801:Ljava/util/Map;
named tags
Lnet/minecraft/server/function/FunctionLoader;tags:Ljava/util/Map;
-
level
private final int level- Mappings:
Namespace Name Mixin selector official f
Ladd;f:I
intermediary field_25331
Lnet/minecraft/class_5349;field_25331:I
named level
Lnet/minecraft/server/function/FunctionLoader;level:I
-
commandDispatcher
- Mappings:
Namespace Name Mixin selector official g
Ladd;g:Lcom/mojang/brigadier/CommandDispatcher;
intermediary field_25332
Lnet/minecraft/class_5349;field_25332:Lcom/mojang/brigadier/CommandDispatcher;
named commandDispatcher
Lnet/minecraft/server/function/FunctionLoader;commandDispatcher:Lcom/mojang/brigadier/CommandDispatcher;
-
-
Constructor Details
-
FunctionLoader
public FunctionLoader(int level, com.mojang.brigadier.CommandDispatcher<ServerCommandSource> commandDispatcher) - Mappings:
Namespace Name Mixin selector official <init>
Ladd;<init>(ILcom/mojang/brigadier/CommandDispatcher;)V
intermediary <init>
Lnet/minecraft/class_5349;<init>(ILcom/mojang/brigadier/CommandDispatcher;)V
named <init>
Lnet/minecraft/server/function/FunctionLoader;<init>(ILcom/mojang/brigadier/CommandDispatcher;)V
-
-
Method Details
-
get
- Mappings:
Namespace Name Mixin selector official a
Ladd;a(Lacq;)Ljava/util/Optional;
intermediary method_29456
Lnet/minecraft/class_5349;method_29456(Lnet/minecraft/class_2960;)Ljava/util/Optional;
named get
Lnet/minecraft/server/function/FunctionLoader;get(Lnet/minecraft/util/Identifier;)Ljava/util/Optional;
-
getFunctions
- Mappings:
Namespace Name Mixin selector official a
Ladd;a()Ljava/util/Map;
intermediary method_29447
Lnet/minecraft/class_5349;method_29447()Ljava/util/Map;
named getFunctions
Lnet/minecraft/server/function/FunctionLoader;getFunctions()Ljava/util/Map;
-
getTagOrEmpty
- Mappings:
Namespace Name Mixin selector official b
Ladd;b(Lacq;)Ljava/util/Collection;
intermediary method_29459
Lnet/minecraft/class_5349;method_29459(Lnet/minecraft/class_2960;)Ljava/util/Collection;
named getTagOrEmpty
Lnet/minecraft/server/function/FunctionLoader;getTagOrEmpty(Lnet/minecraft/util/Identifier;)Ljava/util/Collection;
-
getTags
- Mappings:
Namespace Name Mixin selector official b
Ladd;b()Ljava/lang/Iterable;
intermediary method_29458
Lnet/minecraft/class_5349;method_29458()Ljava/lang/Iterable;
named getTags
Lnet/minecraft/server/function/FunctionLoader;getTags()Ljava/lang/Iterable;
-
reload
public CompletableFuture<Void> reload(ResourceReloader.Synchronizer synchronizer, ResourceManager manager, Profiler prepareProfiler, Profiler applyProfiler, Executor prepareExecutor, Executor applyExecutor) Performs a reload. Returns a future that is completed when the reload is completed.In a reload, there is a prepare stage and an apply stage. For the prepare stage, you should create completable futures with CompletableFuture.supplyAsync(..., prepareExecutor) to ensure the prepare actions are done with the prepare executor. Then, you should have a completable future for all the prepared actions, and call combinedPrepare.thenCompose(synchronizer::waitFor) to notify the
synchronizer
. Finally, you should run CompletableFuture.thenAcceptAsync(..., applyExecutor) for apply actions. In the end, returns the result ofthenAcceptAsync
.- Specified by:
reload
in interfaceResourceReloader
- Parameters:
synchronizer
- the synchronizermanager
- the resource managerprepareProfiler
- the profiler for prepare stageapplyProfiler
- the profiler for apply stageprepareExecutor
- the executor for prepare stageapplyExecutor
- the executor for apply stage- Returns:
- a future for the reload
- See Also:
- Mappings:
Namespace Name Mixin selector official a
Lakp;a(Lakp$a;Lakv;Lbak;Lbak;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
intermediary method_25931
Lnet/minecraft/class_3302;method_25931(Lnet/minecraft/class_3302$class_4045;Lnet/minecraft/class_3300;Lnet/minecraft/class_3695;Lnet/minecraft/class_3695;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
named reload
Lnet/minecraft/resource/ResourceReloader;reload(Lnet/minecraft/resource/ResourceReloader$Synchronizer;Lnet/minecraft/resource/ResourceManager;Lnet/minecraft/util/profiler/Profiler;Lnet/minecraft/util/profiler/Profiler;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;
-
readLines
- Mappings:
Namespace Name Mixin selector official a
Ladd;a(Lakt;)Ljava/util/List;
intermediary method_29450
Lnet/minecraft/class_5349;method_29450(Lnet/minecraft/class_3298;)Ljava/util/List;
named readLines
Lnet/minecraft/server/function/FunctionLoader;readLines(Lnet/minecraft/resource/Resource;)Ljava/util/List;
-