@Override
    public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) {
        final long lastPlayed = ( sender instanceof Player ? ((Player) sender).getLastPlayed() : System.currentTimeMillis() );

        final List<Declaration> history = this.records.getHistory();

        final int bodySize = History.PAGE_SIZE - (Main.courier.getBase().getString("history.footer").split("\\n").length);

        final int pageTotal = (history.size() / bodySize) + ( history.size() % bodySize > 0 ? 1 : 0 );
        final int pageCurrent = ( args.length >= 1 ? History.parseInt(args[0], 1) : 1 );
        if (pageCurrent <= 0 || pageCurrent > pageTotal) {
            Main.courier.send(sender, "unknown-argument", "page", 0, pageCurrent);
            return false;
        }

        final int first = (pageCurrent - 1) * bodySize;
        final int last = Math.min(first + bodySize, history.size());
        int index = first;
        for (final Declaration message : history.subList(first, last)) {
            Main.courier.send(sender, "history.body", ( message.set > lastPlayed ? 1 : 0 )
                    , message.set, message.from, message.text
                    , RecordKeeper.duration(System.currentTimeMillis() - message.set)
                    , index);
            index++;
        }

        Main.courier.send(sender, "history.footer", pageCurrent, pageTotal, ( pageCurrent < pageTotal ? pageCurrent + 1 : 1 ));
        return true;
    }