Крафт OCTechnics. Часть 4 - команды консоли
После долгого перерыва я наконец смог вернуться к своему моду OCTechnics!
Решил сначала добавить в мод команду для проверки, всё ли работает правильно.
В этот раз, чтобы узнать, как добавляются свои команды, полинтернета не хватило. Пришлось смотреть уже не гайды, а чистый код OpenComputers.
Там нашёлся замечательный пример: .../common/command/SimpleCommand.scala.
Сама реализация команды получила отдельный файл: org/octechnics/octechnics/OCTTestCommand.java:
package org.octechnics.octechnics;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.WrongUsageException;
import net.minecraft.server.MinecraftServer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChatComponentText;
import java.util.List;
import java.util.Arrays;
class OCTTestCommand extends CommandBase {
private static String[] aliases = new String[0];
private void echo(EntityPlayer player, String message) {
player.addChatMessage(new ChatComponentText(message));
}
@Override
public String getCommandName() {
return "oct";
}
@Override
public List<String> getCommandAliases() {
return Arrays.asList(OCTTestCommand.aliases);
}
@Override
public String getCommandUsage(ICommandSender source) {
return "/oct - Debugging OCTechnics";
}
@Override
public boolean canCommandSenderUseCommand(ICommandSender source) {
return true;
}
@Override
public void processCommand(ICommandSender source, String[] command) {
EntityPlayer player = (EntityPlayer)source;
if (player != null) {
this.echo(player, "OK, OCTechnics works");
} else {
throw new WrongUsageException("Can only be used by players.");
}
}
}
Чтобы команда /oct работала на сервере, нужно дописать ещё несколько строк кода в основной файл OCTechnics.java:
import cpw.mods.fml.common.event.FMLServerStartingEvent;
...
... (самый конец)
@EventHandler
public void serverStart(FMLServerStartingEvent evt) {
logger.info("octechnics - got FMLServerStartingEvent");
evt.registerServerCommand(new OCTTestCommand());
}
}
Мод OCTechnics загружается и работает! В этом можно убедиться, вызвав команду /oct: мод ответит "OK, OCTechnics works."
В следующей части уже будет добавление новых блоков, крафтов и блок-сущностей (на самом деле всё это готово, осталось только статью написать).
Команда пригодится для отладки (я не планирую добавлять к своим блокам GUI, т.е. инвентарь без компьютера просмотреть будет невозможно!)
Для тех, кому интересна разработка мода в реальном времени, рекомендую взглянуть сюда: https://github.com/ProgramCrafter/OCTechnics/.
-
3

0 комментариев
Рекомендуемые комментарии
Нет комментариев для отображения