Commit Graph

494 Commits

Author SHA1 Message Date
Ivo Julca
10bb83bf3c Improvements to command broadcast API
- Method `this.runBroadcast()` has been split from `this.canBroadcast()`.
It's now the only method handling command-usage and intended as the main API
for synchronous commands. Async commands will execute both separately.
Note that the `suppressMessage` parameter is now passed to `runBroadcast`.

- The semantics of `broadcasting` have been similarly split.
`this,broadcastMessage` will be set to a truthy value when `this.canBroadcast` is run.
`this,broadcasting` will only be set to `true` once `this.runBroadcast` is executed.
2016-04-02 15:46:13 -05:00
Juanma Serrano
77e0a17082 Update /git command: it's only node.js now
io.js has been merged into node.js anyway and all information leads to node.
2016-04-01 11:20:43 +02:00
Bär Halberkamp
84d6d328fc Fix another oversight in randpoke 2016-04-01 03:54:01 +02:00
Bär Halberkamp
a0caee2a07 Fix this.broadcasting not being set in the datasearch commands 2016-04-01 00:52:16 +02:00
Ivo Julca
87c982e2fe Fix misleading comment in datasearch header
The commands provided are never synchronous.
2016-03-31 16:53:09 -05:00
Ivo Julca
f901bfe31e Fix data load in informational plugins
- Single-process `datasearch` requires mods.
- `info` requires Gen 6 data.
2016-03-31 16:50:50 -05:00
Ivo Julca
6173d622d4 Info plugin no longer requires mod data 2016-03-31 14:01:17 -05:00
Ivo Julca
bbb58d5a29 Add a test for old-gen /learn 2016-03-31 14:01:11 -05:00
Bär Halberkamp
4b326d75eb Fix /learn not working, and filter out more bogus input 2016-03-31 20:12:25 +02:00
Bär Halberkamp
0e206dcd42 Make /learn multiprocess using the same process as /ds 2016-03-31 15:59:36 +02:00
Bär Halberkamp
7f4a18f90f Mafia: add HTML escaping
thanks slayer95 for pointing this out
2016-03-30 13:37:31 +02:00
Bär Halberkamp
8efcad4e41 Mafia: Show list of players and roles every day 2016-03-30 02:46:09 +02:00
Bär Halberkamp
9ae7f1887a Mafia: games start on day 1 2016-03-30 02:10:40 +02:00
Bär Halberkamp
e0598ff171 Mafia: fix oversights 2016-03-30 02:09:30 +02:00
Guangcong Luo
15a00f5e57 Merge pull request #2453 from Slayer95/process-manager
Enhance process management via PM API
2016-03-29 13:41:56 -07:00
Bär Halberkamp
c03df4db8d ygo: move the broadcast check to the callback function 2016-03-29 04:33:38 +02:00
Bär Halberkamp
998892332c Mafia: change the pregame window when the game starts 2016-03-29 04:18:54 +02:00
Bär Halberkamp
0faca2d8da Display pregame when users join 2016-03-29 04:18:54 +02:00
Bär Halberkamp
22b8349957 Mafia: Fix one mafia vote counting for everyone 2016-03-29 04:18:54 +02:00
Bär Halberkamp
d51b5041da Mafia: make the game actually progress once day is reached 2016-03-29 04:18:54 +02:00
Arburator
dc8a328118 minute(s) not minutes [poll.js]
"The poll timer was turned on: the poll will end in 1 minutes"
2016-03-28 17:17:56 +01:00
Bär Halberkamp
e3e89bb3bd ygo: Better messages when query cannot be found 2016-03-26 16:40:14 +01:00
Bär Halberkamp
285462e9f2 Mafia: make the different cop variations show up in the pregame 2016-03-24 20:13:31 +01:00
Bär Halberkamp
ccdc293d9f Mafia: add 'dethy' as a shortcut to make a dethy game 2016-03-23 21:01:50 +01:00
Bär Halberkamp
92b49254ee Mafia: fix the godfather 2016-03-23 21:01:50 +01:00
Bär Halberkamp
df33a0150e Mafia: add the Goon 2016-03-23 21:01:50 +01:00
Ivo Julca
14d0716e7e Refactor Simulator to use the PM API
This removes Simulator.battles in favor of each process' tracking their own battles.
2016-03-23 02:44:46 -05:00
Ivo Julca
84d4f9dc83 Refactor /dexsearch and /processes to use the PM API 2016-03-23 02:44:34 -05:00
Ivo Julca
a8b76becdb TCG TableTop: Minor refactor to take advantage of arrow functions 2016-03-22 21:37:35 -05:00
Ivo Julca
3cd1217f18 TheStudio: replace usage of toArrayOfArrays by Array.from 2016-03-22 21:20:10 -05:00
Bär Halberkamp
365462a85c Dexsearch: Correctly broadcast dexsearches 2016-03-20 04:43:42 +01:00
Guangcong Luo
9db904f691 Fix crash in dexsearch 2016-03-16 11:40:42 -04:00
Guangcong Luo
eae332864f Fix crash in dexsearch crashlogger 2016-03-16 11:36:51 -04:00
Guangcong Luo
044f4f84e9 Fix crash in dexsearch 2016-03-16 09:44:14 -05:00
Guangcong Luo
e87fd32550 Refactor TeamValidator
The callback code in TeamValidator and the functions that use it have
been refactored to use Promises.

