How could I register a command in the new snapshot 24w33a, since fabric API doesnt exist for that version, i tried doing
package app.qwertz;
import app.qwertz.commands.CommandRegistrationEvent;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.server.command.CommandManager;
import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import com.mojang.brigadier.CommandDispatcher;
public class QWERTZpixelCore implements ModInitializer {
@Override
public void onInitialize() {
System.out.println("QWERTZpixelCore is initializing!");
registerCommands();
}
private void registerCommands() {
CommandRegistrationEvent.register((dispatcher, environment) -> {
dispatcher.register(CommandManager.literal("mods").executes(context -> {
ServerCommandSource source = context.getSource();
StringBuilder modList = new StringBuilder("Server-side mods:\n");
FabricLoader.getInstance().getAllMods().forEach(mod -> {
modList.append("- ")
.append(mod.getMetadata().getName())
.append(" (")
.append(mod.getMetadata().getVersion().getFriendlyString())
.append(")\n");
});
source.sendFeedback(() -> Text.literal(modList.toString()).formatted(Formatting.GREEN), false);
return 1;
}));
});
}
}```
Server started up with no errors, but command wasnt there, (server-side-only mod), this is my CommandRegistrationEvent class (took a little inspiration from https://github.com/FabricMC/fabric/blob/1.21.1/fabric-command-api-v2/src/main/java/net/fabricmc/fabric/api/command/v2/CommandRegistrationCallback.java)
```java
package app.qwertz.commands;
import com.mojang.brigadier.CommandDispatcher;
import net.minecraft.server.command.CommandManager;
import net.minecraft.server.command.ServerCommandSource;
import java.util.ArrayList;
import java.util.List;
public class CommandRegistrationEvent {
private static final List<CommandRegistrationCallback> callbacks = new ArrayList<>();
public static void register(CommandRegistrationCallback callback) {
callbacks.add(callback);
}
public static void invoke(CommandDispatcher<ServerCommandSource> dispatcher, CommandManager.RegistrationEnvironment environment) {
for (CommandRegistrationCallback callback : callbacks) {
callback.register(dispatcher, environment);
}
}
}```
and the interface:
```java
package app.qwertz.commands;
import com.mojang.brigadier.CommandDispatcher;
import net.minecraft.server.command.CommandManager;
import net.minecraft.server.command.ServerCommandSource;
public interface CommandRegistrationCallback {
void register(CommandDispatcher<ServerCommandSource> dispatcher, CommandManager.RegistrationEnvironment environment);
}```