Commit Graph

3962 Commits

Author SHA1 Message Date
LCastr0
2976eab5bf Added particles 2017-01-14 20:06:12 -02:00
LCastr0
8c11f2c4cb Added True Love Pet 2017-01-14 18:57:40 -02:00
cnr
ef53ae5737 Reinstate missing _showInterface check 2017-01-14 13:59:06 -06:00
cnr
5ba3fac58c Check twofactor status instead of interact events 2017-01-14 01:29:37 -06:00
LCastr0
babc72a87c Fixed lore 2017-01-13 23:31:22 -06:00
samczsun
1a5a530133 Fix Evolution crash 2017-01-13 23:30:13 -06:00
cnr
bb2477676c Add missing diff from PP-Bizon fix 2017-01-13 14:24:48 -06:00
cnr
89ccaf4323 Disable hotbar items when authenticating with 2FA 2017-01-13 01:14:31 -06:00
samczsun
251eb2e53e Let's be legal 2017-01-12 23:22:40 -06:00
samczsun
e82d1b5885 Remove spigot as a dependency from ServerData 2017-01-12 23:22:39 -06:00
LCastr0
2bb8023b47 Changed chest spawn animation 2017-01-12 18:20:19 -06:00
LCastr0
4a803c1482 Fixed NPE, weapon name is now back at the lore 2017-01-12 18:20:14 -06:00
LCastr0
85eb38032f Added minestrike chest to treasure hunt track 2017-01-12 18:50:55 -02:00
LCastr0
9385144566 Lowered the cost from 20000 to 10000 2017-01-12 16:52:36 -02:00
LCastr0
353cefe949 Added weapon name after skin name
Changed lore and icon of MS chest
2017-01-12 16:36:29 -02:00
Sam
3d64319180 Missing commands 2017-01-12 18:03:40 +00:00
Sam
8d47e80066 Merge remote-tracking branch 'refs/remotes/origin/develop' into feature/gem-hunters 2017-01-12 18:03:07 +00:00
samczsun
132036bd17 Move Constants to common 2017-01-11 20:42:46 -06:00
samczsun
39ba03d1b4 Convert to UtilServer.isTestServer 2017-01-11 20:29:36 -06:00
samczsun
19ac8f0c3b Create framework for proper test network 2017-01-11 20:29:36 -06:00
samczsun
5c4cc48e86 More QA changes 2017-01-11 19:50:26 -06:00
samczsun
4fd92a3402 Fix remainder of parties bugs 2017-01-11 19:50:26 -06:00
samczsun
56d4ed9e11 Parties rewrite
Basically everything got changed. Also Portal has a slightly better API
now
2017-01-11 19:50:26 -06:00
cnr
91773de97e Don't use metadata for two-factor auth 2017-01-11 16:17:03 -06:00
cnr
cea08cae67 Merge branch 'update/cosmetics-balloons' into develop 2017-01-11 15:32:41 -06:00
xXVevzZXx
5a2ed59a38 Make Strike Games an actual game, disable Hunger and remove food from loot 2017-01-11 15:29:50 -06:00
Shaun Bennett
28a83ef722 Don't delete old client when being replaced (solves enjin listener issue) 2017-01-11 15:28:59 -06:00
samczsun
cbe238c83d Don't give book on join 2017-01-11 15:11:57 -06:00
samczsun
716c77451e Update the right titles 2017-01-11 15:11:57 -06:00
samczsun
fbaeffc96e Remove EventHandler annotation 2017-01-11 15:11:57 -06:00
samczsun
cb13fb1ccc 1.8 titles! 2017-01-11 15:11:57 -06:00
samczsun
bcea0044e8 Animated Titles! 2017-01-11 15:11:57 -06:00
Nate Mortensen
0bb01d39b6 Fix PP-Bizon skin 2017-01-11 15:07:48 -06:00
Nate Mortensen
8384c47e53 Create Lifetime system for managing Listeners with a defined duration.
This commit introduces a Component system focused around Games, which is completely
backwards compatible, as well as designed to be flexible enough for later improvements
such as dependency injection. Each GameState is associated with a phase of the
PhasedLifetime that each Game has. Components can be registered with a specific phased
or the entirety of the Lifetime. Refer to the javadocs for Lifetime and PhasedLifetime
for more details.  Currently the main two Component types are ICommand and
ListenerComponent.

