-
Notifications
You must be signed in to change notification settings - Fork 173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added Comprehensive Slash Command Documentation #402
Added Comprehensive Slash Command Documentation #402
Conversation
Would it be possible, to move this to a vanity xml file or something along those lines so you could include this with a bit of server code. to allow something like the following?
|
I certainly think a If we held this data in xml, json, or even in the database, we would probably want to come up with a way to automatically build a markdown file based on the data to keep the |
This looks great, imo both are a good idea. I personally would like commands with no requirement to show as 0 and not just blank. As for gmlevel, you might want to note (somehow) that it depends on having a max gmlevel higher than 0. I think setting up commands as an class might be a good idea, then during startup you load your xml/json for the commands with the name, argument, and help paramaters. Though thats another PR. |
Yes, while reading through the code trying to understand what each command does, I badly wanted to refactor the entire command handler. I’ve built command handlers that make use of polymorphism: each command has a class that overrides a method. It makes handling commands much easier, but yeah, that’s another PR. |
Class per command seems overkill. You could clean up our current system a lot if you used a registration function that took the command name, args, and a lambda for the code. |
feedback based on my own notes, which I never got around to making a pr for:
currently undocumented:
miscellaneous other suggestions:
|
All of this is just more reason to entirely refactor the slash command system. We could refactor it to have a dynamic help command based on register commands, args, etc. |
This PR essentially adds a HTML file, not a markdown file. Markdown does have a way to generate tables, it might be nice to use that. My 2ct suggestion:
IMO having the docs in the implementation might be nice, but I'm not sure it makes sense to hide good docs in there, especially as fields in classes. That works for summaries but nor so much for full explainers that don't fit in chat. A good middleground may also be scraping them from comments in the source, but that's more involved. |
Github flavored markdown does have table formatting, re: | Command | Usage | Description | Admin Level Requirement |
| ------- | -------- | ----------------------------------------------------------- | ----------------------- |
| credits | /credits | Displays the names of the people behind Darkflame Universe. | 0 | as well as Command|Usage|Description|Admin Level Requirement
-|-|-|-
credits|/credits|Displays the names of the people behind Darkflame Universe.|0 produce
whether in comments or in -- re: xipho:
alternatively, re-doing the command handler and just doing in-game docs |
Can you elaborate on that? I would think that it reduces maintenance burden because you cannot ever have "reorder to make alphabetic" PRs and you need to keep it up to date whether it's a single file or multiple.
Yeah, every one of those steps I added was meant to be an optional addition to the previous step. I.e. adding the docs to the repo would be nice and then we could turn them into pages if they're sufficiently helpful. Jekyll supports GitHub flavored Markdown by default 1, so it's really just added flexibility in styling. Footnotes |
You don't have to re order commands unless you are re-naming them 🤔 You just add entries in between others. If people are adding commands at the bottom/top/in the wrong spot, those can be called out in the PR. There is a balance between "having to modify X files" and "having to modify a file X times"; I would call the former hell over the latter, but I will agree that it's a preference. I will further say that as an end-user I'd prefer all the commands to be in one place for a reference rather then sprawled between 50 different files. So I still think there is reason to support the mono-doc. If the command list gets very large, it can be segmented into category based docs (a good compromise) but because there are so little right now that still seems like to be more tedious then beneficial. |
All of these problems are solved by a commands system rework with a dynamic help command. You could even make it generate a documentation file if you feel so inclined. |
While yes it would that is a lot of effort and something that this person may not be able/willing to do so in the meantime before someone else gets around to it we should just merge this. |
I think this is fine for now. Some semantic differences and this should def be rebased on main but unless someone else is going to refractor the slash command system, this gives users the ability to at least know what the commands are without having to combine through a cpp file. |
I disagree, I think this will just get left to rot as new commands get added or old ones change. Better to wait for a full-fledged solution than ship a half baked one. |
I would suggest requiring any contributors to update this document before approving their PR if it includes an update to a command or a new command. Although, I suppose that would be too much overhead. |
I think that commands are a rare addition and would be something manageable. |
and we could even go as far as using something along the lines of this to verify if the command handler file is changed both are. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fine with this doc, as long as it is actually markdown.
please use something like this to just convert the table from html to md. https://jmalarcon.github.io/markdowntables/
Tested it and this works pretty well
@DrOverbuild Here is a markdown version of your documentation (no idea why it thinks it is Ruby) you can use to fulfil the above feedback. (Thanks for the tool Aaron) |
Thank you for the feedback, I will update with markdown tables, along with addressing sersorrel's feedback when I can get a chance to look at this. |
Laziness is one of the three virtues |
I don’t see why this energy can’t just be put into making a real commands system. The current one is a holdover from the early days and has a lot of issues. In my mind it’s a much better use of our time to just update the system rather than fiddle with markdown files forevermore. |
That is outside of the scope of this pull request, this is a good in-between while we await someone to refactor that system. |
(thanks to @sersorrel for this information, in discussion of DarkflameUniverse#402)
Alright I have rebased from the latest main branch, converted all of the tables to markdown, and updated with @sersorrel's notes. (Thank you sersorrel very much for your feedback!) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Merging, maintainers are aware if something is added or changed with slash commands, this will need to be updated. |
Was this really merged with no reference to it in the README? |
The documentation for the slash commands is for server maintainers not the average user, I don't see to much of a reason that it needs to be but if you think it should be there, then just add it. |
* Leaderboard Scoring Updates * Leaderboard Scoring Updates * Check user input for the "/runmacro" command Presents users from specifying a file path, and looking up macros in the expected folder. * Add proper sanitizing for input to SQLite database. Adds function `ExecuteQueryWithArgs(query, ...)` to allow for queries with user input. There is a known issue, that the funciton does not work with std::string. All strings must be converted to c strings. * Additional SQLite lookup sanitizing with CDClientDatabase::ExecuteQueryWithArgs() * Additional SQLite lookup sanitizing. Using CDClientDatabase::ExecuteQueryWithArgs() across all known lookups. * Comply with Xiphoseer required changes. Remove the CDClientDatabase::ExecuteQueryWithArgs() function and replace it with CDClientDatabase::CreatePreppedStmt(). This prevents a developer from accidently using %s, or incorrectly passing std::string, and causing a silent error. * Fix whitespace * Fix whitespace Convert to tabs and remove trailing whitespace * Fix UserManager not logging chosen name properly * Fix MasterServer not always closing database connection on exit * Use exit code macros * Improve GitHub issue templates * Adjust chosen character name logging * Explain in issue templates how to get Git commit SHA * Fetch zlib library over HTTPS * Added a GM send after QB complete * resolved MacOS compilation warnings * special case for pets * Client does calcs * uses number of bricks now * removed unnccessary work * dirty bit * fixed erronous log * Fixed skills proxies * Added migration for plunger gun * added comment * updated initial migration Made it so people wont accidentally wipe their database if 0_initial.sql is ever run again * Sped up server shutdown * Destroying database specifier * correct exit * added returns * Update MasterServer.cpp * Chat log no longer needed * Spacing * separated world server to more functions * more specific logging * incorrecly named variable * Updated logging * check if map exists for testmap * simplify * fix tabs/spaces * missed a semicolon * Prevent integer underflow in item removal Previously, the only check that the user wasn't trashing more items than they had was clientsided, and this could be bypassed by contacting the server to remove items via a console or the like, and then trashing them before the server could respond, resulting in the count for the items being less than iStackCount. This check prevents that underflow. * Vault corrections * Ensure items correctly removed from missions Doubt it would have affected anyone, but technically if you had a mission to collect something interactable, and you deleted the items at the same time as interacting with something, this would have counted incorrectly. I'm being defensive because I was an idiot who couldn't read, but in my defence, it was late when I made the first edit, and I'm also a blundering idiot! * Added a bracket... -_- Maybe I should write and test code on my computer rather than using Git as an IDE and commits as the save button... * Update GameMessages.cpp I promise I'm not farming changes. I woke up at like 4AM and realised that I'd screwed up in an obvious way. Note to self: You are ALLOWED to change variables. Wasn't caught in testing because, well, it turns out it's actually impossible to test the edge case this covers, due to the script for the brick console. * implement some missing scripts * fix comparator * fix copy past error * update script path for fans * Simplify some stuff Remove render component in startup * fix volumen physics name * tabs and log * make the hydrant match the lua script * update the Effect ID * remove log * rock hydrants work * honor the logic in the lua script * missed semicolon * scope * ugh, another semicolon * cleaning up some stuff * Fixed Racing Mission * Try, Try Again achievement now progresses when the player gets last place in a race of 3 or more players, or when solo racing is enabled. * Race Series 1 mission from Velocity Lane now progresses correctly. * Fixes * remove dereference (I think that's what it is called) * cleanup logs, fix overrides, define LOTs in header * also apply overrides to AG fans * case for putting you back into FB when leavign space blizzard * Fix solo_racing for Frostburgh's Space Blizzard Racetrack * Fix migration 0 for cd server setting every component to 1901 instead of just component 39 Add migration to fix it for existing users and set the values back to what they were * make newline at end of file * isPlayer changes Changed isPlayer to check for whether the entity has a character instead of checking system address of entity. * Grammar error Level reward needed an underscore * Updated AddItemToInventorySync AddItemToInventorySync now sends the correct loot source type * Vendor buyback inventory Fixed vendor buyback inventory so it properly scrolls when the player adds enough items to it. * added lootsource send in GM WIP commit * corrected number * Specified enum the LOOT_SOURCE enum is now attached to all loot sources. * loot source for item drops Added support for Items to have a loot source attached to them when dropped or rolled. This fixes the issue where achievements would give the item before it appeared in the achievement window. * Revert "isPlayer changes" This reverts commit 2e61839. * missed change for forge * removed debug logs * commit * removed logs * changed loot sources to none Changed loot sources for some scripts to none so they properly give loot to the player. * Skill Tasks changes Addressed an issue where the Spinjitzu Initiate achievement would not progress. This also allows mission tasks that specify that the player must get a kill on an enemy with a skill to progress. Tested mission 1935 and 1139 and both missions progressed and completed as intended. * Corrected action for OverTimeBehavior * Typo in NsConcertInstruments * Updated vendor component Fixed a few issues in VendorComponent. - Corrected serialization to only happen on construction. - Added functionality to refresh the vendor based on info from the vendor component table - some whitespaceing inconsistencies. - Sorted includes. Tested the vendor in Nimbus Station and when the player re-enters the world, the vendor inventory refreshes, as opposed to previously where the world would need to reset in order to refresh the inventory. * corrected serialization * added comments * Vendor refresh change Changed vendor refresh to happen as soon as it is able to. * Added Loot Buff Behavior Added functions and methods to support the pickup radius. Functionality includes: Corrected serialization for ControllablePhysicsComponent which correctly serializes the pickup radius to the client. A method to add the pickup radius to the list of active pickup radii the component has. A method to remove and re-calculate the largest active radii the component currently has. Tested equipping all variations of the LootBuff behavior (passive skills, items, item skills) and all functioned as intended. Tested equipping multiple items with a loot buff and then unequipping them in different orders. Tested adding pickup radii of different values and the server correctly adjusted the pickup radius to the largest one currently equipped. * Serialize ape when changing armor value * Added back brick inventory resizing * Added animation Added the GM animation and stun for the Nexus Tower Paradox Panels for mission 1281. Tested on local instance and animation played correctly when having the mission and did not play at all before or after completing the mission * Split out Darkitect reveal into it's own file add reveal to Fong * Update RebuildComponent.h Quickbuilds jump fix Corrected an error where the builder was erronously changed to an empty lwoobjid when a quickbuild was completed, causing the builds to no longer jump on completion (if configured to do so.) Packet captures from live show that we do not want to get rid of the builder during resetting or during completion of the build so the file has been changed to not clear the builder in those cases. * Implement Rocket Launch Lup Component * Add precondition check * Client handles rocket being unequiped when closing the dialog and when launching * Styling edits * fix Java doc comments removed unused param * remove sysaddr from call in Game Messages * bump patch version - Quickbuilds jump on completion - Fong now plays darkitect cutscene on a mission completion - Nexus Tower panels now play the repair animation - Vendors can now refresh - Loot magnet abilities now work - Spinjitzu Initiate now works - Achievement items now get moved to the players inventory as they did in live, by popping up from the achievement box - pop up when you get a new life container now shows up as it did in live - Parrot in Nexus Tower is no longer an oar - Fixed an item underflow bug - Vaults for Items and Models now are the same size and start out at the correct size - The buy back inventory for vendors now allows you to scroll (only after backing out of the menu first for some reason) - Untamed pets no longer cause client hitches in Nimbus Station and Forbidden Valley - When shutting down, the server now shuts down in 1 second instead of 75 - Plunger gun is no longer a main hand item - Skills for proxy items no longer require a reload to be used - Resolved some MacOS compilation warnings - Quickbuilds now play a celebration on completion - Bug reports are more specific - Property viewer and plaques now work as they did in live and display all the correct information - Properties now also save more often instead of every 10 minutes - Avant Gardens Survival buff station now works - Exploding dummy for Nexus Tower combat training now works and allows progression - Racing missions for smashables now work - Apes now act as they did in live - Dragons on Crux Prime now spawn the quick build for insta smashes - Civilian players can no longer use /playanim - Proxy items no longer grant extra stats - Shooting gallery daily missions now work - Operators can now spawn race cars in non-racing worlds - Level rewards now show their achievement as they did in live We really need to do this monthly so the notes arent this long lol * Proper Rocket Holding Sanity checks on Prop and LUP launchpads to not open if no valid rocket Add serialization for sending item configs so that rockets show for other players * Exclude space blizzard from Zone ghosting * replace the survey link with the repo link (not that anything can load in the in-game browser anyway) * Set url from world config instead of hardcoding * Add AM Teapot server Resolves DarkflameUniverse#224 * get zones from settings * remove cdclient include * resolves DarkflameUniverse#556 * climbable server side settings * explicit set to 0 * resolve comments * maybe fix it * Added Comprehensive Slash Command Documentation (DarkflameUniverse#402) * Added documentation for all available commands * Adjust formatting, removing backtick characters * Replace HTML tables with Markdown tables * Formatting changes * Suggestions from @sersorrel in DarkflameUniverse#402 and other minor edits * Add detailed usage for /inspect (thanks to @sersorrel for this information, in discussion of DarkflameUniverse#402) * Fixed display logic for NS Survival leaderboard * Update Docker.md with buildkit and submodule notes. (DarkflameUniverse#458) * Update Docker.md Add link to enabling docker buildkit. Add note to remember to clone submodules. * Remove unpacked client option Unpacked client does not have required directories/files (e.g. /versions/trunk.txt) and thus the packed client is required. * Add note about renaming CDClient.fdb DarkflameSetup will fail because it cannot find cdclient.fdb. However, CDClient.fdb exists. Renaming it fixes the issue. * Remove extra "client" * Add instructions on solving missing DLL issue (DarkflameUniverse#379) * Add instructions on solving missing DLL issue * Repair formatting to be consistent * only make teams for minigames if we have more than one participant * Fix overrides in ActMine (DarkflameUniverse#568) * Corrected string to long conversion For Windows, the definition for a long is 32 bits, not 64 bits like on other operating systems. This caused an issue on Windows only where a number larger than 32 bits was attempted to be converted to a long, the WorldServer would crash. This commit replaces all instances of `stol` with `stoull` to further define a long and reduce ambiguity of number length. * Fix unhealthy docker containers (DarkflameUniverse#574) * Add curl to brickfix dockerfile. * Add curl to AccountManager docker. * Fix issue preventing container from building. * Move owner override Mover owner override to be earlier so that we dont try to get the team of an entity that doesnt have a team and may be a child entity of a player. Tested changes with a team of two players and players were correctly given credit for kills * Fix item getter for moving items This fixes an issue where the item would get overwritten and would effectively fetch a "random" item in the inventory to move instead of the requested one. * Address bricks selling 1 at a time Bricks have a stack size of zero in the cdclient so we need to make sure to give them a full stack size of 999 as we do for the bricks inventory with the selling inventory. * Don't give activity loot for Battle of Nimbus Station Address an issue on Brick Mesa where Battle of Nimbus Station was dropping activity loot. Tested completing Battle of Nimbus Station and ending early and was not given loot as is expected. * Revert "Don't give activity loot for Battle of Nimbus Station" * Add /setlevel slash command Add the setlevel slash command. Command accepts parameters of the requested level and a player to set the level of. This also adjects the uscore of the player accordingly. The player must re-log upon using the command to see any updates to themselves or others. * Add setlevel to commands doc * Address quickbuilds being unbuildable Address an issue where quickbuilds would become unbuildable. The main issue lied within serializing parent/child info too often for some reason / serializing it when the info wasnt dirty. Only serializing this info when it is actually dirty and has changed has addressed the issue and allows quickbuilds to never break. * Properly place build activator The build activator as a result of the previous changes was spawning at the wrong position. This commit pulls the activators position from the settings (should they exist) and sets them accordingly. * Added comment * Address reviews Changed the activator position parsing to have TryParse so that we dont throw an exception trying to load the position. Should the loading of the activator position fail the game will default to the position of the entity. change delimiter value to hex Updated the character delimiter used for rebuild_activator settings to use hex Remove extra parsing of activator position in Entity.cpp we were parsing the activator position but when doing so where we were, this was after we had ended up spawning the activator since that is now in the constructor of the rebuild component. The extra parsing has been removed. Simplify dirty parent/child info Simplify the if condition for parent child info. This info only needs to be written should it be changed (dirty) or if the packet being sent is a construction, meaning that a requesting player needs all base data and needs to know what parents/children an entity has at that time. get rid of extra parenthesis Left over extra parenthesis were around these conditions on accident * remove children We need to make sure we are actually deleting children from the vector of children when they are deleted as entities. * Add to common vars and dnet Added values to enums on dnet and common vars that were missing * Add GM Added GM for UseItemRequirementsResponse that was missing in current implementation * Add pet imagination draining Address an issue where pets did not consume imagination when they were spawned. * Added config setting Added a config setting to allow players to disable pets consuming imagination. This value defaults to zero as a feature of DLU. * inverted config check Since most people are not regularly updating their config files, this needs to assume the value is disabled rather than enabled. * Dont take imagination on initial tame * update name Pets will take imagination by default now * Move to new branch Added comments Added some comments and changed a variable name to be less ambiguous. * Move to new branch Added comments Added some comments and changed a variable name to be less ambiguous. * The shooting Gallery now properly ends when a player leaves the instance The shooting Gallery now properly ends when a player leaves the instance Frakjaw player update Update the Frakjaw battle instance script to remove players when they leave the instance Simplify comparison Simplify comparison for entity pointer to be implicit * Update README.md * Added item precondition checks Added item precondition checks for items so players who do not meet the conditions cannot use the items. tested with the faction bag tokens and they only gave the tokens when a player met all the preconditions or was a Game Master of level 6+ * Fix issue with dropship computer The dropship computer now no longer gives a player a second mission item should they interact with it again after mission completion * Add new contributors to contributions list * Update Credits markdown data * Revert "Update Credits markdown data" This reverts commit e24ad43. * Update CREDITS.md * Update Xiphoseers position on the project * Reflect the same order as that in the CREDITS.md file * Replace list with new formatting * Update CREDITS.md with more accurate information * Update README.md * Update Darwins link on the README * Update to simpler list. * removing myself from the situation * yoink I just want mounts to work, this isn't fun * Update README.md * Address players leaving Battle of Nimbus Station causing a crash that wont save (DarkflameUniverse#600) * Address issue with Inventor Beehive and Buccaneer Monkey ability on valiant weapon (DarkflameUniverse#604) * Add Script Add the FireFirstSkillonStartup script to allow for scripts that use this to function. * Add comments * Address incorrect stun played by growl speakers (DarkflameUniverse#605) Add the FireFirstSkillonStartup script to allow for scripts that use this to function. Add comments Fix QB Stunner scripts Use SetVar for variable Remember that variables for scripts need to be stored in the entity since a script can be used across multiple entities. Remove unused variable Specify Unsigned Int Start skill asap, not next tick * breakout possessor from char comp (DarkflameUniverse#606) * breakout possessor from char comp Use the correct component for possessor cleanup scirps that were using possessor improperly beginnings of mounts * fix comments added bounds check * Add Aarch64 support (DarkflameUniverse#231) * added mariadb-connector-cpp submodule * raknet aarch64 support * fix compile errors * mariadb connector swap (in progress) * update CMakeLists, add preprocessor definition to switch between mysql and mariadb connectors * update types with missing aarch64 check * corrected adding extra flag to properly compile mariadbconn in CMakeLists * updated readme with arm builds section * fix build failure if test folder does not exist * Remove mysql connector from all builds, add mariadbconnector to windows build * readd Linux check for backtrace lib to CMakeLists.txt * Separate system specific mariadbconncpp extra compile flags * Copy dlls to exes directory once built * fetch prebuilt binaries on windows so that ClangCL can be used * Delay load dll so that plugin directory is set correctly * Fixed typo in glibcxx compile flag * whitespacing, spaces -> tabs * Updated README.md, included instructions to update * Updated README.md added libssl-dev requirement and removed mysql connector references from macOS builds section * apple compile fixes for zlib and shared library name * add windows arm64 checks to raknet * remove extra . in shared library location * Setup plugins directory for the connector to search in, pass openssl_root_dir on for apple * Fix copy paths for single config generators and non windows * change plugin folder location, another single config generator fix * GENERATOR_IS_MULTI_CONFIG is a property not a variable * Fixed a few errors after merge * Fix plugin directory path, force windows to look at the right folder * fixed directory name for make_directory command * Update README.md Updated MacOS, Windows build instructions. * set INSTALL_PLUGINDIR so that the right directory is used * Support for relative rpath for docker build * added mariadb-connector-cpp submodule * raknet aarch64 support * fix compile errors * mariadb connector swap (in progress) * update CMakeLists, add preprocessor definition to switch between mysql and mariadb connectors * update types with missing aarch64 check * corrected adding extra flag to properly compile mariadbconn in CMakeLists * updated readme with arm builds section * fix build failure if test folder does not exist * Remove mysql connector from all builds, add mariadbconnector to windows build * readd Linux check for backtrace lib to CMakeLists.txt * Separate system specific mariadbconncpp extra compile flags * Copy dlls to exes directory once built * fetch prebuilt binaries on windows so that ClangCL can be used * Delay load dll so that plugin directory is set correctly * Fixed typo in glibcxx compile flag * whitespacing, spaces -> tabs * Updated README.md, included instructions to update * Updated README.md added libssl-dev requirement and removed mysql connector references from macOS builds section * apple compile fixes for zlib and shared library name * add windows arm64 checks to raknet * Setup plugins directory for the connector to search in, pass openssl_root_dir on for apple * Fix copy paths for single config generators and non windows * change plugin folder location, another single config generator fix * GENERATOR_IS_MULTI_CONFIG is a property not a variable * Fixed a few errors after merge * Fix plugin directory path, force windows to look at the right folder * fixed directory name for make_directory command * Update README.md Updated MacOS, Windows build instructions. * set INSTALL_PLUGINDIR so that the right directory is used * Support for relative rpath for docker build * Rebase on main * Remove extra git submodule * Update CMakeLists.txt * Remove CMakeLists.txt file from mariadb Remove the CMakeLists.txt file from the mariaDBConnector so we dont build the tests. Also add a config option to the CMakeVariables.txt so you can build the connector with multiple jobs * Compile on windows Specify the mariadbcpp.dll file location with a defined absolute path so windows knows it actually exists. * default to 1 job Default mariadb jobs running in parallel to 1 instead of 4 * Move mariadbcpp.dll file to the expected directory on windows * Changed plugin Updated the plugin location from the project binary directory to the expected location, the mariadb binary directory. * Addressed windows dll issues by moving files to the expected directory instead of a directory that wouldnt get created * Update README Co-authored-by: Aaron Kimbrell <aronwk.aaron@gmail.com> Co-authored-by: EmosewaMC <39972741+EmosewaMC@users.noreply.github.com> * Improve CI (DarkflameUniverse#345) * Don't upload artifacts unless on main * Fix if/endif mismatch warning * Add thirdparty CMakeLists * Keep more warnings around * Remove more RakNet warnings * Fix indentation and divided the cmake into libraries and bins - Each library and binary got their own CMakeLists.txt - Indentation was fixed everywhere - Weird if statement flows replaced * Revert "Fix indentation and divided the cmake into libraries and bins" This reverts commit 005a124. * Add async value assignments Resolves a warning where on some compilers this thread would _not_ be run async and would instead be run synchronous with the main thread, halting execution. * Revert "Add async value assignments" This commit was meant to be done on a seaparate branch but was accidentally pushed upstream to this branch. * Fix Merge Conflict * Resolve errors Resolve errors with using continue() outside a foreach loop. * breakout mariadb to thirdparty cmake Move the mariadb cmake to its own directory to make each cmake file more focussed. Co-authored-by: Jett <55758076+Jettford@users.noreply.github.com> Co-authored-by: EmosewaMC <39972741+EmosewaMC@users.noreply.github.com> * Implement Precompiled Headers (DarkflameUniverse#591) When applied, this will speed up compile times dramatically. * Add Venture Vision Behavior (DarkflameUniverse#609) Add the Venture Vision behavior and associated functionality. Pet digs still do not show up however. The Kit bonus for factions have been tested and properly grant and take away the buff when it is casted and uncasted. Tested as well using multiple Venture Vision behaviors at once and the vision only went away when there were zero equipped at once. Remove extra includes Convert to Tabs Remove extra forward declaration * Optimize scripts for faster compilation (DarkflameUniverse#597) * Implement Precompiled Headers * First volume of optimizations * Scripts A-B Gonna be doing this in alphabetical order now. * C Scripts and remove unneeded includes from base cppscripts header Remove the MissionComponent and Loot includes from all base scripts and place their needed includes in the respective scripts. * D scripts * F scripts * F scripts 2 Finish up removing extraneous includes from scripts that start with the letter F * G scripts Removing extraneous includes from scripts that start with the letter G * I scripts Removing extraneous includes from scripts that start with the letter I * M-Z scripts Removing extraneous includes from scripts that start with the letter M-Z * Revert "Implement Precompiled Headers" This reverts commit d79d8d4. * Revert "Revert "Implement Precompiled Headers"" This reverts commit 0597faf. * Add back in PCH Add back in PCH * Fix CMake Whitespace Remove duplicate file glob Remove newline * Address modular build not returning parts upon switching some out (DarkflameUniverse#614) * Address items not re-equipping upon exiting build mode (DarkflameUniverse#615) * Implement Precompiled Headers * fix cmake * Fix modular builds not returning parts Modular builds would not search inventory A for their corresponding item and by default would only look in the models bag. This PR forces the item to be looked for in the inventory its coming from (inventoryA) as a second resort before doing the final search in the default inventory of the item. Tested modular building a car and a rocket and when replacing parts the part that was already placed was returned to the inventory correctly. * Push equipped items upon entering build mode Fixes an issue where leaving build mode anywhere would not re-equip your items. This also implements the feature to set your stats back to full, as was done in the live game. Tested exiting build mode on a property with full venture gear and all gear was re-equipped and stats were set to the expected values. * Fix item collection missions (DarkflameUniverse#617) * Implement Precompiled Headers * fix cmake * Fix modular builds not returning parts Modular builds would not search inventory A for their corresponding item and by default would only look in the models bag. This PR forces the item to be looked for in the inventory its coming from (inventoryA) as a second resort before doing the final search in the default inventory of the item. Tested modular building a car and a rocket and when replacing parts the part that was already placed was returned to the inventory correctly. * Push equipped items upon entering build mode Fixes an issue where leaving build mode anywhere would not re-equip your items. This also implements the feature to set your stats back to full, as was done in the live game. Tested exiting build mode on a property with full venture gear and all gear was re-equipped and stats were set to the expected values. * Fix item collection missions Item collection missions are only supposed to take items should they be in the items inventory or the hidden inventory and no others. This change removes the global inventory find of items and only removes it from the two inventories that items get taken from in live, ITEMS and HIDDEN Tested completing mission 470 and 477 as well as 622 and the correct items were taken or not taken, based on the inventory the target item was in. * Add openssl to list of package requirements I forgot to add this to the list of needed packages. * Fix nested preconditions not evaluating costs (DarkflameUniverse#618) Fixed an issue with some builds that had preconditions not taking items from the players due to the evaluate costs parameter not being passed to nested conditions. Tested the build in Avant Gardens and it now correctly takes items from the player upon completion. Co-authored-by: Verathian <verathian@gmail.com> Co-authored-by: TheMatt2 <TheMatt2@users.noreply.github.com> Co-authored-by: TheMatt2 <22862051+TheMatt2@users.noreply.github.com> Co-authored-by: Marcono1234 <Marcono1234@users.noreply.github.com> Co-authored-by: EmosewaMC <39972741+EmosewaMC@users.noreply.github.com> Co-authored-by: Gie "Max" Vanommeslaeghe <gievanom@hotmail.com> Co-authored-by: Aaron Kimbre <aronwk.aaron@gmail.com> Co-authored-by: NinjaOfLU <theninjaoflu@gmail.com> Co-authored-by: Majo <git@maxoverlack.dev> Co-authored-by: Jasper Reddin <jbreddin@uams.edu> Co-authored-by: HailStorm32 <demetriv.s.7@gmail.com> Co-authored-by: luke-sparks <49217947+luke-sparks@users.noreply.github.com> Co-authored-by: Jett <55758076+Jettford@users.noreply.github.com> Co-authored-by: Shane Clark <ff.shane.clark@outlook.com> Co-authored-by: Avery <averysumner@gmail.com> Co-authored-by: jumpy-badger <the.jumpy.badger@gmail.com> Co-authored-by: Daniel Seiler <hi@dseiler.eu>
This PR takes the original command documentation from the README and adds comprehensive details for each command available in game.
This creates a new file
/docs/Commands.md
. All available commands are split up by their use — general commands, moderation, server operation, and development. They are then sorted by their required permission level and then by alphabetical order.This detailed list of commands should help both server operators run their servers and contributors get started with development.
This PR also pioneers a common practice among many open source projects, where markdown documentation is placed in a top level
docs
folder. In this folder we can continue to contribute markdown documentation in order to help with server setup and operation, as well as development and contributions. Documentation here would be more specific to Darkflame Universe and its development than documentation found at https://lu-dev.net.