* chore: continue work on removing raw packet reading
tested that logging in, deleted a char, renaming a char, and transfeering to a zone all work still
* Address Feedback
* Logger to Server class
Dont handle master packets from our clients
* move to namespace
Revert "remove extra headers"
This reverts commit ac7b901ece22165cdb0f38fca4be7d8fdf004de8.
remove extra headers
no changes otherwise.
* Merge branch 'main' into server_consolidation_of_work
* Update WorldServer.cpp
* fix submodule version
---------
Co-authored-by: Aaron Kimbre <aronwk.aaron@gmail.com>
* greatly simplify docker
* back to gcc since I can't the libs to load properly
* fix typo
add set -e to entrypoint
better copy of entrypoint.sh and use proper entrypoint
* use debian instead of gcc for runtime
comment and organize it a bit
drop gcc to 12 since we are using debian 12 as well
* explicitly include mariadb libs
* Make the server not crash in the case we are using only env-vars
make the dockerfile have configs in the expected location incase of bypassing entrypoint.sh
* remove unneede var from example, since it's in the container now
* coments to dockerfile
* Revert master server changes
* Resolve conflicting port options between chat, master, and world
move chat_server_port to shared since it's used by world and chat
* Don't error if file does not exists when updating a config option
move update before and use bin dir var
* chore: organize build flags
* Remove ambiguous include path
Don't be default incluyde bcrypt so you need to specify the folder. Allows pre-processor to find the correct file.
* Revert settings
* working
f
* Remove std::couts littered throughout the base
* working
End of optimizations for now
going faster
* Remove extraneous compare function
std::less<LWOSCENEID> already does this in a map.
* gaming
* Update Zone.cpp
* dlu is moving to bitbucket again
* Update Level.cpp
---------
Co-authored-by: Jettford <mrjettbradford@gmail.com>
* Database: Convert to proper namespace
* Database: Use base class and getter
* Database: Move files around
* Database: Add property Management query
Database: Move over user queries
Tested at gm 0 that pre-approved names are pre-approved, unapproved need moderator approval
deleting characters deletes the selcted one
refreshing the character page shows the last character you logged in as
tested all my characters show up when i login
tested that you can delete all 4 characters and the correct character is selected each time
tested renaming, approving names as gm0
Database: Add ugc model getter
Hey it works, look I got around the mariadb issue.
Database: Add queries
Database: consolidate name query
Database: Add friends list query
Update name of approved names query
Documentation
Database: Add name check
Database: Add BFF Query
Database: Move BFF Setter
Database: Move new friend query
Database: Add remove friend queries
Database: Add activity log
Database: Add ugc & prop content removal
Database: Add model update
Database: Add migration queries
Database: Add character and xml queries
Database: Add user queries
Untested, but compiling code
Need to test that new character names are properly assigned in the following scenarios
gm 0 and pre-approved name
gm 0 and unapproved name
gm 9 and pre-approved name
gm 9 and unapproved name
Database: constify function arguments
Database: Add pet queries
* Database: Move property model queries
Untested. Need to test
placing a new model
moving existing one
removing ugc model
placing ugc model
moving ugc model(?)
changing privacy option variously
change description and name
approve property
can properly travel to property
* Property: Move stale reference deletion
* Database: Move performance update query
* Database: Add bug report query
* Database: Add cheat detection query
* Database: Add mail send query
* Untested code
need to test mailing from slash command, from all users of SendMail, getting bbb of a property and sending messages to bffs
* Update CDComponentsRegistryTable.h
Database: Rename and add further comments
Datavbase: Add comments
Add some comments
Build: Fix PCH directories
Database: Fix time
thanks apple
Database: Fix compiler warnings
Overload destructor
Define specialty for time_t
Use string instead of string_view for temp empty string
Update CDTable.h
Property: Update queries to use mapId
Database: Reorganize
Reorganize into CDClient folder and GameDatabase folder for clearer meanings and file structure
Folders: Rename to GameDatabase
MySQL: Remove MySQL Specifier from table
Database: Move Tables to Interfaces
Database: Reorder functions in header
Database: Simplify property queries
Database: Remove unused queries
Remove extra query definitions as well
Database: Consolidate User getters
Database: Comment logs
Update MySQLDatabase.cpp
Database: Use generic code
Playkey: Fix bad optional access
Database: Move stuff around
WorldServer: Update queries
Ugc reduced by many scopes
use new queries
very fast
tested that ugc still loads
Database: Add auth queries
I tested that only the correct password can sign into an account.
Tested that disabled playkeys do not allow the user to play the game
Database: Add donation query
Database: add objectId queries
Database: Add master queries
Database: Fix mis-named function
Database: Add slash command queries
Mail: Fix itemId type
CharFilter: Use new query
ObjectID: Remove duplicate code
SlashCommand: Update query with function
Database: Add mail queries
Ugc: Fix issues with saving models
Resolve large scope blocks as well
* Database: Add debug try catch rethrow macro
* General fixes
* fix play key not working
* Further fixes
---------
Co-authored-by: Aaron Kimbre <aronwk.aaron@gmail.com>
* Logger: Rename logger to Logger from dLogger
* Logger: Add compile time filename
Fix include issues
Add writers
Add macros
Add macro to force compilation
* Logger: Replace calls with macros
Allows for filename and line number to be logged
* Logger: Add comments
and remove extra define
Logger: Replace with unique_ptr
also flush console at exit. regular file writer should be flushed on file close.
Logger: Remove constexpr on variable
* Logger: Simplify code
* Update Logger.cpp
Fix a race condition that would overwrite the port of zone 0 with the auth server port or a chat server port which would cause a domino effect of desynced server ports
Tested that a sleep(5) in auth still allows a player to connect and login without issues
* chore: cleanup LU(W)string writing
and add methods for reading
remove redunent "packet" from packet reading helpers
move write header to bitstreamutils since it's not packet related
add tests for reading/writing LU(W)Strings
* remove un-needed function defintions in header
* make reading and writing more efficient
* p
p
* quotes
* remove unneeded default
---------
Co-authored-by: David Markowitz <39972741+EmosewaMC@users.noreply.github.com>
* Remove NET_VERSION define
I get to test this on 4 different platforms. yay...
* move stuff around
finally fixed you docker
i love this
Update Dockerfile
Update Dockerfile
change type
Update AuthPackets.cpp
Update AuthServer.cpp
* Update CMakeVariables.txt
* Update sharedconfig.ini
* Update AMFDeserializeTests.cpp
Redo Amf3 functionality
Overhaul the whole thing due to it being outdated and clunky to use
Sometimes you want to keep the value
Update AMFDeserializeTests.cpp
* Fix enum and constructors
Correct enum to a class and simplify names.
Add a proper default constructor
* Update MasterServer.cpp
* Fix bugs and add more tests
* Refactor: AMF with templates in mind
- Remove hard coded bodge
- Use templates and generics to allow for much looser typing and strengthened implementation
- Move code into header only implementation for portability
Refactor: Convert AMF implementation to templates
- Rip out previous implementation
- Remove all extraneous terminology
- Add proper overloads for all types of inserts
- Fix up tests and codebase
* Fix compiler errors
* Check for null first
* Add specialization for const char*
* Update tests for new template specialization
* Switch BitStream to use references
* Rename files
* Check enum bounds on deserialize
I did this on a phone
Clean up macros
more tomorrow
Cleanup and optimize CDActivities table
Remove unused include
Further work on CDActivityRewards
Update MasterServer.cpp
Further animations work
Activities still needs work for a better PK.
fix type
All of these replacements worked
Create internal interface for animations
Allows for user to just call GetAnimationTIme or PlayAnimation rather than passing in arbitrary true false statements
* CDClient cleanup and optimization
- Use static function to get table name
- Remove unused GetName function
- Replace above function with a static GetTableName function
- Remove verbose comments
- Remove verbose initializers
- Remove need to specify table name when getting a table by name
- Remove unused typedef for mac and linux
* Re-add unused table
Convert tables to singletons
- Convert all CDClient tables to singletons
- Move Singleton.h to dCommon
- Reduce header clutter in CDClientManager
* add some more utility to the masterserver -a command
fix compatability with nexus dash
* cleanup code some more
user logger where it makes sense
only take in password if it is needed
log a better error if account cannot be created
* update message
* return before success statement if catching error
* Implement a server res directory
* Only convert if neither exist
* Remove unzip, Update RegEx
* readme updates
Run setup after setting working dir
Address several docker issues
Revert "Run setup after setting working dir"
This reverts commit fd2fb9228e82a350204c1ef61f7ba059479bb12f.
Fix docker
* Remove extra submodules
* Rework logic
* Switch if block
* Remove need to extract fdb from client
* Change log name
* Update FdbToSqlite.cpp
Replace magic numbers with constexpr calculated times.
Tested that trying to create a new instance while shutting down doesn't allow a new instance to be created.
* Resolve warnings and change init order
Initialize dConfig first, before logger so we know whether or not to log to console
Initialize namespace Game variables to nullptr so they are a known value if accessed before initialization.
Removed unused Game variables
Replaced config with a pointer instead of referencing something on the stack.
Assign return values to system calls to silence warnings.
Tested that the server still compiles, runs and allows me to load into the game.
* Only start Master of config files exist
Also default the logging to console to on on the off chance the files exist but are wrong / corrupted.
Properly exit based on the path taken to shutdown master.
Tested that shutting down through sigint or sigterm returns -1
Tested that a segfault exits the program properly
Need to test that players who are trying to connect while master is shutting down are not able to spawn more child worlds.
Initialize dConfig first, before logger so we know whether or not to log to console
Initialize namespace Game variables to nullptr so they are a known value if accessed before initialization.
Removed unused Game variables
Replaced config with a pointer instead of referencing something on the stack.
Assign return values to system calls to silence warnings.
Tested that the server still compiles, runs and allows me to load into the game.
Brick building as of right now does not implement the undo action properly. This commit addresses the issue with undoing button being non-functional server side and implements the GM needed for addressing further issues.
Implement GameMessage UnUseModel which is called when a model in BrickBuilding is UnUsed. Important for UGC content down the line. Final code has been tested as follows:
1. Placed a model in brick build
2. saved placed a brick
3. repeat 2 and 3 twice more for 6 total models
4. Place a new model in brick mode and then edit all 7 models into one brick model instance
5. Pressing undo returns the converted model to the inventory and properly discards the other 6 without crashing. Intended live behavior is to store this in the inventory instead however behind the scenes work is needed to implement UGC models properly.
Implement enum
Implement the BlueprintSaveResponseType enum so there are less magic numbers sent via packets.
Correct int sizes from unsigned int to uint32_t
Add deserialize test
Add a test for de-serializing a GM that is sent to the client. Assertions verify the data is in the correct order and has no extra information.
Allows the server to be run from a non-build directory. Also only read or write files relative to the build directory, regardless of where the server is run from