1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2024-11-14 03:37:16 +01:00
Commit Graph

43 Commits

Author SHA1 Message Date
Sandu Liviu Catalin
4ad9402d8a Implement association of arbitrary user data in command listeners.
Also keep track of all listener instances by having them link to eachother as a double linked list. This should make it easy to release any script resources at shutdown.
Now that all listeners are being tracked, binding callbacks is less strict and does not require a listener to be attached anymore.
2016-10-29 22:08:38 +03:00
Sandu Liviu Catalin
9fcb65f63d Don't call the debugger explicitly where implicitly called. 2016-08-26 17:38:38 +03:00
Sandu Liviu Catalin
5d518ef479 Adjust the command execution to invoke the debugger and perform a traceback when catching script exceptions.
Don't catch application exceptions because in command execution because they probably left the stack in an invalid state and the server should be allowed to crash.
2016-08-26 17:18:18 +03:00
Sandu Liviu Catalin
cd6e185d65 Fix issue where the command arguments would always fallback to string because the identified variable was not set to true.
Fix issue with boolean argument types where more data then necessary was copied from the argument string which could cause it to fail if anything other than the null terminator was following the boolean argument.
Few other minor adjustments to keep the code style consistent.
2016-07-14 22:19:10 +03:00
Sandu Liviu Catalin
498c02fa83 Properly terminate all command controllers and release their resources and callbacks to prevent a server crash at shutdown since callbacks were not released. 2016-07-14 21:29:04 +03:00
Sandu Liviu Catalin
50b396bf05 Minor adjustments in command system manager method names. And added brackets to make the code more clear. 2016-07-14 21:19:14 +03:00
Sandu Liviu Catalin
463dc75d91 Add function to retrieve command listeners associated with a certain manager as array or table and also to iterate them with a callback. Should close #19 2016-07-14 19:20:49 +03:00
Sandu Liviu Catalin
f5777cecc7 Prevent the command destructor from dissociating the listener from the manager in destructor when the container was resized. 2016-07-12 03:10:38 +03:00
Sandu Liviu Catalin
a373682cee Adjust the smart pointers in the Sqrat library.
Do not overwrite command listener options inc constructor.
Few other minor changes.
2016-07-12 02:43:29 +03:00
Sandu Liviu Catalin
749f232d06 Minor adjustment when creating command listeners directly from the command manager. 2016-07-12 00:11:54 +03:00
Sandu Liviu Catalin
7bb0d5f947 Adjust the code to use the .what() method from the Sqrat exception. 2016-07-09 14:18:09 +03:00
Sandu Liviu Catalin
cfe2d3b4ed Forgot to the OnAuth property for commands manager which was still using the same name as OnFail. 2016-07-03 19:29:50 +03:00
Sandu Liviu Catalin
3094e14015 Forgot to swap command execution contexts in guard. 2016-07-03 19:03:36 +03:00
Sandu Liviu Catalin
1963c8e636 Implement option to retrieve the manager associated with a command and the number of commands managed by a manager. 2016-07-03 03:44:44 +03:00
Sandu Liviu Catalin
1007eac3ed Initial implementation of the new command system. 2016-07-03 03:22:00 +03:00
Sandu Liviu Catalin
2e55f99860 Also release the context when terminating the command manager. 2016-06-27 17:46:12 +03:00
Sandu Liviu Catalin
6489dfdf08 Fix the command system which would fail on recursive command execution. 2016-06-08 16:26:55 +03:00
Sandu Liviu Catalin
0c92601362 Update the module API and merge shared code between modules and host plugin. 2016-06-03 21:26:19 +03:00
Sandu Liviu Catalin
f2361a27c3 Untested update to the new plugin API.
Various other changes to the plugin as well.
2016-05-22 06:20:38 +03:00
Sandu Liviu Catalin
b818a162ee Initial implementation of the standard math library.
Implemented utilities to convert between fundamental types.
Implemented helper functions to retrieve numeric values from the stack at all costs.
Implemented various delegates on the long integer types to mimic the standard types.
Moved most of the stack utilities in a separate source.
Various other fixes and improvements.
2016-04-14 03:08:06 +03:00
Sandu Liviu Catalin
484b6978fb Minor changes in modules and host plugin. 2016-04-02 13:13:32 +03:00
Sandu Liviu Catalin
3a08e17cad Remove duplicate information when warning about command name collisions. 2016-03-29 05:58:12 +03:00
Sandu Liviu Catalin
ff6cacaf68 Dumb approach to recive some kind of asserts if the program crashes because a component was used after it was deleted. 2016-03-24 06:43:02 +02:00
Sandu Liviu Catalin
8088ba94c2 Updated the exception system in the main plugin to also include the location in the source files in debug builds.
Moved the functions that extract base types from strings as static functions under the associated type.
Revised some of the base shared code.
Fixed some of the functions in the String library that did not take into account the null terminator.
2016-03-21 22:37:58 +02:00
Sandu Liviu Catalin
afc72a0162 Fixed a bug in the command system that did not take into account the null terminator when finding the command separator.
Added the option to retrieve the listener instance of the currently executed command.
Moved several helper functions to where they belong.
2016-03-17 22:06:14 +02:00
Sandu Liviu Catalin
839c3c3434 Allow the retrieval of the currently executed command from the command system.
Also improve the way errors during the execution are handled and resources are released.
2016-03-16 19:11:42 +02:00
Sandu Liviu Catalin
98b2ddfda6 Fix bug in command system when identifiying where the command name ends.
Also add a quick helper function to retrieve the number of existing commands.
2016-03-15 14:12:14 +02:00
Sandu Liviu Catalin
acaf826498 Revised the implementation for the command system to be safer in situations that could lead to the destruction of the listener instance while still used.
Also changed the command system to store the commands in a contiguous container since commands are only inserted once and constantly accessed after.
Documented the command listener member functions.
Various other fixes and improvements.
2016-03-15 10:56:00 +02:00
Sandu Liviu Catalin
f27a195b6f Fixed the INI compilation on Linux by reverting to the original library.
Fixed an infinite loop in the parsing of command specification strings.
Added the option to retrieve common configs with a fall back value if they don't exist.
Few other minor changes.
2016-03-11 20:04:26 +02:00
Sandu Liviu Catalin
70e5f0ba21 Migrated the host module to C++ exceptions as well.
Also enabled the latest C++ revision in the project.
Replaced the Random library with the one provided by C++11.
Implemented a simple AES256 encryption class.
Various other fixes and improvements.
2016-03-10 05:57:13 +02:00
Sandu Liviu Catalin
bedf03c9cd Implemented the IRC library.
Fixed a bug in the Routine system that caused crashes when constructed with only the first three arguments because it wasn't attached.
Implemented a gentle release of functions to not release them if the reference count is 1.
Adjusted the Routine and Command system to not be necessary to include them in the module core.
Moved the INI and XML libraries into their own namespace.
Various other modifications and fixes.
2016-02-23 05:23:56 +02:00
Sandu Liviu Catalin
35d662a02f Minor additions and fixes to the command system. 2016-02-21 10:31:10 +02:00
Sandu Liviu Catalin
06e598acfb Dumped the old implementation. Started with a more simple approach. 2016-02-21 00:25:00 +02:00
Sandu Liviu Catalin
14a46c5372 Fixed spelling mistake in command function name. Updated collor packing macros to correct type casting. 2015-11-09 03:27:52 +02:00
Sandu Liviu Catalin
6f89d0b8d1 Use entity instance when sending the invoker to commands. 2015-11-08 23:52:56 +02:00
Sandu Liviu Catalin
8a01a1b0ed Added auto generation of informational message based on the suplied argument tags and specifiers. 2015-11-08 23:25:40 +02:00
Sandu Liviu Catalin
b5ed79ad43 Exposed methods for checking if an argument supports a certain type and whether a certain invoker is allowed to execute. 2015-11-08 22:34:14 +02:00
Sandu Liviu Catalin
b6023b842e Implemented command argument tag/name to allow auto generation of command syntax information. 2015-11-08 22:31:03 +02:00
Sandu Liviu Catalin
d26b9b560e Fixed argument range checking in command manager. 2015-11-08 21:34:25 +02:00
Sandu Liviu Catalin
4e23d3ff88 Exported command enumerations and helper function to retrieve player instance level without an instance. 2015-11-08 21:12:05 +02:00
Sandu Liviu Catalin
ad65cf91d8 Documentation spelling corrections and added several functions to retrieve useful information about the currently executed command and a more expanded constructor as well. 2015-11-08 20:53:50 +02:00
Sandu Liviu Catalin
e41581a0e3 Added a member function in command manager to retrieve the last invoker. 2015-11-08 12:36:23 +02:00
Sandu Liviu Catalin
3206d49404 Implemented a simple command system. Added a custom buffer class. Implemented reconnection for IRC sessions. Various other adjustments and additions. 2015-11-07 12:17:39 +02:00