Age | Commit message (Collapse) | Author |
|
This allows lazy players to specify the color after playing the wild by
pressing up-arrow and adding the color to the previous line, without
running the risk of playing their precious second wild.
|
|
The public announcement is now a generic "can't do that", with the
specific message being notified to the user. This reduces the chance of
other players guessing what the current player has from the error
messages.
|
|
This prevents a game from starting after it has ended.
|
|
The drop is still counted, to prevent people from leaving and then
rejoining until they have nice cards.
|
|
The old XML files are not accessible, sadly, and the new API requires an
auth token. But at least it works again. For updates, we use the RSS
feed, parsing it manually.
|
|
|
|
Set up gettext strings properly, adjust case, and cope more cleanly with
the case of multiple address prefixes.
|
|
|
|
|
|
Use the time parsing routines in utils, and compute the split at blob
parse time rather than at command recognition time.
|
|
|
|
|
|
shortenurls: Add a favorite service config option.
Auto-shortening URLs is mutually exclusive with showing information about them as the output would be very confusing.
The favorite shortenting service option only really applies when other plugins call shortenurls.shorten, so they don't have to hard-code which shortening service to use.
|
|
Polls can be brief (2 minutes) or longer lasting (2 weeks).
|
|
|
|
be autoopped.
There's also a config item (autoop.seed_format) that lets you control how much, if any
of a users hostmask is globbed.
|
|
This goes through the list of hostmasks that would be opped in the channel, and
checks to see if any of them are currently not opped. If they're not, they're opped.
Nobody is ever deopped.
|
|
|
|
This prevents a dead loop when learning lines starting with whitespace,
which could otherwise happen e.g. when learning from a file.
|
|
|
|
Fix an error in commit 027b6965f5abf5d05a95 which causes @lang_list to
be undefined but used in BabelFish.
|
|
Previously the translation services in the plugin would connect to their
respective websites on initialize. Now they will only do this when the first
time they are used. WorldLingo still connects on initialialize in order to list
the supported language pairs, but the Mechanize object is not saved here, so
the connection should be closed after initialize, and only reopened if
translation by WorldLingo is requested later.
Previously the services are assumed to fail if they raise any Exception in
initialize, and in that case the service is disabled, and its command as well
as the help translate [failed] commands state this. Now this exception catch is
done for any do_translate method call.
|
|
When translate command is used without source language, "auto" as source
language is assumed. It means that google translator is used and we let
google figure out what the source language is.
Problem is that the google translator will fail if the system that the
bot is running on does not have the json gem installed. This commit
addresses that problem by showing more informative error message instead
of a weird "none of the translators supports auto to en translation".
|
|
|
|
|
|
|
|
|
|
For the 'before' part of the reply, make sure we use the where
from the correct Saw. Otherwise, for example, a public message
preceeding a quit would show a dangling 'in ' at the end of the reply.
|
|
This commit introduces the ability to note that a user was doing
something, optionally without disclosing what or where it was.
Users themselves do not get the chance to be hidden, because you can ask
the /WHOIS service if they logged on at all.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
|
|
|
|
It should now follow this logic:
* Allow everyone to create basic replies
* Require specific permissions for cmd and ruby reactions
|
|
|
|
|
|
Anybody can create a dangerous reaction, and then trick the owner into
triggering it.
Credits to apoc for spotting this.
|
|
and filter it in smart way
|
|
markov.delay had the wrong default, and its use didn't have any
degree of randomness in it. Set the default to 5 and use rand()
again.
|
|
Unify probability check for addressed and non-addressed case by
passing the message as a parameter to should_talk and picking the
probability accordingly.
|
|
|
|
These were slowing down learning process greatly and do not make sense as far
as I can see: learning is always done only by single thread anyway.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|