Fix client command registration for Fabric

The dispatcher is not actually available during mod init. So,
use the event callback.
This commit is contained in:
Spottedleaf
2024-08-10 20:28:53 -07:00
parent c5778192f6
commit c0a2e488fc
3 changed files with 12 additions and 3 deletions

View File

@@ -3,13 +3,17 @@ package ca.spottedleaf.moonrise.fabric;
import ca.spottedleaf.moonrise.patches.command.MoonriseCommand; import ca.spottedleaf.moonrise.patches.command.MoonriseCommand;
import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.CommandDispatcher;
import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
import net.minecraft.commands.CommandBuildContext;
public final class MoonriseFabricClient implements ClientModInitializer { public final class MoonriseFabricClient implements ClientModInitializer {
@SuppressWarnings({"rawtypes", "unchecked"}) @SuppressWarnings({"rawtypes", "unchecked"})
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {
MoonriseCommand.registerClient((CommandDispatcher) ClientCommandManager.getActiveDispatcher()); ClientCommandRegistrationCallback.EVENT.register((final CommandDispatcher<FabricClientCommandSource> commandDispatcher, final CommandBuildContext commandBuildContext) -> {
MoonriseCommand.registerClient((CommandDispatcher)commandDispatcher);
});
} }
} }

View File

@@ -22,7 +22,9 @@ import it.unimi.dsi.fastutil.longs.LongArrayFIFOQueue;
import it.unimi.dsi.fastutil.longs.LongOpenHashSet; import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.commands.CommandBuildContext;
import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.server.dedicated.DedicatedServer; import net.minecraft.server.dedicated.DedicatedServer;
import net.minecraft.util.Mth; import net.minecraft.util.Mth;

View File

@@ -10,6 +10,7 @@ import java.util.ArrayDeque;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects;
public final class LeafProfiler { public final class LeafProfiler {
@@ -41,7 +42,9 @@ public final class LeafProfiler {
} }
private static void add(final long[] dst, final long[] src) { private static void add(final long[] dst, final long[] src) {
for (int i = 0; i < src.length; ++i) { final int srcLen = src.length;
Objects.checkFromToIndex(0, srcLen, dst.length);
for (int i = 0; i < srcLen; ++i) {
dst[i] += src[i]; dst[i] += src[i];
} }
} }