Skip to content

Instantly share code, notes, and snippets.

@NimbusFox
Created June 17, 2018 21:45
Show Gist options
  • Save NimbusFox/f11441027a33b77715069fff676edbe2 to your computer and use it in GitHub Desktop.
Save NimbusFox/f11441027a33b77715069fff676edbe2 to your computer and use it in GitHub Desktop.
SetPrivatePropertyValue("BlobStorage", null, typeof(ServerContext), new BlobStorage());
ServerContext.BlobStorage.Initialize();
SetPrivateFieldValue("_universeSettingsStorage", universe, universe.GetType(),
ServerContext.BlobStorage.Fetch(Constants.UniverseSettingsFile,
Path.Combine(_contentFolder.FullName, Constants.UniverseSettingsFile + ".bsdb")));
SetPrivateFieldValue("_settingsStorage", _serverMainLoop, _serverMainLoop.GetType(),
ServerContext.BlobStorage.Fetch("universeSettings",
Path.Combine(_contentFolder.FullName, "universeSettings" + ".bsdb")));
var users = new Lyst<Entity>();
universe.GetPlayers(users);
foreach (var player in users) {
SetPrivatePropertyValue("Storage", player.PlayerEntityLogic, player.PlayerEntityLogic.GetType(),
ServerContext.BlobStorage.Fetch("player-" + player.PlayerEntityLogic.Uid(),
Path.Combine(_contentFolder.FullName,
"player-" + player.PlayerEntityLogic.Uid() + ".bsdb")));
}
SetPrivateFieldValue("_persistenceBlob",
ServerContext.VillageDirector.Village.WaypointManager.PathFinder, typeof(PathFinder),
ServerContext.BlobStorage.Fetch("waypoints",
Path.Combine(_contentFolder.FullName, "waypoints.bsdb")));
SetPrivateFieldValue("_persistenceBlob", ServerContext.VillageDirector.Village,
typeof(Village),
ServerContext.BlobStorage.Fetch("village",
Path.Combine(_contentFolder.FullName, "village.bsdb")));
var manager =
(PricingManager) GetPrivateFieldValue("_pricingManager", universe, universe.GetType());
SetPrivateFieldValue("_persistenceBlob", manager, manager.GetType(),
ServerContext.BlobStorage.Fetch("salesdata",
Path.Combine(_contentFolder.FullName, "salesdata.bsdb")));
var livingWorldManager =
GetPrivateFieldValue("_livingWorldManager", universe,
universe.GetType());
var merchantManager = GetPrivateFieldValue("MerchantManager", livingWorldManager,
livingWorldManager.GetType());
SetPrivateFieldValue("_persistenceBlob", merchantManager, merchantManager.GetType(),
ServerContext.BlobStorage.Fetch("merchantdata",
Path.Combine(_contentFolder.FullName, "merchantdata.bsdb")));
var orderShippingManager = GetPrivateFieldValue("OrderShippingManager", livingWorldManager,
livingWorldManager.GetType());
SetPrivateFieldValue("_persistenceBlob", orderShippingManager,
orderShippingManager.GetType(),
ServerContext.BlobStorage.Fetch("orderdata",
Path.Combine(_contentFolder.FullName, "orderdata.bsdb")));
var petManager = GetPrivateFieldValue("PetManager", livingWorldManager,
livingWorldManager.GetType());
SetPrivateFieldValue("_persistenceBlob", petManager, petManager.GetType(),
ServerContext.BlobStorage.Fetch("petdata",
Path.Combine(_contentFolder.FullName, "petdata.bsdb")));
var mailManager =
(MailManager) GetPrivateFieldValue("_mailManager", universe, universe.GetType());
SetPrivateFieldValue("_mailStorage", mailManager, mailManager.GetType(),
ServerContext.BlobStorage.Fetch("mailStorage",
Path.Combine(_contentFolder.FullName, "mailStorage.bsdb")));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment