a high-resolution Minecraft world renderer with a LeafletJS interface
Our #overviewer IRC channel has a customized bot named EmceeOverviewer, which is able to do a lot of interesting and helpful things. This is an incomplete list of the things it can do.
EmceeOverviewer is free software, and may be found on
GitHub. Some of the more specialized commands (like build
and
render
) are not in the public source, because the code is ugly
and/or contains location-specific hacks.
There are 3 primary ways to issue commands to EmceeOverviewer. The classic way is much like addressing him directly:
EmceeOverviewer, <command>
EmceeOverviewer will also respond to the names "emcee" and "mco", and will accept a colon or space instead of a comma. So, all of the following are acceptable:
EmceeOverviewer: <command>
emcee, <command>
mco <command>
You may also issue commands by prefixing the command with a "!", for example:
!<command>
If you want to issue a (usually short) command inside a more general message, you can surround any command with parenthesis "()" or brackets "[]" to issue an inline command. For example:
Hey, check out this (!<command>) cool link!
I'll render that for you. [emcee, <command>]
If you want to issue a command but don't want to spam up the channel, use private messages. If you use PMs, you don't need any special syntax for commands, just use the command name:
/msg EmceeOverviewer <command>
All of these forms work with all commands, so do whatever seems best to you.
google <query>
-- provides a link to a Google search for
<query>
.alpha <query>
, wa <query>
, = <query>
-- does a Wolfram Alpha computationhesperus
-- provide a link to the current bot sources.help
-- provide a link to this guide.dtt
, dttguide
-- provide a link to the
DTT Upgrade Guide.quickstart
, guide
-- provide a link to the
Quick Start Guide.rmo
, rmoguide
-- provide a link to the Rendermode Options Guide.example
, exmaple
-- checkout and zip the latest exmaple (example map).terrain
-- give the most up-to-date SHA1 hash of terrain.pngddate
-- returns the current date on the
Discordian Calendar.fortune
-- print a random, hopefully interesting, adage (man fortune 6)roll
-- rolls virtual dice, given a dice string (based on rolldice)EmceeOverviewer will announce GitHub events (like pushes, open issues, ...) to the channel as they happen, for all repositories he follows on GitHub. If you want to be added to this list, just ask agrif (Emcee's operator).
In addition to announcing events, Emcee also supports a few convenience commands.
To do a search for a specific issue number, use issue <num>
. Emcee
also supports issue #<num>
. If you want to search by phrase instead,
use issue <phrase>
, where <phrase>
can be anything (even including
spaces!).
If you want to search on something other than the main repo, put
on <username>
at the end to search through that user's repo issues
instead. For example,
!issue blocks on agrif
will search for issue with the phrase "blocks" on agrif's repo. This
works with issue numbers too, and will also accept "in", "for", or
"of" instead of "on". The pull
command is an alias for issue
.
You can have Emcee generate a link to a specific file and line by
issuing a command of the form <filename>:<lineno>
. For example, to
link to line #50 of chunk.py
, you could issue:
!chunk.py:50
Like the issue
command, this supports the "in", "for", "of", "on"
syntax to select a specific user's repo.
This is particularly useful as an inline command. For example:
Hey, what does this line do? (!src/overviewer.h:12)
(Note: right now, for safety reasons, this command is restricted-access. If you want to be put on the access list, just ask agrif)
Emcee is able to build py2exe and debian packages (and possibly other
binary packages) automatically, on command. To have Emcee build
something for you, use build <target>
. Run build
(with no targets)
to get a list of supported targets.
If you want to build something other than the default sources, you can add a repo user and commit to the build command. For example,
build <target> agrif
will build the "master" branch on agrif's repo, and
build <target> agrif/some-branch
will build the "some-branch" branch on agrif's repo.
Emcee now has the ability to build and upload a bunch of targets at
once, to facilitate releasing new versions of Overviewer. The basic
command is upload
, which will build and upload every available
target. Windows packages are uploaded to GitHub, and
debian packages are uploaded to the overviewer.org APT repository.
Like build
, upload
also takes a repo/branch
as an optional
argument if you wish to release something other than
overviewer/master
. In this case, Windows builds are uploaded to the
appropriate repository.
Finally, you can specify what targets you want to upload:
upload targets deb32 deb64
upload agrif targets win*
The target list supports shell-style globbing.
release
is an alias for upload
, and both commands require
confirmation before doing anything, as a precaution.
In addition to building packages, Emcee can also do render tests on
command. To generate a test render, run render
. Like the build
command, render
also supports specifying a user and commit.
Renders generated this way will always have all rendermodes enabled, but will otherwise be completely unmodified.
Recently I added support for providing options to each render. Just
provide them after the command like you would on the command
line. Because of this new flexibility, this command is now limited to
people with build
access.
For example,
!render overviewer --north-direction="upper-left"