I've just started practicing with Forge modding, and I'm trying to create a simple command that prints "It works!" to the server chat, just so I can prove that it does, in fact, work.
It doesn't, of course. I can't seem to use registerServerCommand() in the code below:
Main.java
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
@Mod(modid = Main.MODID, name = Main.MODNAME, version = Main.VERSION)
public class Main {
public static final String MODID = "testmod";
public static final String MODNAME = "Domo's Test Mod";
public static final String VERSION = "1.0";
@Instance
public static Main instance = new Main();
@EventHandler
public void load(FMLServerStartingEvent event) {
event.registerServerCommand(new TestCommand());
}
}
TestCommand.java
import java.util.ArrayList;
import java.util.List;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommand;
import net.minecraft.command.ICommandSender;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentString;
public class TestCommand implements ICommand
{
private final List aliases;
public TestCommand()
{
aliases = new ArrayList();
aliases.add("testcommand");
aliases.add("tc");
}
@Override
public int compareTo(ICommand arg0) {
return 0;
}
@Override
public String getCommandName()
{
return "testcommand";
}
@Override
public String getCommandUsage(ICommandSender sender)
{
return "testcommand";
}
@Override
public List<String> getCommandAliases()
{
return this.aliases;
}
@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException
{
sender.addChatMessage(new TextComponentString("It works!"));
}
@Override
public boolean checkPermission(MinecraftServer server, ICommandSender sender) {
return false;
}
@Override
public List<String> getTabCompletionOptions(MinecraftServer server, ICommandSender sender, String[] args,
BlockPos pos) {
return null;
}
@Override
public boolean isUsernameIndex(String[] args, int index) {
return false;
}
}
I'll be honest - I'm not good at this, there are significant holes in my understanding of Java and Forge's whole structure. I've been using Minecraft modding as practice, and it's helped me immensely in becoming a better programmer, but I still run into obstacles I can't handle. Point being - I can't solve this, although I have a feeling it's a REALLY easy fix that I'm not seeing. Can anyone shed some light on this?