Pretty much all signatures have been changed, for instance:

    TeamValidator.validateTeamSync(format, team)
    -> TeamValidator(format).validateTeam(team)

    TeamValidator.validateTeam(format, team, callback)
    -> TeamValidator(format).prepTeam(team) // returns a Promise

Validators are no longer cached since they're really lightweight. They
contain a format and a Tools instance, and Tools instances are already
cached in Tools anyway. This saves a tiny bit of RAM in exchange for a
tiny bit of CPU time, but more importantly makes the code more
readable.

I'm introducing a new pattern/API for managing the parts of code with
child processes - their process managers are now at .PM and are now
opt-in, so you can use them synchronously without needing to spawn
any processes.

Fixes #2448
2016-03-16 09:43:59 -05:00
Bär Halberkamp
4ca5c1d2c8 Remove /mtg and allow /ygo in all rooms
The only wiki we could use sucks, and I'd rather only have a good command usable everywhere
2016-03-16 02:10:23 +01:00
Bär Halberkamp
bc00dab2f2 Convert dexsearch.js to be multiprocess 2016-03-15 19:47:18 +01:00
Ivo Julca
75b632fed0 Fix crashes in dexsearch 2016-03-11 07:54:28 -05:00
Ivo Julca
12e9ca78da Remove usage of Date|Function methods implemented by Sugar.js
Implements Tools#toTimeStamp to support Node.js builds without ICU support,
which are currently the default. If/when that changes, we should be able to
use Date#toLocaleDateString, given that appropriate locale options are used.
2016-03-09 16:55:47 -05:00
Ivo Julca
66c00d29af Remove usage of String|Number methods implemented by Sugar.js
Implements Tools#toDurationString to replace Number#duration.
2016-03-09 16:55:40 -05:00
Ivo Julca
0281176fd1 Remove usage of Array|Object methods implemented by Sugar.js
Adds a dependency to shim Object.values until it's natively available.
2016-03-09 16:55:34 -05:00
Marty-D
c70bc2da94 Avoid all potential Thousand Arrows crashes from info commands 2016-03-07 21:45:29 -05:00
Ivo Julca
2b391ad824 Fix informational commands crashing for Thousand Arrows 2016-03-07 21:22:15 -05:00
Guangcong Luo
9111f2635f Split dexsearch off to its own chat plugin 2016-03-03 05:25:13 -06:00
Guangcong Luo
8474edccec Merge pull request #2436 from bumbadadabum/mafia3
Various updates
2016-03-02 04:12:30 -06:00
Bär Halberkamp
55b63a9e35 Rename the TG room for the YGO plugin 2016-03-02 06:03:33 +01:00
Guangcong Luo
e54fe99e37 Refactor Context#getLastIdOf to User#getLastId
Also add a User#getLastName

These functions allow punishment commands to show a user's userid
even if they try to avoid that by logging out.
2016-02-28 03:25:35 -06:00
Guangcong Luo
60ecc87ab9 Merge pull request #2431 from bumbadadabum/mafia3
Add permissions for roomgames
2016-02-26 15:25:50 -06:00
Bär Halberkamp
3465829e22 Add permissions for roomgames 2016-02-26 22:19:19 +01:00
Quinton Lee
ed36908033 The Studio plugin: update /aotd quote
It can now be used by drivers+.
2016-02-24 22:51:42 -06:00