This commit includes the first refactoring into using this system, which is replacing
the Wizards minigame's usage of Miniplugin with a Lifetimed Component, allowing for
the shop to be appropriately registered and unregistered.  This change allows for
Wizards to be run more than once on the same server instance.  Previously, attempting
to register the Miniplugin twice would result in the minigame failing to start after
the initial registration.

This commit additionally includes slight refactoring within GameCreationManager as
required for the Lifetime system to function correctly.  These changes ensure that
Games are only disabled once, whereas before they could be repeatedly disabled.
The previous implementation of disable(), along with the classes that override it,
functioned correctly despite being called several times.

Finally, this commit adds in changes to the pom to allow for unit testing.
2017-01-11 15:07:47 -06:00
LCastr0
0a655932af IntelliJ removed an import after I commited last time 2017-01-11 15:50:53 -02:00
LCastr0
5e85f48c87 Fixed balloons still being added to chests 2017-01-11 01:54:53 -02:00
LCastr0
21473a7d82 Fixed merge conflict 2017-01-10 21:27:47 -02:00
LCastr0
d3e6a094e5 Removed balloons for now, will be in the next update
Updated cosmetics menu
Added weapon name to skin lore
2017-01-10 21:08:03 -02:00
Sam
64026f81ff Merge remote-tracking branch 'refs/remotes/origin/develop' into feature/gem-hunters 2017-01-08 21:12:28 +00:00
Sam
0218965bee Villager trading and loot upgrades 2017-01-08 15:44:04 +00:00
cnr
cbc5ed491c Check two-factor status for every player on login 2017-01-05 19:16:28 -07:00
cnr
96c15376aa Use default 2FA window size (3) 2017-01-05 15:20:10 -07:00
cnr
435abbba08 Allow builders to use 2FA 2017-01-05 10:48:56 -07:00
cnr
a2472f45b4 Cancel commands when authenticating with 2FA 2017-01-05 10:44:03 -07:00
cnr
3af401ee8f Implement two-factor authentication 2017-01-04 20:33:09 -07:00
Sam
571840e249 Lots more changes 2017-01-02 14:40:13 +00:00
LCastr0
17bdfe6814 Started on the flying mechanics stuff 2016-12-30 12:44:49 -02:00
LCastr0
1aca03b22d Added balloons to normal chests 2016-12-30 12:17:52 -02:00
LCastr0
ef7bbfe7eb Added Balloons to omega chest 2016-12-30 12:10:26 -02:00
LCastr0
9578864f8a Added display item 2016-12-29 21:49:20 -02:00
LCastr0
9ec8835374 Fixed block balloons! 2016-12-29 21:40:02 -02:00
LCastr0
16e40c2896 Added shotgun skin 2016-12-29 19:18:09 -02:00
LCastr0
fcec0399cd Added remaining skins to chest 2016-12-29 19:08:31 -02:00
LCastr0
5f0de2e5e3 Allows 2 chests to be opened and dupes for minestrike chest 2016-12-29 18:04:24 -02:00
LCastr0
c877f20031 Added other skins, forgot this on the last commit 2016-12-29 18:00:18 -02:00
LCastr0
025a43b519 Added ms skins to their own chest, and added chest to page 2016-12-29 17:58:48 -02:00
LCastr0
36303a0fe8 Added new minestrike skins (some, at least?) 2016-12-29 17:43:50 -02:00
LCastr0
8131656ae2 Changed RankReward to have Eternal rank 2016-12-29 17:06:07 -02:00
LCastr0
4c6298bb63 Merge branch 'develop' into update/cosmetics-balloons 2016-12-29 16:28:13 -02:00
LCastr0
6478656501 Fixed armorstand balloon types 2016-12-29 16:25:20 -02:00
Sam
0ba22f9201 Merge remote-tracking branch 'refs/remotes/origin/develop' into feature/gem-hunters 2016-12-28 22:33:04 +00:00
cnr
efea2b0c1d Merge branch 'feature/dinnerbone-morph' into develop 2016-12-28 15:19:06 -07:00
Sam
4c7f5c5716 Merge remote-tracking branch 'refs/remotes/origin/develop' into feature/gem-hunters 2016-12-27 18:59:03 +00:00
Sam
e114ab03b5 Chest spawning 2016-12-27 17:20:53 +00:00
cnr
0b4d217303 Reduce number of redis requests by communities 2016-12-26 22:34:09 -07:00
LCastr0
c685486086 Fixed some types of entities 2016-12-27 00:58:16 -02:00
LCastr0
5198d64ab8 Added all the balloons! 2016-12-27 00:29:48 -02:00
LCastr0
092cde9973 Renamed to BalloonData 2016-12-27 00:01:42 -02:00
LCastr0
cd70305afb Make leashes not break (WITHOUT packets ;)) 2016-12-26 23:17:04 -02:00
LCastr0
f25c592a6d Removed commented code 2016-12-26 22:20:23 -02:00
LCastr0
78510ffbbf Allows multiple balloons 2016-12-26 22:19:08 -02:00
LCastr0
5e420a20d8 Changed temporary display item so it doesn't bug with 1.11 2016-12-26 20:21:43 -02:00
LCastr0
d19d661c7d Modified pets so they don't make different sounds anymore :toot: 2016-12-26 19:02:35 -02:00
LCastr0
6712ad427b Added bat so players can use items in hand with the leash
Changed silence method so it works :toot:
2016-12-26 19:00:11 -02:00
LCastr0
c11755558e Ops, those comments are wrong... 2016-12-26 18:27:01 -02:00
LCastr0
1d2a538fd6 Renamed Balloons page name 2016-12-26 18:23:27 -02:00
LCastr0
b422832276 Fixed Cosmetics menu positions 2016-12-26 18:22:57 -02:00
LCastr0
4ebc82bf1f Added balloons 2016-12-26 18:10:42 -02:00
Sam
a4a039b619 Merge remote-tracking branch 'refs/remotes/origin/develop' into feature/gem-hunters 2016-12-25 22:09:03 +00:00
LCastr0
fb9720c926 Added padding to menu 2016-12-25 16:21:46 -02:00
LCastr0
7e6810e10f Added a balloon to the menu 2016-12-25 16:12:05 -02:00
LCastr0
45d4e5ce6e Added Balloons to the cosmetics menu 2016-12-25 16:01:49 -02:00
LCastr0
246db919d9 Changed permissions for Unlock Cosmetics 2016-12-25 15:35:53 -02:00
LCastr0
de73307754 Added morph to january ppc prize 2016-12-25 15:35:25 -02:00
LCastr0
140da98922 Merge branch 'develop' into feature/dinnerbone-morph 2016-12-25 15:34:00 -02:00
samczsun
10bed92a6a Change morph description 2016-12-24 17:38:29 -05:00
samczsun
fe8823c134 Re-order morphs 2016-12-24 17:38:09 -05:00
samczsun
81d769db5b Fix issues regarding disguising 2016-12-24 14:18:33 -05:00
samczsun
eacbdfdb02 Convert morph to packets 2016-12-24 14:07:41 -05:00
cnr
73cefb69c9 Use redis pipeline for community player statuses 2016-12-24 00:39:59 -07:00
cnr
08d65f3662 Load communities with 4 queries instead of 3n+1 2016-12-23 21:33:17 -07:00
LCastr0
0aec8889fa Added lore 2016-12-23 23:56:43 -02:00
AlexTheCoder
35a9eabf74 Use UUID object instead of String for PlayerStatus and FriendStatus, as well as update CommunityJoinRequestInfo on a task 2016-12-23 18:34:52 -05:00
AlexTheCoder
74a6071d4e Refactor Redis PlayerStatus to use UUID as a key instead of Name, and make communities not force every server to subscribe to join publishes from proxies 2016-12-23 18:03:08 -05:00
AlexTheCoder
4ae21e66c9 Delete new communities if the leader has been transferred a new community during creation 2016-12-23 18:03:08 -05:00
LCastr0
675642a100 Disable on tp and do not allow mounts 2016-12-23 19:53:49 -02:00
LCastr0
9fad633b88 Ops, lava, not water 2016-12-23 19:13:50 -02:00
LCastr0
c0afad0723 Fixed morph with lava, water, void and ender pearls 2016-12-23 18:15:26 -02:00
LCastr0
7f6f3464a1 Fixed chest pages again 2016-12-23 17:48:37 -02:00
William Burns
1e0ba62557 To many typos. 2016-12-23 11:15:46 -07:00
AlexTheCoder
7a482c3386 Implement system to run code when an SQL error occurs, and ensure that duplicate key errors on community creation inform the community creator 2016-12-22 22:32:04 -07:00
AlexTheCoder
ac8d8aa69c Prevent Name value in info classes from being null 2016-12-22 22:32:04 -07:00
AlexTheCoder
0a69562579 Improve communities member page sorter to base on role as well as name and online status 2016-12-22 22:32:04 -07:00
AlexTheCoder
09e711e202 Properly get online player key from redis 2016-12-22 22:32:04 -07:00
AlexTheCoder
8e9336ad23 Make community button refresh with join requests 2016-12-22 22:32:04 -07:00
AlexTheCoder
9acd6b7832 Ensure comparison of ints with == instead of Integers 2016-12-22 22:32:04 -07:00
AlexTheCoder
286a9fe246 Fix various synchronization issues and make community creation load the new community through redis instead of a database call 2016-12-22 22:32:04 -07:00
AlexTheCoder
66c6f66768 Fix threading of community create command and make invite loader run on a LoginProcessor 2016-12-22 22:32:04 -07:00
AlexTheCoder
36f671d944 Use UtilPlayer.message instead of sender.sendMessage to fit standards 2016-12-22 22:32:04 -07:00
AlexTheCoder
e5aaa555b7 Make join request name updating redis-based 2016-12-22 22:32:04 -07:00
AlexTheCoder
56ecab1985 Make community membership updating entirely redis-based 2016-12-22 22:32:04 -07:00
samczsun
a0716ae774 Try to prevent duplicate bans even more 2016-12-22 22:42:07 -05:00
samczsun
1bcbddee87 Remove VL logging for good 2016-12-22 22:32:56 -05:00
LCastr0
6870bf31db Merge branch 'feature/dinnerbone-morph' of github.com:Mineplex-LLC/Minecraft-PC into feature/dinnerbone-morph 2016-12-23 00:53:18 -02:00
LCastr0
4c58e852d0 Fixed a bug with treasure pages after buying a chest 2016-12-23 00:53:01 -02:00
samczsun
bbd695981d Don't summon titles if player is morphed 2016-12-22 21:06:39 -05:00
cnr
df5c53766c Disable VL logging 2016-12-22 17:54:50 -07:00
cnr
ca19840b19 Revert "Disable communities temporarily."
This reverts commit 6d5d2b551b.
2016-12-22 16:50:35 -07:00
cnr
2fe9423196 Remove inner query in CommunityRepository 2016-12-22 16:44:26 -07:00
LCastr0
7322e05ac4 Added the custom display item to menus 2016-12-22 18:58:38 -02:00
LCastr0
38e9daa377 Added display item feature again 2016-12-22 18:23:42 -02:00
LCastr0
ac6440a3c6 Merge branch 'develop' into feature/dinnerbone-morph 2016-12-22 17:09:33 -02:00
Kenny
253c907ba1 Update Anticheat dependency in core 2016-12-22 12:33:27 -05:00
William Burns
6d5d2b551b Disable communities temporarily. 2016-12-22 17:07:36 +00:00
cnr
69670a4b99 Pass accountId at community creation time 2016-12-22 01:17:44 -07:00
LCastr0
09afab39d6 Merge branch 'develop' into feature/dinnerbone-morph 2016-12-22 03:51:40 -02:00
AlexTheCoder
623703cc76 Insert MCS as type Community in redis 2016-12-21 19:31:57 -07:00
AlexTheCoder
65522a364f Update lobby file used by MCS 2016-12-21 19:31:56 -07:00
AlexTheCoder
0b92bc2263 Fix redis host value for MCS 2016-12-21 19:31:56 -07:00
AlexTheCoder
b73e51b345 Fix invites and member data loading communities from the wrong regions 2016-12-21 19:31:56 -07:00
AlexTheCoder
d4904fa02a Fix communities commands having incorrect coloring in their help messages 2016-12-21 19:31:56 -07:00
AlexTheCoder
d0c2906467 Fix community invites storing twice in player data if it is a duplicate 2016-12-21 19:31:56 -07:00
AlexTheCoder
1190d4a427 Fix communities queries having the ability to lock the server mysql connections due to nesting, improve RepositoryBase by allowing all the methods to be passed a Connection object to reuse it, and fix duplicate invites throwing an sql error 2016-12-21 19:31:56 -07:00
AlexTheCoder
cc3842f019 Synchronize BrowserIds List and update the browser GUI when a contained community is disbanded 2016-12-21 19:31:56 -07:00
AlexTheCoder
941b33bcfc Replace Integer == with Integer.intValue() == so as to avoid edge case errors 2016-12-21 19:31:56 -07:00
AlexTheCoder
07f2679275 Fix preference ordinal being shifted due to community invite preference being added in the middle, and added region-locking to community names so as to stop EU and US communities from having the same name due to independent redii 2016-12-21 19:30:54 -07:00
AlexTheCoder
eabda7f8c6 Fix alpha numeric check and slight potential concurrency issues 2016-12-21 19:30:54 -07:00
AlexTheCoder
bcbc6fdea4 More fixes and stylistic changes from iteration 2016-12-21 19:30:54 -07:00
AlexTheCoder
92e5c74fff Update PersonalServerManager to launch the MCS with the community's favorite game 2016-12-21 19:30:54 -07:00
AlexTheCoder
2611ba7a7a Bugfixes from iteration, & new features requested by sampson sigils and relyh 2016-12-21 19:30:53 -07:00
AlexTheCoder
2cacbcbc1c Update community repository to latest changes 2016-12-21 19:30:27 -07:00
AlexTheCoder
1a3a48115c Set up personal server manager to be able to create an MCS 2016-12-21 19:30:27 -07:00
AlexTheCoder
095fbfa255 Fix error caused by GIT client with MCS themes and actually register redis commands in the miniplugin 2016-12-21 19:30:27 -07:00
AlexTheCoder
bd4fa1f2d4 Convert to MCS system for community servers and add a command to open them 2016-12-21 19:30:26 -07:00
AlexTheCoder
0668e31710 Implement various events to interact with the GUIs and update them when changes to communities or playerdata occur 2016-12-21 19:30:26 -07:00
AlexTheCoder
024a58e0fa Create data classes to handle information about join requests and community members, as well as increasing the amount of information held for online players in their MemberData 2016-12-21 19:30:26 -07:00
AlexTheCoder
cefc3344ab Set up redis pub sub commands to transfer communities information across the network 2016-12-21 19:30:26 -07:00
AlexTheCoder
39f2c94718 Update the Communities miniplugin to contain a variety of redis and player interaction 2016-12-21 19:30:26 -07:00
AlexTheCoder
2a971d616c Complete setting up community data class 2016-12-21 19:30:26 -07:00
AlexTheCoder
471ea8942f Create an enum to manage different unlockable MPS themes 2016-12-21 19:30:26 -07:00
AlexTheCoder
216b4fe947 Further set up communities database class 2016-12-21 19:30:26 -07:00
AlexTheCoder
9ba38ffd3b Implement all communities commands 2016-12-21 19:30:26 -07:00
AlexTheCoder
d44a3774db Implement communities GUI system with several pages for community management 2016-12-21 19:30:26 -07:00
AlexTheCoder
f6362676ff Implement more settings for communities 2016-12-21 19:30:26 -07:00
AlexTheCoder
fd30fca035 Remove an unused preference class and convert friends preferences to social preferences so as to add communities preferences in that section 2016-12-21 19:30:26 -07:00
AlexTheCoder
88fc34def4 Implement a setting to configure whether a game type can be the favorite game of a community 2016-12-21 19:30:25 -07:00
AlexTheCoder
482f0e5b2a Implement a method for loading client data from the web server for offline uuids 2016-12-21 19:30:25 -07:00
AlexTheCoder
1a0bd7ffb0 Set up more settings 2016-12-21 19:30:25 -07:00
AlexTheCoder
7b23c1bdd2 Change SQL queries a bit to be more efficient 2016-12-21 19:30:25 -07:00
AlexTheCoder
a2fb0bb491 Implement more backend for communities and add a command base 2016-12-21 19:30:25 -07:00
AlexTheCoder
0007ffc91e More backend for handling community settings 2016-12-21 19:30:25 -07:00
AlexTheCoder
5143a7cd61 Change/Expand redis interaction and community storage, implement chat formatting 2016-12-21 19:30:25 -07:00
AlexTheCoder
ac224e3f68 Initial communities code 2016-12-21 19:30:25 -07:00
LCastr0
dd9729c0f4 and! 2016-12-21 15:55:52 -07:00
LCastr0
e8d698ac37 Fixed eternal taunt
Added description for taunts
Added eternal taunt description and icon
Removed minestrike chest for now
Removed debug commans permissions
2016-12-21 15:55:52 -07:00
LCastr0
f2aef9a873 Auto-add item to eternal 2016-12-21 15:55:52 -07:00
LCastr0
dd7f5d7513 Disguise player as skeleton 2016-12-21 15:55:52 -07:00
LCastr0
5102227e94 Added time in ticks where players can't move at the start of the effect 2016-12-21 15:55:52 -07:00
LCastr0
651d0c5966 Changed clocks to be behind player 2016-12-21 15:55:52 -07:00
LCastr0
36801283d7 Added method to disable taunts in certain games 2016-12-21 15:55:52 -07:00
LCastr0
f9c71c481f Fixed taunts, using armorstands instead of items
Removed minestrike chest (not being released this month)
2016-12-21 15:55:52 -07:00
LCastr0
69f7f025a1 Added the first taunt! 2016-12-21 15:55:52 -07:00
LCastr0
e940134610 Removed commented code 2016-12-21 15:55:52 -07:00
LCastr0
99cec0de91 Added pages for the Treasure Chest menu! 2016-12-21 15:55:52 -07:00
LCastr0
e50b867184 Javadocs + option to make taunts usable or not during pvp 2016-12-21 15:55:52 -07:00
LCastr0
0af46005e7 Added Taunts :toot: 2016-12-21 15:55:51 -07:00
LCastr0
8f50f0d833 Added Minestrike chests (this time to the right branch) 2016-12-21 15:55:51 -07:00
samczsun
7e2c4c8555 Change thresholds, add notifs, move stuff around 2016-12-21 15:55:51 -07:00
samczsun
7f3bb9671a Change thresholds, add notifs, move stuff around 2016-12-20 15:05:52 -05:00
samczsun
c4c46b6ba2 Add warning if check does not exist 2016-12-20 15:05:26 -05:00
samczsun
fcaf4538bd Handle multiple bans when ranked TWITCH+ 2016-12-20 15:05:26 -05:00
samczsun
63d0481dcf Fix minor bugs 2016-12-20 15:05:26 -05:00
samczsun
2397cdbba7 Add playerinfo metadata 2016-12-20 15:05:26 -05:00
samczsun
b00d9d7bb4 Prevent punishment abuse 2016-12-20 15:05:26 -05:00
samczsun
383c4d3670 More 2016-12-20 15:05:26 -05:00
samczsun
ece4416c2e Metadata 2016-12-20 15:05:26 -05:00
samczsun
77f1f18f27 More metadata 2016-12-20 15:05:01 -05:00
samczsun
994d286abe More logging 2016-12-20 15:05:01 -05:00
samczsun
74f4645828 Ban log 2016-12-20 15:05:01 -05:00
samczsun
6970c3205e AntiHack Logging 2016-12-20 15:05:01 -05:00
samczsun
77da6ac2c2 Remove MAC 2016-12-20 15:05:01 -05:00
LCastr0
df2b0c7e99 Addef fix for dinnerbone morph not opening menus 2016-12-20 17:16:42 -02:00
LCastr0
fd223935c7 Merge branch 'feature/dinnerbone-morph' of github.com:Mineplex-LLC/Minecraft-PC into feature/dinnerbone-morph 2016-12-19 22:15:32 -02:00
LCastr0
06a05080ed Added YearMonth for Dinnerbone Morph 2016-12-19 22:15:22 -02:00
samczsun
b85bd623f7 Fix not updating skin/tab list 2016-12-19 19:14:28 -05:00
samczsun
eadbb22de9 Dinnerbone Morph with tab list 2016-12-19 17:53:15 -05:00
Sam
9409cbc42c Merge remote-tracking branch 'refs/remotes/origin/develop' into feature/gem-hunters 2016-12-19 00:32:53 +00:00
samczsun
a6db0170c6 QA Fixes 2016-12-15 20:48:40 -07:00
samczsun
58761a0478 1.8 blocker 2016-12-15 20:48:40 -07:00
samczsun
8421aad59c Multiversion support (but not used) 2016-12-15 20:48:40 -07:00