James Lu
523ef714a0
games: rewrite everything using the new ServiceBot API
2016-05-14 14:53:19 -07:00
James Lu
522b7b8b33
Move DataStore to structures (untested)
2016-05-14 14:53:19 -07:00
Daniel Oaks
c5242d1590
games: Fix help prefix stripper
2016-05-14 14:53:19 -07:00
Daniel Oaks
f1b0981f87
games: Write .help handler
2016-05-14 14:53:19 -07:00
Daniel Oaks
c2e3ce5bdf
games: request/remove commands
2016-05-14 14:53:19 -07:00
Daniel Oaks
45651858e4
games: Use db adapted from DataStore I wrote for mammon. May not seem too useful right now, but I have plans(tm)(c)
2016-05-14 14:53:19 -07:00
Daniel Oaks
cbb2eb318f
games: Only handle self messages if enabled
2016-05-14 14:53:19 -07:00
Daniel Oaks
c3e4cfa2de
games: Create BotClient class, use bot_clients instead of games_user
2016-05-14 14:53:19 -07:00
Daniel Oaks
f6854ab673
games: Add example dice command from my bot
2016-05-14 14:53:19 -07:00
Daniel Oaks
ed15af72ec
games: Simplify/betterise handlers, create example dice handler
2016-05-14 14:53:19 -07:00
Daniel Oaks
4054276ac0
games: Clean up CommandHandler
2016-05-14 14:53:19 -07:00
Daniel Oaks
967dafaf0d
games: Very initial barebones command handler
2016-05-14 14:53:19 -07:00
Daniel Oaks
f5efc36bf2
games: Initial plugin. Does NOTHING
2016-05-14 14:53:19 -07:00
James Lu
3930891e9f
relay: don't rely on irc.pseudoclient as much during init
2016-05-14 14:03:59 -07:00
James Lu
32bc5f120b
core: migrate the main client to ServiceBot ( #216 )
...
- irc.spawnMain is dropped. Clients are now spawned in the endburst loop, after protocol negotiation completes. This allows PyLink to spawn clients with hideoper, etc., closing #194 .
- utils.add_cmd and irc.callCommand are now just wrappers around world.services['pylink'].add_cmd and call_cmd respectively.
- coreplugin registers the main client while it is loaded up, before any commands are added.
2016-05-14 13:29:23 -07:00
James Lu
bcc648adff
relay: support relaying more channel modes
...
flood, flood_unreal, joinflood, freetarget, c_noforwards, and noinvite are whitelisted with this commit.
2016-05-11 21:18:30 -07:00
James Lu
366836b821
relay: burst topics from the main PyLink server
...
When a channel is being initialized, PyLink has no specific network to propagate topics from; they just get sent from whichever linked network we happened to iterate over first. This prevents misleading topic setters like 'randomnet.relay' from showing up.
2016-05-02 18:54:46 -07:00
James Lu
7b2319b7c5
changehost: migrate to irc.getHostmask
2016-05-01 15:05:30 -07:00
James Lu
917b0de596
relay: log spawnlocks calls
2016-05-01 14:59:13 -07:00
James Lu
f6a9f0729a
relay: don't error if the privmsg source on a remote network is missing
...
This can happen when someone speaks while a network is initializing, for example.
2016-05-01 14:59:13 -07:00
James Lu
bb8a548e74
relay: make handle_quit error-tolerant if the target is missing
...
In cases where multiple networks disconnect simultaneously, the relay user for a quitting client from the first dying network might have also disappeared while handle_disconnect was processing the disconnection of a second dying network. This should take into account those situations.
2016-05-01 14:59:13 -07:00
James Lu
54987fde4e
relay: code cleanup, possibly fix clones for PyLink clients being spawned from rare race conditions
2016-05-01 14:59:13 -07:00
James Lu
ab5624343b
relay: fix regression causing 'load relay' to freeze
2016-05-01 14:59:13 -07:00
James Lu
69cd3cfbf8
relay: fix race conditions when multiple networks disconnect simultaneously
2016-05-01 14:59:13 -07:00
James Lu
3bb1208e74
core: move toLower to Irc ( #199 )
2016-04-30 16:57:38 -07:00
James Lu
2fe2e9c8c4
core: move isOper, checkAuthenticated to Irc ( #199 )
2016-04-30 16:54:11 -07:00
James Lu
4bd4c23a08
networks: also remove coreplugin call
2016-04-30 16:50:04 -07:00
James Lu
78f8a2fc8d
core: move isManipulatableClient, getHostmask to Irc
2016-04-30 16:44:37 -07:00
James Lu
064cb9b6aa
core: move reverseModes, joinModes into Irc
2016-04-30 16:33:46 -07:00
James Lu
a069ce8cb4
Unbrick loglevel changing ( Closes #208 )
2016-04-23 11:06:08 -07:00
James Lu
42718ed323
relay: Allow IP sharing to be toggled per network
...
Via a new "relay_no_ips" option in server blocks. Closes #201 .
2016-04-18 12:29:15 -07:00
James Lu
4c83bfc3ef
relay: don't error if irc.pseudoclient hasn't been initialized yet
2016-04-18 11:52:01 -07:00
James Lu
8f32727a3f
Move rehash into core ( Closes #178 )
2016-04-09 09:54:04 -07:00
James Lu
9fde35fd77
relay: handle server name conflicts more correctly
...
1) Clear the relay servers cache
2) Disconnect
3) Raise a proper exception so other parts of relay don't carry on with undefined behaviour
2016-04-02 12:46:45 -07:00
James Lu
c01b449741
relay: treat network names case-sensitively
2016-04-02 12:15:53 -07:00
James Lu
44b102ffce
networks: allow all opers to run 'autoconnect'
2016-04-02 09:48:49 -07:00
James Lu
fab404f8d6
Merge branches 'master' and 'wip/relay-fixes' into devel
2016-04-01 18:32:19 -07:00
James Lu
3a8b0aa123
relay: catch OSError too when loading DB
2016-04-01 18:31:53 -07:00
James Lu
9e33081bc9
relay: fix typo in comment
2016-03-30 21:22:18 -07:00
James Lu
d21344342d
relay: experimental fix for #183
2016-03-30 18:33:44 -07:00
James Lu
b100f30cfe
fantasy: break if IRC object isn't ready
2016-03-27 21:46:10 -07:00
James Lu
4a0ee6f54c
relay: be more thread-safe via dict.copy()
2016-03-26 18:19:08 -07:00
James Lu
08c3b99dfb
relay: fix ambiguous logging in KICK blocking
2016-03-26 17:56:11 -07:00
James Lu
aedb05608e
relay: actually, just kill handle_spawnmain
...
this is causing more problems than it is worth
2016-03-25 17:09:40 -07:00
James Lu
ce3d3cf697
relay: check to make sure network is ready before handling spawnmain
2016-03-25 16:59:27 -07:00
James Lu
0bb54d88e0
New servprotect plugin (anti-KILL/SAVE flood)
2016-03-25 16:51:02 -07:00
James Lu
9fe3373906
relay: get rid of kill/save protection
2016-03-25 16:39:06 -07:00
James Lu
75ec95b8d3
Merge branch 'master' into devel
2016-03-25 16:01:34 -07:00
James Lu
46922ce879
relay: remove dead networks' servers from the servers index unconditionally
...
For #183 .
2016-03-25 15:59:37 -07:00
James Lu
c86a02e044
relay: use IrcChannel.getPrefixModes
2016-03-19 17:54:42 -07:00
James Lu
8135f3a735
core: Depluralize prefixmodes mappings ( #168 )
...
This is an API breaking change. I really don't know why I made these keys plural to start, since it only made things more complicated. Prefix modes are not pluralized in the list of supported modes of each IRCd.
2016-03-19 17:25:04 -07:00
James Lu
a8303d0110
commands: sort channel list in 'showuser' output
2016-03-14 14:35:09 -07:00
James Lu
359bfcd9da
bots: map 'msg' command to 'say' too
2016-03-07 21:37:08 -08:00
James Lu
7f5bc52152
relay: fix errors in KILL handling when target isn't in any relay channels
2016-03-07 18:10:59 -08:00
James Lu
9b0db81068
changehost: modularize, add a command to apply cloaks now, match IPs too
...
Closes #167 .
2016-03-05 10:11:47 -08:00
James Lu
5fed4629a6
networks: remove networks with autoconnect off in 'disconnect'
...
Closes #162 .
2016-03-05 09:42:51 -08:00
James Lu
8ac5436152
relay: allow admins to destroy channels hosted on other networks
...
Closes #160 .
2016-03-05 09:31:59 -08:00
James Lu
1ce2725f1e
bots: update help for 'msg' command (reflect changes made for #161 )
2016-02-27 19:07:03 -08:00
James Lu
54dc51aed4
bots: make source client names optional ( Closes #161 )
2016-02-27 19:05:06 -08:00
James Lu
34ca973047
relay: cleanup, consistently include the function in log.debug calls
2016-02-27 18:37:40 -08:00
James Lu
a740163cbe
relay: implement DB exporting using threading.Timer, similar to classes.Irc.schedulePing
...
Fixes #165 (exportDB threads not dying on unload)
2016-02-27 18:13:26 -08:00
James Lu
d531201850
Merge branch 'master' into devel
2016-02-27 17:47:55 -08:00
James Lu
393466498e
opercmds: fix wrong help message for KILL
2016-02-26 07:16:39 -08:00
James Lu
ae8f369f2e
relay: only show networks that are actually connected in LINKED
...
Closes #163 .
2016-02-21 20:04:53 -08:00
James Lu
de1a9a7995
relay: various cleanup
2016-02-20 19:29:52 -08:00
James Lu
df23b79780
commands: reformat 'showuser' output, and show services login info ( #25 )
2016-02-20 18:24:29 -08:00
James Lu
cf15bed58d
classes: add services_account field in IrcUser ( #25 ), default 'identified' attribute to empty string instead of None
2016-02-07 18:11:09 -08:00
James Lu
0d4655c381
core: support multiple channel loggers with DIFFERENT log levels & fix example conf ( #83 )
2016-01-30 23:35:51 -08:00
James Lu
cf1de08457
commands: support rehashing channel loggers
2016-01-23 13:52:37 -08:00
James Lu
2503bd3ee5
commands: In rehash, use irc.disconnect() to disconnect networks removed from conf
2016-01-23 13:52:37 -08:00
James Lu
f25c260937
relay: sort channel links in LINKED output
2016-01-20 07:14:49 -08:00
James Lu
8f5073d111
opercmds: simplify code for KILL and KICK
2016-01-16 17:29:18 -08:00
James Lu
3d0bf18001
protocols: rename topicClient -> topic; topicServer -> topicBurst
...
This is one of the few commands that I won't consolidate at this time, because there is actually a difference in how most IRCds handle topic bursts and normal topic changes
2016-01-16 17:09:52 -08:00
James Lu
5ccf204c75
protocols: consolidate modeClient and modeServer into mode()
2016-01-16 17:08:17 -08:00
James Lu
cb467bcfdb
plugins, docs: update to use irc.proto.kill
2016-01-16 17:03:58 -08:00
James Lu
983edaf8d0
plugins, docs, test suite: update to use irc.proto.kick
2016-01-16 16:59:28 -08:00
James Lu
ee65ac60e1
protocols: rename sjoinServer(...) -> sjoin(...)
2016-01-16 16:53:46 -08:00
James Lu
9a61e64dfc
protocols: squitServer(...) -> squit(...)
2016-01-16 16:53:06 -08:00
James Lu
5324475d18
protocols: quitClient(...) -> quit(...), partClient(...) -> part(...)
2016-01-16 16:51:54 -08:00
James Lu
7e5284969d
protocols: rename nickClient(...) -> nick(...)
2016-01-16 16:51:04 -08:00
James Lu
3a53005d8c
protocols: messageClient -> message, noticeClient -> notice
2016-01-16 16:44:23 -08:00
James Lu
20cb65e668
protocols: rename awayClient -> away
2016-01-16 16:40:36 -08:00
James Lu
b4e5c57a35
protocols: rename inviteClient(...) -> invite(...)
2016-01-16 16:38:27 -08:00
James Lu
acdd7dbb78
protocols: rename joinClient(...) -> join(...)
2016-01-16 16:36:45 -08:00
James Lu
f5a828c4af
relay: store creation TS in DB, showing it in LINKED if exists
...
Closes #155 .
2016-01-09 20:30:54 -08:00
James Lu
989f1f4f64
plugins: use irc.disconnect() to disconnect networks ( #152 )
2016-01-09 20:25:51 -08:00
James Lu
27673aba0e
opercmds: add KILL command ( #90 )
2016-01-09 18:34:57 -08:00
James Lu
b0a405c6e0
opercmds: add 'checkban' command - ircmatch frontend for checking bans
2016-01-03 21:05:30 -08:00
James Lu
a3a27a9031
Merge chancmds plugin into opercmds
2016-01-03 19:59:48 -08:00
James Lu
43404c26dc
opercmds: add JUPE command ( #90 )
2016-01-03 11:45:01 -08:00
James Lu
9ac9bc1137
changehost: check users' real hosts instead of their displayed vHosts
2015-12-31 18:46:09 -08:00
James Lu
eac934c237
classes: sort code, move nickToUid, clientToServer, isInternalClient, isInternalServer into the Irc class
...
The following BREAKING changes are made:
utils.nickToUid(irc, nick) -> irc.nickToUid(nick)
utils.isInternalClient(irc, uid) -> irc.isInternalClient(uid)
utils.isInternalServer(irc, uid) -> irc.isInternalServer(uid)
utils.clientToServer(irc, uid) -> utils.getServer(uid)
2015-12-31 17:28:47 -08:00
James Lu
8fb76f96ff
changehost: whoops, numbers are allowed in hostnames too
2015-12-30 17:08:38 -08:00
James Lu
0c6a658317
New Changehost plugin, with flexible on-connect vHost settings using hostmask matches and substitution
2015-12-30 16:53:53 -08:00
James Lu
add409789a
relay: fix incorrect logging in changing client fields
2015-12-30 15:53:05 -08:00
James Lu
d7fdeed19d
relay: remove use of sched in exportDB
...
We were using sched and threading together? How inefficient...
2015-12-29 11:14:19 -08:00
James Lu
cc79871eaf
exec: add some more default imports for convenience
2015-12-29 11:14:19 -08:00
James Lu
59c9b127a3
relay/world: remove need for world.schedulers
2015-12-26 17:06:28 -08:00
James Lu
bf7522697a
Rename PYLINK_CLIENT_OPERED hook -> CLIENT_OPERED
...
To be consistent, any PYLINK_* hooks should internal hooks sent out by PyLink itself. CLIENT_OPERED, on the other hand, requires protocol modules to send it and thus, shouldn't be labeled as a PYLINK_* hook.
2015-12-26 15:41:22 -08:00
James Lu
04275d1dfa
relay: only show creator in LINKED if the value exists
2015-12-26 15:24:06 -08:00