0 |
ActiveFormspecs Mod v2.6 |
1 |
By Leslie E. Krause |
2 |
|
3 |
ActiveFormspecs is a self-contained API that provides secure session tracking, session- |
4 |
based state tables, and localized event handling of formspecs for individual mods as well |
5 |
as entire games. It evolved out of a recurring need for secure "node formspecs" on my |
6 |
server, while avoiding the burden of "reinventing the wheel" with every new project. |
7 |
|
8 |
ActiveFormspecs is intended to be compatible with all versions of Minetest 0.4.15+. |
9 |
|
10 |
https://forum.minetest.net/viewtopic.php?f=9&t=19303 |
11 |
|
12 |
Revision History |
13 |
---------------------- |
14 |
|
15 |
Version 1.0a (15-Dec-2016) |
16 |
- initial version within default mod |
17 |
|
18 |
Version 1.1b (16-Dec-2016) |
19 |
- added better comments |
20 |
|
21 |
Version 1.2b (18-Dec-2016) |
22 |
- renamed public methods |
23 |
|
24 |
Version 1.3b (04-Jan-2017) |
25 |
- fixed logic of quit event to require valid session |
26 |
|
27 |
Version 1.4b (26-Jul-2017) |
28 |
- added method to update formspec and maintain session |
29 |
|
30 |
Version 2.0 (24-Dec-2017) |
31 |
- separated all routines into new mod for public release |
32 |
|
33 |
Version 2.1 (08-Jan-2018) |
34 |
- various code refactoring and better comments |
35 |
- introduced password hashing of form names |
36 |
- improved sanity checks during form submission |
37 |
- fully reworked parsing of hidden elements |
38 |
- ensured hidden elements are always stripped |
39 |
- gave hidden elements default-state behavior |
40 |
- localized old node registration functions |
41 |
- included player object within form table |
42 |
- added signal handling on formspec termination |
43 |
- added support for callbacks in node overrides |
44 |
|
45 |
Version 2.2 (19-Jan-2018) |
46 |
- introduced player-name arguments for all API calls |
47 |
- added signal for programmatic formspec closure |
48 |
- ensured callbacks are notified of session resets |
49 |
- renamed some local variables to improve clarity |
50 |
|
51 |
Version 2.3 (28-Jan-2018) |
52 |
- corrected erroneous value of formspec exit signal |
53 |
- removed two experimental form session methods |
54 |
- included timestamp and origin within form table |
55 |
- added form session validation on destroy and update |
56 |
- introduced form timers with start and stop methods |
57 |
- created routine to notify callbacks of timeout |
58 |
- added support for internal statistical tracking |
59 |
- added chat command to view form session summary |
60 |
|
61 |
Version 2.4 (12-Feb-2018) |
62 |
- various code refactoring and better comments |
63 |
- full rewrite of timer queue for higher precision |
64 |
|
65 |
Version 2.5 (01-Feb-2019) |
66 |
- made callback function optional with default no-op |
67 |
- added non-trappable form session termination signal |
68 |
- properly reset timestamp for lifetime calculation |
69 |
|
70 |
Version 2.6 (02-Feb-2020) |
71 |
- added callback to preset state of node formspecs |
72 |
- removed experimental property from node definition |
73 |
- implemented reverse-lookups for dropdown fields |
74 |
- extended dropdown element with optional parameter |
75 |
- added signal to suspend and restore form sessions |
76 |
- combined element parsers into dedicated function |
77 |
- added functions for escaping formspec strings |
78 |
- revamped element parsers to ignore malformed tags |
79 |
- added conditional pattern matching helper function |
80 |
- compatability bumped to Minetest 0.4.15+ |
81 |
|
82 |
Compatability |
83 |
---------------------- |
84 |
|
85 |
Minetest 0.4.15+ required |
86 |
|
87 |
Installation |
88 |
---------------------- |
89 |
|
90 |
1) Unzip the archive into the mods directory of your game. |
91 |
2) Rename the formspecs-master directory to "formspecs". |
92 |
3) Add "formspecs" as a dependency to any mods using the API. |
93 |
|
94 |
Source Code License |
95 |
---------------------- |
96 |
|
97 |
The MIT License (MIT) |
98 |
|
99 |
Copyright (c) 2016-2020, Leslie E. Krause (leslie@searstower.org) |
100 |
|
101 |
Permission is hereby granted, free of charge, to any person obtaining a copy of this |
102 |
software and associated documentation files (the "Software"), to deal in the Software |
103 |
without restriction, including without limitation the rights to use, copy, modify, merge, |
104 |
publish, distribute, sublicense, and/or sell copies of the Software, and to permit |
105 |
persons to whom the Software is furnished to do so, subject to the following conditions: |
106 |
|
107 |
The above copyright notice and this permission notice shall be included in all copies or |
108 |
substantial portions of the Software. |
109 |
|
110 |
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, |
111 |
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR |
112 |
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE |
113 |
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
114 |
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
115 |
DEALINGS IN THE SOFTWARE. |
116 |
|
117 |
For more details: |
118 |
https://opensource.org/licenses/MIT |