Commit graph

62 commits

Author SHA1 Message Date
Ty Conner
b4e2334333
Update output of DateTime strings (#4224)
* Update output of DateTime strings

Define and use explicit formatting for DateTime objects used throughout source

* Update Player.cs

* Update GameActionQueryBirth.cs

* Update DateTimeExtensions.cs

* Update GameActionQueryBirth.cs

match the backpack panel output
2024-09-18 00:30:35 -04:00
OptimShi
9864887263
DatReader - ActionMap (#4217)
* Added ActionMap Dat reading 0x26000000

* Removed debug code from startup
2024-08-20 19:26:08 -04:00
aquafir
918aa66d9b
Command categories and Harmony bump (#4144)
* Bump Harmony version

* Add command category support

* Switch usage to unpatch all, split register commands from patch with Harmony

* Move instantiation of command handler dictionary to declaration

* Remove deferred command registration

* Revert build output changes

* Move mod listing to end of startup
2024-04-05 13:03:49 -04:00
Mag-nus
8c5d81a0a3
Enable LOH Compacting on forcegc (#4101)
* Enable LOH Compacting on forcegc

Maybe this will help recover long running servers that go into GC sawtooth pattern

* This should be good for master
2024-02-03 20:47:14 +00:00
Ty Conner
12e569652f
Switch to System.Text.Json (#4002)
* Switch to System.Text.Json

Removed Newtonsoft.Json and DouglasCrockford.JsMin

* Update GameConfiguration.cs

* Update MasterConfiguration.cs

* Update ThreadConfiguration.cs

* Update StarterSpell.cs

* Update StarterGearFactory.cs

* Update Program_Setup.cs

* Update LifestonedConverter.cs

* Update Program_Setup.cs

* Update Program_Setup.cs

* Update ACE.Adaptor

Shift JSON weenie [de]serialization to System.Text.Json

* Update LifestonedConverter.cs

* Update StarterGearFactory.cs

* Update ACE.Server.csproj

* Update ACE.Server.Tests.csproj

* Update Program.cs

* Update MySqlConfiguration.cs

* Update DDDConfiguration.cs

* Update ModContainer.cs

* Update ModManager.cs

* Update ModMetadata.cs

* Update ModMetadata.cs
2023-12-21 14:15:38 -05:00
Ty Conner
ab54cf9002
Add support for client DAT patching from server (#3979)
* Update DatFile.cs

* Update DatFileType.cs

Co-Authored-By: OptimShi <OptimShi@users.noreply.github.com>

* Create DDDManager.cs

Co-Authored-By: OptimShi <OptimShi@users.noreply.github.com>

* Create GameMessageDDDBeginDDD.cs

Co-Authored-By: OptimShi <OptimShi@users.noreply.github.com>

* Create GameMessageDDDDataMessage.cs

Co-Authored-By: OptimShi <OptimShi@users.noreply.github.com>

* Update DDDHandler.cs

Co-Authored-By: OptimShi <OptimShi@users.noreply.github.com>

* Update WorldManager.cs

* Update Program.cs

* committing changes provided

Co-Authored-By: OptimShi <OptimShi@users.noreply.github.com>

* more wip changes

* Update DDDManager.cs

* Update DDDManager.cs

Co-Authored-By: OptimShi <OptimShi@users.noreply.github.com>

* Update CMostlyConsecutiveIntSet.cs

Co-Authored-By: OptimShi <OptimShi@users.noreply.github.com>

* Update WorldManager.cs

* Update DDDHandler.cs

* Update Session.cs

* Update DDDManager.cs

* Update Session.cs

* Update DDDManager.cs

* Update DDDManager.cs

* Update GameMessageDDDDataMessage.cs

* Update DDDHandler.cs

* Update Session.cs

* Update CAllIterationList.cs

Co-Authored-By: OptimShi <OptimShi@users.noreply.github.com>

* Update CMostlyConsecutiveIntSet.cs

Co-Authored-By: OptimShi <OptimShi@users.noreply.github.com>

* Create PTaggedIterationList.cs

Co-Authored-By: OptimShi <OptimShi@users.noreply.github.com>

* Update Session.cs

* Update ConnectionListener.cs

* Create DDDConfiguration.cs

* Update MasterConfiguration.cs

* Update Config.js.example

* Update DDDManager.cs

* Update DDDHandler.cs

* Update Program.cs

* Update PropertyManager.cs

* Update WorldManager.cs

* Update SessionTerminationReason.cs

* Update DDDHandler.cs

* Update DDDManager.cs

* Update ConnectionListener.cs

* Update SessionTerminationReason.cs

* Update GameMessageDDDDataMessage.cs

* Update AuthenticationHandler.cs

* Update CharacterHandler.cs

* Update PacketInboundLoginRequest.cs

* Update Session.cs

* Update DatFileType.cs

---------

Co-authored-by: OptimShi <OptimShi@users.noreply.github.com>
2023-06-09 13:15:10 -04:00
aquafir
23a7a41a04
Add mod support (#3948)
* Add mod support

* Change .NET Core 3.1 to .NET 6 for DatLoader.Tests to remove dependency.

* Add default mod path

* Attempt to create missing mod folder

* Update Source/ACE.Server/Mods/ModManager.cs

Co-authored-by: gmriggs <gmriggs@gmail.com>

* Use pre-release Harmony

---------

Co-authored-by: gmriggs <gmriggs@gmail.com>
2023-05-25 22:15:41 -04:00
OptimShi
51e04e42cb
Added optional check for newer server binary. (#3838)
* Added optional check for newer server binary. Changed DB Update to check only 'latest'

* Update OfflineConfiguration.cs

* Update Program.cs

* Update Config.js.example

Co-authored-by: Ty Conner <tyconner@itcproductions.com>
2022-05-07 14:30:42 -04:00
Mag-nus
fe044bcf0a
Add MightBreakPlugins option to BiotaConsolidator (#3760)
* Add MightBreakPlugins option to BiotaConsolidator

* Update BiotaGuidConsolidator.cs

* update program.cs

* Update BiotaGuidConsolidator.cs

* improve progress reporting

* skipUserInput bool

* comma
2021-12-24 15:31:26 +00:00
Ty Conner
8e30b09cde
De-embed starterGear.json to configurable file not requiring compilation (#3687) 2021-10-15 00:22:40 -04:00
Ty Conner
56575e72fb
Add some basic pruning for shard database (#3621)
* Add some basic pruning for shard database

* Update ShardDatabaseOfflineTools.cs

* add character squelch prune

* Update OfflineConfiguration.cs

* Update Program.cs

* Update Config.js.example

* Update Config.js.docker

* Update OfflineConfiguration.cs

* Update Config.js.docker

* Update Config.js.example
2021-08-15 18:41:28 -04:00
Mag-nus
7a0404c0a3
Improve World DB Startup Caching (#3587)
This is significantly faster than what is currently in master, and just slightly slower than PR #3582

It is now a single threaded operation, just like #3582 but instead of stitching the objects together manually, it lets EF stitch the objects together.

EF Tracking is required for the stitching to work.

This is the recommended pattern for these types of actions when dealing with EF.

I think similar improvements can be made to startup player caching
2021-06-12 14:15:42 -05:00
Ty Conner
cbadfc086e
Update ability to log chat via log4net (#3438) 2021-01-27 23:44:52 -05:00
Ty Conner
771d084364
Fix issue with Console.Title and non windows platforms (#3437) 2021-01-24 11:27:26 -05:00
Ty Conner
3ba3acded6
Update Program.cs 2021-01-23 14:17:07 -05:00
FlaggAC
33150326fa
Update console title to show server name (#3416)
* Update console title to show server name

* Fix console title to include ACEmulator
2021-01-23 14:13:03 -05:00
Ty Conner
533b037488
Prevent future instances of dynamic GUIDs in World Database (#3420) 2021-01-16 16:24:42 -05:00
Ty Conner
5e03927446
Workaround fix for intermittent corpse save failures (#3383)
* Workaround fix for intermittent corpse save failures

* adjustments per discussion

* Update ShardDatabase.cs
2020-12-10 21:37:29 -05:00
gmriggs
7c83b8ccae
minor performance improvements to material / color caches (#3223)
* minor performance improvements to AssignMagic()

* minor performance improvements to material / color caches

* adding comment

* updating to latest master branch

* updating to latest master branch
2020-10-20 12:07:18 -04:00
Mag-nus
5dd8ad1fac
Biota Guid Consolidator (#2934)
* [TEST] Biota Guid Consolidator

Seems to work. Need to make sure the following weenie types are ok:
Allegiance
Hooker

* Update EnchatnmentRegistry

* ... such a simple fix

The second foreach was running the linq query again which wasn't returning the results needed.. ToList() gets our results so we can iterate over them twice, properly.

* Add guid conversion for shortcuts

Co-authored-by: Ty Conner <tyconner@itcproductions.com>
2020-07-11 08:35:04 -05:00
Ty Conner
059b1de2cc
Remove temporary patches (#2989) 2020-05-24 21:23:20 -04:00
Ty Conner
eb5703f862
Wire up automatic database updates (#2965)
* Wire up automatic database updates

- Support automatic database patching
- Support automatic updating of world database to latest release
- Support automatic re-application of world database customization

* Update Program_DbUpdates.cs

* Update Program_DbUpdates.cs

* Update Program_Setup.cs

* Update Program_DbUpdates.cs

* Update Program_DbUpdates.cs

* Update Program_DbUpdates.cs
2020-05-08 01:44:21 -04:00
Ty Conner
4a24710f4e
Fix spell bar position save issue (#2918)
* Fix spell bar position save issue

* Update 2020-04-11-00-Update-Character-SpellBars.sql

* Switch CharacterPropertiesSpellBar to composite key

* Fix incorrect indexes in SpellBars

* Update ShardDatabaseOfflineTools.cs

* Update PropertyManager.cs

* Update DatabaseManager.cs

* Update 2020-04-11-00-Update-Character-SpellBars.sql

* Update 2020-04-11-00-Update-Character-SpellBars.sql

* Update ShardDatabaseOfflineTools.cs

* Update 2020-04-11-00-Update-Character-SpellBars.sql

* Update ShardDatabaseOfflineTools.cs

* Update DeveloperDatabaseCommands.cs

* Update Program.cs

* Update 2020-04-11-00-Update-Character-SpellBars.sql

* Update 2020-04-11-00-Update-Character-SpellBars.sql

* Update ShardDatabaseOfflineTools.cs

* Update ShardDbContext.cs

* .

* Update DeveloperDatabaseCommands.cs

* Update DeveloperDatabaseCommands.cs

optimizations by @gmriggs

Co-Authored-By: gmriggs <gmriggs@gmail.com>

Co-authored-by: gmriggs <gmriggs@gmail.com>
2020-04-12 17:01:22 -04:00
Mag-nus
50d070ef5d
Step 4 hybrid weenie biota (#2864)
* Step 1. Add new adapter classes and models

All classes and objects added are in new namespaces.

This add has 0 interraction on existing ACE code.

This sets the groundwork for Step 2. Moving World DB caching to the new models

* first part of the world entity usage

* almost there

* final part

* update WeenieExtensions

* fix

* merge fixes and improvements

* ACE.Database new code

* it compiles

* InitializePropertyDictionaries

* WOrldDatabaseWithEntityCache cleanup

* ShardDatabaseWithCaching

* ShardDatabase Cleanup

* todo

* cache counts reported in serverstatus

* House InitializePropertyDictionaries

* improve ServerStatus

* BiotaModel change HousePermissions to Dictionary<uint, bool>

* PropertiesAllegiance to dictionary

* BiotaUpdater improvements

* Shard Database Cache Reporting

* More code ported from Step 3

* Remove stub CharacterCache

* Update WorldDatabaseWithEntityCache.cs

* build fixes

* code audit

* Remove non-callback functions from SerializedShardDatabase

* BiotaUpdater progress.. only emote left

* Emotes done... now need to test

* fix

* Burden/Value fix for containers

* fat fingered EncumbranceVal

* add some safety

* Don't cache player biotas for initial PlayerManager load

* Step 4. Don't duplicate common properties when copying weenie to biota

This builds on Step 3.

This is a run time optimization. It reduces RAM allocation and in turn also makes less work for the garage collector.

When a biota is instantiated from a weenie (not from a database biota), the biota will point to the weenie for the following collections nstead of duplicating them:
PropertiesCreateList
PropertiesEmote
PropertiesEventFilter
PropertiesGenerator

* Collection capacitys added to ctors (reduce resizing)

* fix override_encounter_spawn_rates

* new Projectile() -> static ProjectileCollisionHelper methods

* disable by default, working out issues...

* Fix for referencing weenie collections directly

* Reduce EnchantmentManager ToList() and clone usage

* fix

* Set ChangesDetected only when a property actually changes

* fix build

* fix

* Fix nullable Order for AnimPart and TextureMap

* FixAnimPartAndTextureMapFromPR2731
2020-04-05 15:38:56 -05:00
Ty Conner
1d6e99a669
Update docker configuration + Improved Build/Version tracking (#2854)
* Update docker configuration

Standardize default configuration for database docker container

* Update appveyor.yml

* Update Version tracking concept

* Update AppVeyorBeforeCompile.bat

* Update appveyor.yml

* Rename

* Update appveyor.yml

* Update AppVeyorAfterDeploy.bat
2020-03-24 16:57:10 -04:00
Ty Conner
3c5a7d18d2
Support ARM64 (RPI4 4gb - Ubuntu x64) (#2853)
* Support ARM64 (RPI4 4gb - Ubuntu x64)

* Update appveyor.yml
2020-03-24 00:58:12 -04:00
Mag-nus
c1d480a01a
Step 2. Convert WorldDatabase Weenie Cache from the ACE.Database model to the new ACE.Entity model (#2702)
* Step 1. Add new adapter classes and models

All classes and objects added are in new namespaces.

This add has 0 interraction on existing ACE code.

This sets the groundwork for Step 2. Moving World DB caching to the new models

* first part of the world entity usage

* almost there

* final part

* update WeenieExtensions

* fix

* merge fixes and improvements

* More code ported from Step 3

* Update WorldDatabaseWithEntityCache.cs

* GetCachedCookbooks(recpieId) -> GetCookbooksByRecipeId(recpieId)

* build fix

* changelog
2020-03-02 08:03:50 -06:00
Ty Conner
7756bbb291
Dockerize ACE (#2751)
* Prep repo for v1.1 release

* Create Dockerfile

* Create .dockerignore

* Create docker.env

* Create docker-compose.yml

* Create Config.js.docker

* Create log4net.config.docker

* Docker support

* Update Dockerfile

* Update docker-compose.yml

* Update .gitignore

* Support config persistence across docker containers

* Update .gitignore

* Update Dockerfile

* Update Dockerfile

* appveyor changes

* Update AppVeyorBeforePackage.bat

* .

* Update docker.env

* Update Program.cs

* Update appveyor.yml
2020-03-02 04:24:47 -05:00
Ty Conner
8179766e18
Update project to include database scripts for publishing (#2736)
* Update project to include database scripts for publishing

* Update ACE.Server.csproj

* Auto setup/init for SQL dbs

* Update VersionConstant.cs

* Update Program.cs

* Update Program.cs

* Update Program.cs

* Automatically promote first account to Admin

* Update Program.cs

* Update Program.cs

* Update Program.cs

* Update ACE.Server.csproj

* Update ACE.Server.csproj
2020-02-29 16:58:29 -05:00
Ty Conner
96e0507081
Updating project files (#2707)
* Update ACE.Server.csproj

* Update ACE.Server.csproj

* Update ACE.Server.csproj

* Update ACE.Adapter.csproj

* Update ACE.Common.csproj

* Update ACE.Database.Tests.csproj

* Update ACE.Database.csproj

* Update ACE.DatLoader.Tests.csproj

* Update ACE.DatLoader.csproj

* Update ACE.Entity.csproj

* Update ACE.Server.Tests.csproj

* icon stuff

* Move artwork to its own folder

* .

* update to log4net config

* Setup OOB build for log4net config file

* Update for out of box configuration on console

* test compile datetime

* test 2

* test compile date three

* Update AppVeyorBeforeCompile.bat

* Update GetServerVersionHandler.cs

* version info final

* Delete log4net.config

* .

* Update ACE.Server.csproj

* Update .gitignore
2020-02-23 17:58:20 -05:00
Mag-nus
dff4617250
Improve startup time and memory consumption (#2704)
Limit number of threads used by database parallel work. This helps avoid "too many connections" errors on larger threaded machines. It also helps reduce memory consumption.

Use parallel for PlayerManager.Initialize()

ForceGC at the end of Startup, before the world is open. ForceGC is a pretty controversial thing. Typically if you're forcing gc, you're doing something wrong. In this case, we're forcing gc before the world starts up so that the work is done in an off-line state. This work will be done eventually, natrually by the gc, so better to get it done before the world is active. We force gc 10 times to make sure we get all objects. On a large server with many players and world precaching, this can free up 4 GB - 6 GB.
2020-02-12 19:49:34 -06:00
Mag-nus
8c39a8d8ef
Support application startup from outside directory (#2588)
In current master, on a windows platform, ACE requires the current environment directory to be the same location that the ACE.Server.exe (.NET core 3.1) exists.

If you try to startup the application from an outside directory, the Config.js and log4net.config will not be found as only the Environment.CurrentDirectory were searched.

Now, that directory is searched first. If the files are not found, the ExecutingAssembly Location is searched next.

This needs to be tested on Linux.
2020-01-03 20:05:51 -06:00
gmriggs
01ca24dc8e
setting default CultureInfo en-US (#2467) 2019-12-05 02:46:04 -05:00
Mag-nus
bff22f9140
PurgeOrphanedBiotas (#2326) 2019-11-24 16:50:50 -06:00
Ty Conner
7dc5ff67cf
Support Purging of deleted Characters from database (#2223)
* Support Erase and Purge of deleted Characters

* Update ShardDatabase.cs

* Update ShardDatabase.cs

* Support AutoPurge

* Update CharacterCommands.cs

* Update CharacterCommands.cs

* .

* Add support for admin forced delete of character

* Update ShardDatabase.cs

* Update CharacterHandler.cs

* Update CharacterCommands.cs

* Update CharacterCommands.cs

* Add PurgeOrphans command

* Update ShardDatabase.cs

* Update ShardDatabase.cs

* Rename erase to purge

* Update ShardDatabase.cs

* Update Program.cs

* Rename Erase to Purge for consistency

* Remove purging from SerializedShardDatabase

* Update SerializedShardDatabase.cs

* Update ShardDatabase.cs

* Changes

* use all threads

* OfflineConfiguration
2019-09-27 23:01:25 -05:00
Mag-nus
1d905bcdec
Limit database from taking all the threads (#2261)
* Limit database from taking all the threads

This adds limits to the database thread consumption.

It also should allow the world to now consume threads easier.

The way it is done is as follows.

- We determine the number of available threads using Environment.ProcessCount
- We allocate (int)Math.Max(Environment.ProcessorCount * .34, 1) to the World, and the remainder tothe database.

It breaks down as follows
1 vCPU = 1 thread world, 1 thread database
2 vCPU = 1 thread world, 1 thread database
3 vCPU = 1 thread world, 2 thread database
4 vCPU = 1 thread world, 3 thread database
5 vCPU = 1 thread world, 4 thread database
6 vCPU = 2 thread world, 4 thread database
7 vCPU = 2 thread world, 5 thread database
8 vCPU = 2 thread world, 6 thread database
9 vCPU = 3 thread world, 6 thread database
10 vCPU = 3 thread world, 7 thread database

I'd like to get some feedback from this PR on various sized servers.

What you may notice is that loading a player may take slightly longer (very slightly).

What you will probably notice is no discenerable difference in-game.

What I want to make sure happens is that the world doesn't end up feeling more choppy due to the parallel processing of outbound network traffic. Hopefully the more fair thread distriubiton will help prevent thread starvation.

* quit if not enough vCPU

* Give World Manager thread AboveNormal priority.

* support 1 CPU
2019-09-08 16:27:01 -05:00
Theran578
58f081ebd5 Covenant Armor, default Material Type, and thrown weapons (#1807)
* Add Covenant Armor and create framework for setting a default Material Type

* Default Material type

* Add Thrown weapons that do not use a missile launcher

* Fix-up thrown weapons

* Change flatware creation

* Change flatware creation 2
2019-04-27 01:37:41 -04:00
OptimShi
a9536aecc9 Loot colors (#1775)
* Random Colors in Loot

* WIP with TreasureMaterialColor usage.

* WIP

* More WIP

* Added Material Tables, debug command for testing

* Updated treasure tables for consistent int/uint usage. Added required SQL.

* Set the lootgeneration items to use the new GetMaterial function

* Update changelog

* Removed data from new tables.

* Update changelog.md

* Update 2019-04-20-00-Treasure-Materials.sql

* Update README.md

* Update changelog.md

* Changed lootgen() access level to developer

* Fixed null material type crashing the value function in loot gen
2019-04-21 03:01:12 -04:00
Ty Conner
317e8f9e1b Revert "Loot Colors (#1769)" (#1771)
This reverts commit 5acf14c787.
2019-04-20 19:54:52 -04:00
OptimShi
5acf14c787 Loot Colors (#1769)
* Random Colors in Loot

* WIP with TreasureMaterialColor usage.

* WIP

* More WIP

* Added Material Tables, debug command for testing

* Updated treasure tables for consistent int/uint usage. Added required SQL.

* Set the lootgeneration items to use the new GetMaterial function

* Update changelog

* Removed data from new tables.

* Update changelog.md

* Update 2019-04-20-00-Treasure-Materials.sql

* Update README.md

* Update changelog.md

* Changed lootgen() access level to developer
2019-04-20 18:17:28 -04:00
Ty Conner
90c98c76a6
Shortcut Fix Stage 1 (#1759)
* Update DeveloperDatabaseCommands.cs

Co-Authored-By: gmriggs <gmriggs@gmail.com>

* Update fix-shortcut-bar command

* Add support for closing (and opening) a world to players

* Update AdminShardCommands.cs

* Update AuthenticationHandler.cs

* Change bool to world_closed

* Update changelog
2019-04-19 01:58:03 -05:00
Mag-nus
759b01ac0c
/serverperformance command (Server Performance Monitor) (#1642)
* /serverperformancemonitor command

Optional parameters are:
start
stop
reset

If no parameters are present, the current performance metrics are spit out.

When disabled, overhead is the cost of some simple function calls and a bool check. When enabled, the additional cost is stopwatch events. In comparisson to the work that ACE does for normal processing, the work done when serverperformance is enabled is nearly 0.

Default is disabled.

Enable it to start up automatically in the config.js. This is recommend for most servers. Enable it at runtime using /serverperformance start

* Fix Reset
2019-04-04 13:38:01 -05:00
gmriggs
74b0c0dc72
moving HouseManager (#1442) 2019-02-13 18:15:28 -05:00
gmriggs
c2eac1532f
Adding house maintenance (#1427)
* Adding house maintenance

* Adding trade notes -> pyreals

* Adding AllegianceMinRank checking / warning message for maintenance

* Updating for 0.9.15

* adding HouseInstance null check

* more consistency updates / refactoring

* Adding slumlord.MergeAllStackables()

* Adding CheckHouse
2019-02-12 07:10:43 -05:00
Mag-nus
eb02530c78 This switches two world db house functions to use caching (#1434)
* This switches two world db house functions to use caching

GetHousePortals
GetHousePortalsByLandblock

* added CacheAllHousePortals()
2019-02-11 14:35:21 -05:00
Mag-nus
411b5fdfaa
use AppDomain.CurrentDomain.UnhandledException (#1300)
This will (should) catch any unhandled exception from any thread.

It will log it as an error, and the application will exit (unsafely).

The user will see the same exception twice on their console, but only one will be logged to the logger. This is expected behavior.

This was tested with the gem exception and works.

If you're wondering, there is no safe way to handle exceptions from UpdateWorld and keep going, nor is there any safe thing we can do if we're in that state to save players. We have no idea what state a player might be in when this is thrown. The could be between two very critical modifications. Furthermore, if we did try to save all players on exceptions, it could be used as an exploit to try to save players/items in a "bugged" state.

The safest thing to do is quit and trust that the last player saves are good.

Due to the way ACE handles biotas and items, dupes aren't an issue for us.
2019-01-17 10:05:48 -06:00
gmriggs
796bc35411
Improved EmoteManager timing (#1273)
* Improved EmoteManager timing

* Fix giving pyreals to TC

* Update SetSanctuaryPosition
2019-01-15 16:31:52 -05:00
Mag-nus
eeaf9725e4
PlayerManager (#1103)
* PlayerManager initial checkin

* OfflinePlayer initial checkin

* More progress

* Comment out Console.WriteLine debug messages

* Add property dictionaries to OfflinePlayer

* IPlayer initial checkin

* Add allegiance vars to IPlayer

* Couple comments

* More progress

* Add more to IPlayer

* line endings fix

* More progress. Compiles. Friends list works again.

* Friend status updates now work (again)

* PlayerManager save OfflinePlayers every 1hr

* Bye bye legacy AllPlayers

* using cleanup

* Allegience switch to PlayerManager progress

* More Allegiance progress

* More progress

* More allegiance progress

* IPlayer adds

* Migrate inversefriends to PlayerManager

* Switch WorldManager GetPlayerByGuid over to PlayerManager

* WorldManager Find(ObjectGuid characterGuid) removed. Use PlayerManager instead

* WorldManager FindByPlayerName(string name) removed. Use PlayerManager instead

* PlayerManager thread safety switched to ReaderWriterLockSlim

* More progress

* ServerStatus added TotalAccountsCreated, TotalCharactersCreated

* No more Player access/management stuff in WorldManager. It's all in PlayerManager now

* Player.IsOnline is no more.

* Friends AppearOnline fix

* Handle dead session better to switch player from online to offline

* Remove adding the + to names in ChatChannels. Name property should be changed to not include +

* serverstatus total accounts and characters on same line

* Allegience initial fix, still more bugs though

* PlayerManager minor cleanup

uint should be faster key than ObjectGuid

Changed the dictionaries to private. We don't want anyone outside of this class referencing them.

* Thread safety added to LScape.get_landcell
2018-12-02 13:41:16 -06:00
Mag-nus
23100087a8
keepOpen option added to DatDatabase FileStream (#1097) 2018-11-20 07:45:09 -06:00
Ty Conner
ca6c8d1fc3
Fixes for Anniversary Event emotes (#1086)
* Fixes for Anniversary Event emotes

* Add Pre+Permaload of Global Event Landblock

* Making requested changes

* Add correct check for GlobalEventLandblockPreloading

* Further requested changes. New config setup for Preloaded and Permaloaded Landblocks

* Minor cleanup

* Add a hardcoded fallback incase config file not updated

* Update example to fix syntax error

* Minor tweak to example and console output
2018-11-01 20:10:54 -04:00