* feat: re-write persistent object ID tracker
Features:
- Remove random objectIDs entirely
- Replace random objectIDs with persistentIDs
- Remove the need to contact the MASTER server for a persistent ID
- Add persistent ID logic to WorldServers that use transactions to guarantee unique IDs no matter when they are generated
- Default character xml version to be the most recent one
Fixes:
- Return optional from GetModel (and check for nullopt where it may exist)
- Regenerate inventory item ids on first login to be unique item IDs (fixes all those random IDs
Pet IDs and subkeys are left alone and are assumed to be reserved (checks are there to prevent this)
There is also duplicate check logic in place for properties and UGC/Models
* Update comment and log
* fix: sqlite transaction bug
* fix colliding temp item ids
temp items should not be saved. would cause issues between worlds as experienced before this commit
fixes hardcore modes uscore drops
adds config option for excluded item drops
f
feat: Add logging for config options on load and reload
feat: Add logging for config options on load and reload
* merge ServerType and ServiceID enums
* rename eConnectionType to ServiceType in preparation for enum unification
* unify ServiceID and ServiceType enums
* shrink ServiceType to an 8-bit integer
* fix linux compilation error and update gamemsg test
* return to uint16_t
* Update dNet/AuthPackets.cpp
Use cast instead of padding
Co-authored-by: David Markowitz <39972741+EmosewaMC@users.noreply.github.com>
* Add default case to MasterServer.cpp
* move ref back to type
* Another formatting fix
* Fix comment to be more accurate
---------
Co-authored-by: jadebenn <9892985+jadebenn@users.noreply.github.com>
Co-authored-by: David Markowitz <39972741+EmosewaMC@users.noreply.github.com>
* replace linux calls
* windows api
* log child PIDs in parent process
* fix typo for windows
* functions now return the process ID
* use wchar_t for windows APIs
* Update Start.cpp
Try to fix MacOS issues
* Conditionally include unistd.h
* remove sudo config option and add error message for linux
* fix windows .exe extension
* REALLY fix windows
* try replacing c_str() with data()
* really REALLY fix Windows
* Update dNet/dServer.cpp
Co-authored-by: David Markowitz <39972741+EmosewaMC@users.noreply.github.com>
* Update dServer.cpp
* simplify leaderboard code, fully abstract database
* update exception catching
* update exception catching and sql references, remove ugc from gamemessages
fix deleting model
remove unrelated changes
Update GameMessages.cpp
* remove ugc from gamemessages
* Update GameMessages.cpp
* Update Leaderboard.cpp
* bug fixes
* fix racing leaderboard
* remove extra stuff
* update
* add sqlite
* use a default for optimizations
* update sqlite
* Fix limits on update and delete
* fix bugs
* use definition to switch between databases
* add switch for different backends
* fix include guard and includes
* always build both
* add mysql if block
* Update Database.cpp
* add new options and add check to prevent overriding mysql
* correct config names
* Update README.md
* Update README.md
* merge to 1 sql file for sqlite database
* move to sqlite folder
* add back mysql migrations
* Update README.md
* add migration to correct the folder name or mysql
* yes aron
* updates
* Update CMakeLists.txt
* dont use paths at all, add where check to only update if folder name still exist
check also doesnt check for slashes and assumes one will be there since it will be.
* default dont auto create account
for releases we can change this flag
* default 0
* add times played query
* fix leaderboard not incrementing on a not better score
* add env vars with defaults for docker
* use an "enum"
* default to mariadb
* Update .env.example
* Add MSVC optimization flags
* test moving flags to json
* Update CMakePresets.json
* testing
* trying more variations on the flags
* third test
* testing if these even have any effect
* ditto
* final(?) try for now
* ONE MORE TIME
* trying 'init' flags instead
* export the compile commands so I can see if they're having any effect
* move out g++ O2 flag
* add Linux debug preset
* update CMake presets
* edit macos presets
* try adding build types back to mac
* macos refuses to work :(
* try using compiler flags for mac instead
* fix typo in windows preset
* build reorganization and experimental clang support
* temporarily remove macos build for testing purposes
* updated cmake workflows
* unexclude toolchain dir
* update .gitignore
* fix build directory issue
* edit build script
* update cmake configs
* attempted docker fix
* try zero-initializinng this struct to solve docker issue
* try fixing macos build
* one last MacOS try for the night
* try disabling an apple-specific build rule
* more fiddling with mac test builds
* try and narrow down the macos build failure cause
* try stripping out all the custom macos test logic again
* I'm really just throwing everything to the wall and seeing what sticks
* more macos tinkering
* implib
* try manual link directory specification
* save me
* aaaaaaaaa
* paths paths paths
* Revert "paths paths paths"
This reverts commit 9a7d86aa6c59e73de27fbcda2111f7a1472008f4.
* Revert "aaaaaaaaa"
This reverts commit 338279c396e7c4a78174929a0aaf5205f2c026e6.
* Revert "save me"
This reverts commit bd73aa21a9cd1625f7cf567ab5b56bde46c0af0e.
* Revert "try manual link directory specification"
This reverts commit 0c2d40632ee5df9c241532d8bf62de9969e47f51.
* Revert "implib"
This reverts commit d41349d6edada6a041c64971730eed1c51af14c5.
* Revert "more macos tinkering"
This reverts commit 829ec35b57983ad4444d90ab780fff95a8b47608.
* Revert "I'm really just throwing everything to the wall and seeing what sticks"
This reverts commit 1a05b027fe822a94e5a6b70e6c744623d6a98e61.
* Revert "try stripping out all the custom macos test logic again"
This reverts commit cc15a26ce80ff9cfec5f1a94b0c00c42e1832c55.
* Revert "try and narrow down the macos build failure cause"
This reverts commit 5fd86833fa6e421860496c3626415ab70c93a795.
* Revert "more fiddling with mac test builds"
This reverts commit 0f843c02c90b2aa5f0c211e19c47b00798c295c8.
* Revert "try disabling an apple-specific build rule"
This reverts commit 45ec66e97605e3ea5b0a76f6eed0ec6f955c1675.
* back to debug messages
* see if this re-breaks mac
* are these messages actually somehow fixing the issue?
* was not actually fixed
* add debug messages (again)
* debug try 2
* change runtime output dir
* rename gcc to gnu
* expand cmake presets
* fix preset
* change defaults
* altered cmake configuration scripts
* disable /WX on MSVC
* update github actions
* update build presets
* change gnu and clang build directories to enable consistent artifact generation
* add RelWithDebInfo presets and move -Werror flag into presets.json
* use DLU_CONFIG_DIR envvar
* CMakePresets indentation
* temp fix for MSVC debug builds
* add admin account creation options from cli
* use actual gm levels
felt under delivered in previous iteration.
* Update dMasterServer/MasterServer.cpp
Co-authored-by: Daniel Seiler <me@xiphoseer.de>
---------
Co-authored-by: Daniel Seiler <me@xiphoseer.de>
Tested with logs that queries to get soft and hard cap actually succeed now
Logs about slash command handler command registration and vanity NPC creation in mis matched worlds are now removed.
* chore: supress warnings on external library headers and actually get rid of the last old-style casts
* remove commented out section I forgot
* update cmake required version to 3.25 unless we can find another way to do this
* update readme
* Update CMakeLists.txt
* fix: more include changes
* fix: remove dZoneManager from global include
* fix: dDatabase
* fix: dCommon
* fix: object libs
* fix: rebase
* fix: bcrypt
* wip: try simplified connector build
* fix: update dockerfile
* fix: mariadb C/C++ on apple
* feat: Move scripts to CMAKE_MODULE_PATH
* fix: dPropertyBehaviors
* fix: macos?
* fix: Dockerfile
* fix: macos?
* fix: macos?
* fix: macos?
* fix: macos?
* fix: macos?
* try: install_name_tool
* fix not building on unix
* fix include paths
* Remove code changes
Will fix in another PR.
* format pass
remove 2 more included directories.
remove commented out code
add status to messages
* comments and format
surround include directories with quotes
remove commented out code
remove debug messages
* Update CMakeLists.txt
---------
Co-authored-by: David Markowitz <EmosewaMC@gmail.com>
Co-authored-by: David Markowitz <39972741+EmosewaMC@users.noreply.github.com>
* Changed how the TryParse function works (and also did some general cleanup along the way)
* Update noexcept attributes (verified these are correct)
* Add fp overload for MacOS functionality
* resolving some feedback
* Split out unrelated changes to CleanupRoundup branch
* Update in response to feedback
* the consequences of emo's member variable renaming request
* Revert "the consequences of emo's member variable renaming request"
This reverts commit bf318caeda34f4439c1769fd7d5b77d341f7f646.
* Fully revert renaming attempt
* Revert "the consequences of emo's member variable renaming request"
This reverts commit bf318caeda34f4439c1769fd7d5b77d341f7f646.
Fully revert renaming attempt
* Created ClientVersion.h and moved the client version defaults to it
* Fix partial parsing and MacOS floating point errors
* attempting fix to MacOS compiler error
* syntax pass (should be the last commit unless the CI fails)
* ah, wait, forgot to uncomment the preprocessor statements for MacOS. THIS should be the last commit pending CI
* Okay, one last thing I noticed: We were including C headers here. Now they're C++ headers. Pinky swear this is it!
* typo and I am OCD. please let this be the last
* hash is usally but not always noexcept, so the specifier should go
* Address MOST of the feedback
* address the claim codes issue
* 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>