Крафт 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 комментариев
Рекомендуемые комментарии
Нет комментариев для отображения