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 addintermediary net/minecraft/class_5349named net/minecraft/server/function/FunctionLoader
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.minecraft.resource.ResourceReloader
ResourceReloader.Synchronizer -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final com.mojang.brigadier.CommandDispatcher<ServerCommandSource>private static final ResourceFinderprivate Map<Identifier,CommandFunction> private final intprivate static final Loggerprivate final TagGroupLoader<CommandFunction>private Map<Identifier,Collection<CommandFunction>> -
Constructor Summary
ConstructorsConstructorDescriptionFunctionLoader(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, waitMethods inherited from interface net.minecraft.resource.ResourceReloader
getName
-
Field Details
-
LOGGER
- Mappings:
Namespace Name Mixin selector official aLadd;a:Lorg/slf4j/Logger;intermediary field_25326Lnet/minecraft/class_5349;field_25326:Lorg/slf4j/Logger;named LOGGERLnet/minecraft/server/function/FunctionLoader;LOGGER:Lorg/slf4j/Logger;
-
FINDER
- Mappings:
Namespace Name Mixin selector official bLadd;b:Lacj;intermediary field_39978Lnet/minecraft/class_5349;field_39978:Lnet/minecraft/class_7654;named FINDERLnet/minecraft/server/function/FunctionLoader;FINDER:Lnet/minecraft/resource/ResourceFinder;
-
functions
- Mappings:
Namespace Name Mixin selector official cLadd;c:Ljava/util/Map;intermediary field_25329Lnet/minecraft/class_5349;field_25329:Ljava/util/Map;named functionsLnet/minecraft/server/function/FunctionLoader;functions:Ljava/util/Map;
-
tagLoader
- Mappings:
Namespace Name Mixin selector official dLadd;d:Lanm;intermediary field_25330Lnet/minecraft/class_5349;field_25330:Lnet/minecraft/class_3503;named tagLoaderLnet/minecraft/server/function/FunctionLoader;tagLoader:Lnet/minecraft/registry/tag/TagGroupLoader;
-
tags
- Mappings:
Namespace Name Mixin selector official eLadd;e:Ljava/util/Map;intermediary field_25801Lnet/minecraft/class_5349;field_25801:Ljava/util/Map;named tagsLnet/minecraft/server/function/FunctionLoader;tags:Ljava/util/Map;
-
level
private final int level- Mappings:
Namespace Name Mixin selector official fLadd;f:Iintermediary field_25331Lnet/minecraft/class_5349;field_25331:Inamed levelLnet/minecraft/server/function/FunctionLoader;level:I
-
commandDispatcher
- Mappings:
Namespace Name Mixin selector official gLadd;g:Lcom/mojang/brigadier/CommandDispatcher;intermediary field_25332Lnet/minecraft/class_5349;field_25332:Lcom/mojang/brigadier/CommandDispatcher;named commandDispatcherLnet/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;)Vintermediary <init>Lnet/minecraft/class_5349;<init>(ILcom/mojang/brigadier/CommandDispatcher;)Vnamed <init>Lnet/minecraft/server/function/FunctionLoader;<init>(ILcom/mojang/brigadier/CommandDispatcher;)V
-
-
Method Details
-
get
- Mappings:
Namespace Name Mixin selector official aLadd;a(Lacq;)Ljava/util/Optional;intermediary method_29456Lnet/minecraft/class_5349;method_29456(Lnet/minecraft/class_2960;)Ljava/util/Optional;named getLnet/minecraft/server/function/FunctionLoader;get(Lnet/minecraft/util/Identifier;)Ljava/util/Optional;
-
getFunctions
- Mappings:
Namespace Name Mixin selector official aLadd;a()Ljava/util/Map;intermediary method_29447Lnet/minecraft/class_5349;method_29447()Ljava/util/Map;named getFunctionsLnet/minecraft/server/function/FunctionLoader;getFunctions()Ljava/util/Map;
-
getTagOrEmpty
- Mappings:
Namespace Name Mixin selector official bLadd;b(Lacq;)Ljava/util/Collection;intermediary method_29459Lnet/minecraft/class_5349;method_29459(Lnet/minecraft/class_2960;)Ljava/util/Collection;named getTagOrEmptyLnet/minecraft/server/function/FunctionLoader;getTagOrEmpty(Lnet/minecraft/util/Identifier;)Ljava/util/Collection;
-
getTags
- Mappings:
Namespace Name Mixin selector official bLadd;b()Ljava/lang/Iterable;intermediary method_29458Lnet/minecraft/class_5349;method_29458()Ljava/lang/Iterable;named getTagsLnet/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:
reloadin 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 aLakr;a(Lakr$a;Lakx;Lbam;Lbam;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;intermediary method_25931Lnet/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 reloadLnet/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 aLadd;a(Lakv;)Ljava/util/List;intermediary method_29450Lnet/minecraft/class_5349;method_29450(Lnet/minecraft/class_3298;)Ljava/util/List;named readLinesLnet/minecraft/server/function/FunctionLoader;readLines(Lnet/minecraft/resource/Resource;)Ljava/util/List;
-