Skip to content
/ honcho Public

A lightweight reflection-based command framework for rapidly writing commands in your Java apps.

Notifications You must be signed in to change notification settings

bizarre/honcho

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

honcho

honcho is a simple, lightweight command framework

@CommandMeta("echo")
public class EchoCommand {

  public void execute(DefaultCommandActor actor, String message) {
    actor.message(message);
  }

}

honcho removes the boilerplate associated with transmuting user inputted strings

public class PersonCommandProvider implements CommandProvider<Person> {
    @Override
    public Person provide(String argument) {
        if (argument.length() > 16) {
          return Person.getByFullName(argument);
        } else {
          return Person.getBySurname(argument);
        }
    }
}

// now you can use it in a command

@CommandMeta("info")
public class InfoCommand {

  public void execute(DefaultCommandActor actor, Person person) {
    actor.message(person.getName());
  }

}

custom actors

You can implement the CommandActor interface to allow using your own custom objects in command functions.

@AllArgsConstructor
public class PlayerCommandActor implements CommandActor<Player> {

    private Player player;

    ...

    @Override
    public Player to() {
        return player;
    }

}

// now you can use the Player type as a command actor (assuming your CommandExecutor) supports it.

@CommandMeta("broadcast", "bc")
public class BroadcastCommand {

  public void execute(Player player, String message) {
    Bukkit.broadcastMessage(player.getDisplayName() + " says: " + message);
  }

}

About

A lightweight reflection-based command framework for rapidly writing commands in your Java apps.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages