-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathCHANGELOG
344 lines (303 loc) · 13.7 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
1.3.6 @ 2019-11-02
- Support legacy protocol 22
- New setting, worldEatMult
- New setting, worldEatOverlapDiv
- New setting, playerSplitSizeDiv
- New setting, playerSplitDistance
- Use size instead of mass for merge time calculation
1.3.5 @ 2019-07-29
- Add message length checks to modern protocol
- Move sqrt(2) and sqrt(1.3) into constants in Misc.js
- Fill JSDoc for context argument in default commands
- Formatting
1.3.4 @ 2019-07-13
- Fix autosplitting never wanting to split beyond max - 1
- Setting negative size to a cell will now immediately cause crash
1.3.3 @ 2019-07-09
- Implement legacy protocol 21's different Pie leaderboard message netcode
- POTENTIALLY BREAKING: Define Teams gamemode's type as 2 instead of 1, to avoid agar.io registering it as the new Team mode with royale-like properties
- Language refactoring
1.3.2 @ 2019-07-06
- Fix crash where a connection with no protocol gets added into global chat and gets sent a message
- Fix server message having a black color
- Rename definition interface Range to Rect to avoid confusion with browser definition of same name
1.3.1 @ 2019-06-26
- Fix Q presses not registering for legacy protocol
- When equal size playercells rigid collide, the distance traveled of both is half the size; retroactively apply this to bot splitting
1.3.0 @ 2019-06-16
- Fix command killall improperly querying for players in world
- Fix command setting being susceptible of code injections
- Fix inconsistency for server load on modern protocol
- New setting, worldPlayerBotSkins, which will be used if a bot's skin in name is *
- New setting, playerAllowSkinInName, which will allow players to set skin via name where enclosed in <>
- Colors are internally defined as number hex instead of an interface
- Decrease lowlight / highlight difference in Teams
- Streamline long name trimming
- Formatting
1.2.5 @ 2019-06-05
- Fix crash when executing worldid player command
- Fix joinworld player command not letting player with no world join
1.2.4 @ 2019-06-03
- Support legacy protocol 21
- Support modern protocol 3
- Fix playercells staying in one place when split at the same tick
- Fix free-roaming not working
- New setting, worldMinCount, prevents empty worlds from destroying
- Updated setting ejectedSize to match vanilla
- Updated setting ejectingLoss to match vanilla
- Format PlayerBot.canSplitkill
- Format Ticker
- If setting minionName is "*", the minion spawning name will include the following player's name
- Minions will not spawn if the following player is not alive
- Replace QuadTree.getItems to getItemCount as getting all items is useless
- Use util.inspect for eval command
- Routers now close when the server handle closes
1.2.3 @ 2019-04-26
- Fix crash when executing stats command
- Fix bad control flow when handle isn't running and executing stats command
- New setting, playerSplitCap, to control maximum amount of possible splits in one tick
- New setting, playerEjectDelay, to control ejecting speed
1.2.2 @ 2019-03-27
- Fix crash on ping or pong websocket event due to bad bind
- Moved Router from primitives to sockets
- Removed settings listenerMinLegacyProtocol and listenerMaxLegacyProtocol
- Updated command eval to show error stack on thrown error
- New command, crash
- Updated JSDoc for QuadTree for template support
- Minor bug fixes with log handler
1.2.1 @ 2019-03-25
- Clean up gitignore
- Add missing JSDoc to CLI log handler
- Renamed Ticker.isRunning to running
- Renamed definition Position to Point
- Refactored CommandList JSDoc for better type recognition in default commands
- Refactored default commands
- Refactored usage of first player cell for player name and color
- Updated stats command
- Moved registering gamemodes, protocols and commands to be done in CLI
- Fixed bug where internal routers' ACTIVE and DORMANT columns in routers command are NaN
- Removed command pause
- Removed unnecessary requires
- Map IPv6-mapped IPv4 remote addresses to true IPv4
- Check connections for forbidden IPs in Listener update
- New command, forbid
- New command, pardon
- Renamed setting serverChatEnabled to chatEnabled
- New setting, chatCooldown
- New setting, chatFilteredPhrases
- Prepare for NPM release
1.2.0 @ 2019-02-17
- Fix crash when leaving world
- Fix crash when spectating a player that gets destroyed
- Upon exploding the split angles are now random
- Support legacy protocol 20
- SIGINT on command stream will close the server. Two SIGINTs for this are not needed anymore
- Implement worldPlayerBotNames setting
- Renamed setting serverUpdateFrequency to serverFrequency
- New command, players
- Updated routers command
- Updated setting command to Suggest setting names if given doesn't exist
- Renamed command killminion to rmminion
- Renamed command killbot to rmbot
- Formatting and language changes
1.1.12 @ 2018-11-12
- Fix crash when leaving world then using worldid chat command
- Implement modern protocol revision 2
- Client gets its visible cells and leaderboard cleared when leaving a world
- Formatting
1.1.11 @ 2018-08-31
- Fix wrong usage of unsigned integers for cell position in legacy protocol
- Fix crash when matchmakerNeedsQueuing is on
- Fix virus count being able to exceed virusMaxCount
- Upgraded uws dependency version
- Refactored stats command
- Formatting
1.1.10 @ 2018-08-18
- Removed delay between commands, no idea why was it there in the first place
- Default gamemodes are now registered at ServerHandle instead of GamemodeList
- Renamed PlayerRouter to Router
- Abstracted the table generating function of help
- New server command, routers - the equivalent of Ogar's playerlist for OgarII
- Rename Gamemode.gamemodeType to type
- Rename Gamemode.gamemodeName to name
- Actually implement Protocol.type
- Added Protocol.subtype
- Renamed ProtocolHandle to ProtocolStore
- Renamed Listener.allPlayingRouters to routers
- Renamed Listener.addPlayingRouter to addRouter
- Renamed Listener.removePlayingRouter to removeRouter
1.1.9 @ 2018-08-16
- Fix executing an empty string as command killing the command stream
- Update README
- Remove all comments
1.1.8 @ 2018-08-12
- Rename setting gamemode to serverGamemode
- New setting, serverChatEnabled
- Replace \uNNNN unicode codes with shorter \xNN variant
1.1.7 @ 2018-08-8
- Changed setting playerMergeTime's default
- Format shouldClose function on bots
- Remove debug console.log
1.1.6 @ 2018-08-7
- Fixed player cell merging time yet again
- Fixed the view area being twice larger than it should be, agar.io was trolling me
1.1.5 @ 2018-08-6
- Renamed setting minionStartSize to minionSpawnSize
- Teams gamemode now uses minionSpawnSize for spawning minions
1.1.4 @ 2018-08-6
- Fixed new player cell merging time
- Refactored and fixed up the legacy protocol
- Changed setting finderMaxLevel's default from 32 to 16
- Changed setting finderMaxItems's default from 32 to 16
- New setting, listenerMinLegacyProtocol
- New setting, listenerMaxLegacyProtocol
- New setting, minionStartSize
- Renamed setting mapX to worldMapX
- Renamed setting mapY to worldMapY
- Renamed setting mapW to worldMapW
- Renamed setting mapH to worldMapH
- Renamed setting finderMaxLevel to worldFinderMaxLevel
- Renamed setting finderMaxItems to worldFinderMaxItems
- Renamed setting safeSpawnTries to worldSafeSpawnTries
- Renamed setting safeSpawnFromEjected to worldSafeSpawnFromEjectedChance
- Renamed setting playerDisposeDelay to worldPlayerDisposeDelay
- Renamed setting ticksPerSecond to serverUpdateFrequency
- Renamed setting playerBotsPerWorld to worldPlayerBotsPerWorld
- Renamed setting minionsPerPlayer to worldMinionsPerPlayer
- Renamed setting maxWorldCount to worldMaxCount
1.1.3 @ 2018-08-5
- Fix fatal crash in legacy protocol when sending chat message
- Fix fatal crash in legacy protocol when sending stats
- Fix bad control to minions in modern protocol
1.1.2 @ 2018-08-5
- Implement a new "Modern" protocol, which bases around using the minimal amount of different message types, and conserving size by further using flags
- Fixed the "virus curling bug" mentioned in issue #16
- Simplify player's world referencing
1.1.1 @ 2018-08-2
- Replace String, Number and Boolean with string, number and boolean in docs
- Sort out typedefs by having a single global definition typescript
- Implement multiple protocol handling - Connection just links up WebSocket and Player now
- Implement legacy protocol handle
- Simplify player/connection references
1.1.0 @ 2018-07-31
- Add this changelog file
- Refactor CLI settings file manipulation
- Use const & let instead of var wherever it is
- GamemodeList is and was not a debug item
- New setting, listenerBannedIPs array
- Implement per-IP banning (range banning might be tricky to implement later on)
- Rename PlayerRouter.isDisconnected to disconnected
- Add PlayerRouter.shouldClose abstract function
- Calling Connection.close will either kill the connection or destroy the router depending on the connection status
- Minions now don't get put in teams in Teams gamemode
- Simplify Misc.randomColor
- Fix fatal QuadTree flaw of branches not merging properly
- Minor QuadTree optimization
- Overall minor bugfixing and refactoring
1.0.5 @ 2018-05-4
- Fix two fatal player bot errors where division with 0 occur
- Implement new merging timing
1.0.4 @ 2018-04-30
- Player bot improvements
- Don't show the matchmaker queue messages when queuing is not necessary
1.0.3 @ 2018-04-28
- Three new chat commands - worldid, leaveworld, joinworld
- Make Gamemode.gamemodeType a static property
- Actually use the World.frozen property
- New gamemode, Last Man Standing
- Add a world-level chat channel
- Add feedback in chat when a match gets found
1.0.0 @ 2018-04-26
- At ServerHandle, properly set settings given at constructor
- New setting, ticksPerSecond
- Updated behavior to reflect the addition of ticksPerSecond
- New gamemode functions, onPlayerJoinWorld and onPlayerLeaveWorld
- Implement Teams mode
0.9.19 @ 2018-04-20
- New setting, mothercellActiveSpawnSpeed
- Use proper default value for setting playerSpawnSize
- Temporary fix for crash when a playing router attempts spawning after it gets detached from world
- Have player bots continue following split prey until split cooldown expires
- Fix crash because of player bots somehow get 0 distance to cell
- Make help readable with padding
- Minor updates to stats command
- Add new commands: pause, resume, mass, merge, kill, pop, addminion, killminion, addbot, killbot
0.9.18 @ 2018-04-16
- Logging settings are now in a standalone JSON file
- A re-run won't be necessary for running the CLI without settings
- Added new setting, listenerMaxConnectionsPerIP, plus implementation
- Removed json-beautify dependency thanks to SuperOP535
- listenerAcceptedOrigins is now an optional string array
- Fixed the 'x in queue' message showing when matchmakerNeedsQueuing is false
- Fixed matchmaker prioritizing new worlds when too many bots are in one
- Worlds now self-destruct when they have zero external players
- Fixed stats command's bots representation not working
0.9.17 @ 2018-02-17
- Implement dynamic gamemode list, made for plugins
- Add setting for gamemode
- Fix eval command not showing return result
- Have a single endpoint for changing the version
- Fix fatal typo on World.prototype.destroy
Nightly @ 2018-02-17
- Implement Q-based minion controls
- Disconnect inactive connections
- Add two new CLI-only commands, reload and save
- Disable logging DEBUG and ACCESS levels to console by default
- Minor refactoring
- Implement matchmaking
- Avoid protocol version matching when parsing mouse position message
- Three new default commands: eval, test & stats
0.9.16 @ 2018-02-16
- Implement commands, ready for plugin support
- Logging updates
- A couple refactors
Nightly @ 2018-02-15
- Implement logging to file
- Fix ServerHandle stopping logic
- Set setting mothercellCount's default to 0
- Don't have player bots split on very small cells
- Check for bad number at Cell constructor
- Use safe spawning positions for pellets
0.9.15 @ 2018-02-15
- Minor CLI updates
- Remove log entries of when a new player gets added or removed
- Add playerBotsPerWorld setting
- Add minionsPerPlayer setting
- Implement the abstract bot class
- Implement minions (WIP)
- Implement player bots (WIP)
- Update cell eat size multiplier - from 1.14075183 to 1.140175425099138
- Optimize FFA's leaderboard compiliation time - use native sorting
- Fix agar.io recognizing viruses/mothercells as regular cells
- Minor refactoring at PlayerRouter
- Minor refactoring of where player actions get called
- Fix the server throwing up the connection because of my Cigar's 200 char length chat textbox
- Minor refactoring at Listener
- Actually use the allPlayingRouters array
- Split the Player.prototype.update function into two - updateViewArea and updateVisibleCells
0.9.13 @ 2018-02-14
- Minor refactoring in a couple places
- Implement mothercells
- Implement the chat
- Implement autosplitting
Nightly @ 2018-02-13
- Call gamemode methods when necessary
- Define messages for the leaderboard
- Define the server stats type
- Properly dispose of players & worlds
- Fix viruses not setting the cell that ate it
- Implement maximum connections count
- Implement FFA's leaderboard
- Fix the decay being off
- Fix Player.prototype.updateState setting bad states
0.9.11 @ 2018-02-12
- Implement viruses and related settings
- Fix border set message inconsistency
- Fix cell bouncing inconsistency
0.9.10 @ 2018-02-11
- Cell splitting ejecting & merging works
0.9.7 @ 2018-02-10
- Cell eating works
- Setup for splitting
0.9.5 @ 2018-02-10
- Spawning and moving works