mm_os 3.3.1 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/LICENSE +21 -201
  2. package/README.md +498 -99
  3. package/README_EN.md +505 -0
  4. package/adapter/adapter.js +431 -0
  5. package/adapter/custom_persistence.js +660 -0
  6. package/adapter/mqtt.js +273 -0
  7. package/adapter/socket.js +113 -0
  8. package/adapter/web.js +67 -0
  9. package/adapter/websocket.js +146 -0
  10. package/com/api/com.json +5 -0
  11. package/{core/com → com}/api/config.tpl.json +8 -8
  12. package/com/api/drive.js +708 -0
  13. package/com/api/index.js +198 -0
  14. package/com/api/oauth.js +200 -0
  15. package/com/api/script.tpl.js +32 -0
  16. package/com/cmd/README.md +11 -0
  17. package/com/cmd/com.json +5 -0
  18. package/com/cmd/config.tpl.json +122 -0
  19. package/com/cmd/drive.js +1548 -0
  20. package/com/cmd/index.js +1066 -0
  21. package/com/cmd/msg.json +48 -0
  22. package/com/cmd/nlp.js +525 -0
  23. package/com/cmd/script.tpl.js +32 -0
  24. package/com/db/com.json +5 -0
  25. package/com/db/drive.js +1999 -0
  26. package/com/db/index.js +242 -0
  27. package/{core/com → com}/event/README.md +4 -4
  28. package/com/event/com.json +5 -0
  29. package/{core/com → com}/event/config.tpl.json +18 -18
  30. package/com/event/drive.js +59 -0
  31. package/com/event/index.js +409 -0
  32. package/com/event/script.tpl.js +23 -0
  33. package/com/mqtt/com.json +5 -0
  34. package/{core/com → com}/mqtt/config.tpl.json +3 -5
  35. package/com/mqtt/drive.js +676 -0
  36. package/com/mqtt/index.js +822 -0
  37. package/com/mqtt/mm_mqtt.js +425 -0
  38. package/com/mqtt/script.tpl.js +723 -0
  39. package/com/nav/com.json +5 -0
  40. package/com/nav/config.tpl.json +84 -0
  41. package/com/nav/drive.js +702 -0
  42. package/com/nav/index.js +231 -0
  43. package/{core/com → com}/nav/tpl/admin_pc/page_config.vue +280 -280
  44. package/{core/com → com}/nav/tpl/admin_pc/page_config_form.vue +194 -194
  45. package/com/nav/tpl/admin_pc/page_form.vue +180 -0
  46. package/com/nav/tpl/admin_pc/page_view.vue +124 -0
  47. package/com/nav/tpl/dev_pc/page_default.vue +247 -0
  48. package/com/nav/tpl/dev_pc/page_type.vue +313 -0
  49. package/com/nav/tpl/home_pc/page_default.vue +234 -0
  50. package/com/nav/tpl/home_pc/page_form.vue +137 -0
  51. package/com/nav/tpl/home_pc/page_list.vue +234 -0
  52. package/com/nav/tpl/home_pc/page_nav.vue +221 -0
  53. package/com/nav/tpl/home_pc/page_type.vue +234 -0
  54. package/com/nav/tpl/home_pc/page_view.vue +125 -0
  55. package/com/nav/tpl/home_phone/page_channel.vue +234 -0
  56. package/com/nav/tpl/home_phone/page_default.vue +234 -0
  57. package/com/nav/tpl/home_phone/page_form.vue +137 -0
  58. package/com/nav/tpl/home_phone/page_nav.vue +237 -0
  59. package/com/nav/tpl/home_phone/page_type.vue +234 -0
  60. package/com/nav/tpl/home_phone/page_view.vue +125 -0
  61. package/com/nav/viewmodel.js +446 -0
  62. package/com/param/com.json +5 -0
  63. package/{core/com → com}/param/config.tpl.json +7 -1
  64. package/com/param/drive.js +502 -0
  65. package/com/param/index.js +155 -0
  66. package/com/param/script.tpl.js +12 -0
  67. package/com/pendant/com.json +5 -0
  68. package/{core/com/component → com/pendant}/config.tpl.json +15 -13
  69. package/com/pendant/drive.js +204 -0
  70. package/com/pendant/index.js +441 -0
  71. package/com/pendant/pendant.html +16 -0
  72. package/com/pendant/script.tpl.js +18 -0
  73. package/com/socket/com.json +5 -0
  74. package/com/socket/config.tpl.json +12 -0
  75. package/com/socket/drive.js +651 -0
  76. package/com/socket/index.js +351 -0
  77. package/com/socket/script.tpl.js +41 -0
  78. package/com/sql/com.json +5 -0
  79. package/{core/com → com}/sql/config.tpl.json +13 -9
  80. package/com/sql/drive.js +1259 -0
  81. package/com/sql/index.js +150 -0
  82. package/com/sql/script.tpl.js +47 -0
  83. package/com/static/com.json +5 -0
  84. package/{core/com → com}/static/config.tpl.json +10 -6
  85. package/com/static/drive.js +194 -0
  86. package/com/static/index.js +226 -0
  87. package/com/static/script.tpl.js +28 -0
  88. package/com/task/com.json +5 -0
  89. package/{core/com → com}/task/config.tpl.json +4 -6
  90. package/com/task/drive.js +405 -0
  91. package/com/task/index.js +148 -0
  92. package/com/task/script.tpl.js +37 -0
  93. package/com/template/com.json +5 -0
  94. package/com/template/config.tpl.json +16 -0
  95. package/com/template/drive.js +80 -0
  96. package/com/template/index.js +141 -0
  97. package/com.js +156 -0
  98. package/common/README.md +2 -0
  99. package/common/handler/msg/handler.json +22 -0
  100. package/common/handler/msg/index.js +23 -0
  101. package/common/handler/player/handler.json +22 -0
  102. package/common/handler/player/index.js +287 -0
  103. package/common/handler/user/handler.json +22 -0
  104. package/common/handler/user/index.js +23 -0
  105. package/common/middleware/web_after/index.js +29 -0
  106. package/common/middleware/web_after/middleware.json +9 -0
  107. package/common/middleware/web_base/index.js +113 -0
  108. package/common/middleware/web_base/middleware.json +19 -0
  109. package/common/middleware/web_before/index.js +33 -0
  110. package/common/middleware/web_before/middleware.json +9 -0
  111. package/common/middleware/web_cors/index.js +87 -0
  112. package/common/middleware/web_cors/middleware.json +24 -0
  113. package/common/middleware/web_error/index.js +119 -0
  114. package/common/middleware/web_error/middleware.json +18 -0
  115. package/common/middleware/web_ip/index.js +15 -0
  116. package/common/middleware/web_ip/middleware.json +14 -0
  117. package/common/middleware/web_logger/index.js +156 -0
  118. package/common/middleware/web_logger/middleware.json +14 -0
  119. package/common/middleware/web_main/index.js +24 -0
  120. package/common/middleware/web_main/middleware.json +9 -0
  121. package/common/middleware/web_static/index.js +73 -0
  122. package/common/middleware/web_static/middleware.json +54 -0
  123. package/common/middleware/web_waf/index.js +385 -0
  124. package/common/middleware/web_waf/middleware.json +13 -0
  125. package/common/model/msg/index.js +88 -0
  126. package/common/model/msg/model.json +401 -0
  127. package/common/model/player/index.js +63 -0
  128. package/common/model/player/model.json +185 -0
  129. package/common/model/user/index.js +11 -0
  130. package/common/model/user/model.json +219 -0
  131. package/core/app/config.tpl.json +67 -0
  132. package/core/app/index.js +632 -0
  133. package/core/app/script.tpl.js +52 -0
  134. package/core/channel/index.js +899 -0
  135. package/core/channel/matcher.js +585 -0
  136. package/core/com/config.tpl.json +16 -0
  137. package/core/com/index.js +74 -0
  138. package/core/com/script.tpl.js +5 -0
  139. package/core/component/component.js +42 -0
  140. package/core/component/config.tpl.json +63 -0
  141. package/core/component/index.js +273 -0
  142. package/core/component/script.tpl.js +19 -0
  143. package/core/controller/config.tpl.json +14 -0
  144. package/core/controller/index.js +373 -0
  145. package/core/controller/script.tpl.js +27 -0
  146. package/core/factory/config.tpl.json +14 -0
  147. package/core/factory/entity.js +275 -0
  148. package/core/factory/index.js +241 -0
  149. package/core/factory/script.tpl.js +16 -0
  150. package/core/game/bat/index.js +137 -0
  151. package/core/game/bat/world.js +622 -0
  152. package/core/game/config.tpl.json +16 -0
  153. package/core/game/entity_admin.js +230 -0
  154. package/core/game/index.js +186 -0
  155. package/core/handler/config.tpl.json +22 -0
  156. package/core/handler/index.js +181 -0
  157. package/core/handler/script.tpl.js +23 -0
  158. package/core/logic/config.tpl.json +14 -0
  159. package/core/logic/index.js +59 -0
  160. package/core/logic/script.tpl.js +19 -0
  161. package/core/middleware/config.tpl.json +16 -0
  162. package/core/middleware/index.js +125 -0
  163. package/core/middleware/script.tpl.js +37 -0
  164. package/core/mod/config.tpl.json +22 -0
  165. package/core/mod/index.js +130 -0
  166. package/core/mod/script.tpl.js +34 -0
  167. package/core/model/config.tpl.json +219 -0
  168. package/core/model/index.js +272 -0
  169. package/core/model/model.js +27 -0
  170. package/core/model/script.tpl.js +20 -0
  171. package/core/notifier/config.tpl.json +14 -0
  172. package/core/notifier/index.js +77 -0
  173. package/core/notifier/script.tpl.js +20 -0
  174. package/core/plugin/config.tpl.json +24 -0
  175. package/core/plugin/index.js +232 -0
  176. package/core/plugin/script.tpl.js +51 -0
  177. package/core/pusher/config.tpl.json +14 -0
  178. package/core/pusher/index.js +161 -0
  179. package/core/pusher/script.tpl.js +20 -0
  180. package/core/room/bat/index.js +170 -0
  181. package/core/room/bat/room.js +524 -0
  182. package/core/room/config.tpl.json +20 -0
  183. package/core/room/index.js +249 -0
  184. package/core/room/room.js +61 -0
  185. package/core/scene/config.tpl.json +14 -0
  186. package/core/scene/index.js +466 -0
  187. package/core/scene/loop.js +1255 -0
  188. package/core/scene/map.js +28 -0
  189. package/core/scene/script.tpl.js +22 -0
  190. package/core/sender/config.tpl.json +14 -0
  191. package/core/sender/index.js +79 -0
  192. package/core/sender/script.tpl.js +20 -0
  193. package/core/service/config.tpl.json +14 -0
  194. package/core/service/index.js +100 -0
  195. package/core/service/script.tpl.js +25 -0
  196. package/core/store/config.tpl.json +26 -0
  197. package/core/store/index.js +1755 -0
  198. package/core/store/script.tpl.js +22 -0
  199. package/core/store/sql.js +1464 -0
  200. package/core/system/config.tpl.json +18 -0
  201. package/core/system/index.js +312 -0
  202. package/core/system/script.tpl.js +77 -0
  203. package/core/view/config.tpl.json +14 -0
  204. package/core/view/index.js +91 -0
  205. package/core/view/script.tpl.js +20 -0
  206. package/core/zone/bat/index.js +725 -0
  207. package/core/zone/config.tpl.json +54 -0
  208. package/core/zone/index.js +614 -0
  209. package/core/zone/script.tpl.js +10 -0
  210. package/core/zone/zone_bat.js +136 -0
  211. package/core//345/237/272/347/261/273/346/250/241/345/235/227/346/270/205/345/215/225.md +24 -0
  212. package/index.js +17 -333
  213. package/os.js +57 -0
  214. package/package.json +65 -55
  215. package/server.js +598 -0
  216. package/README.en.md +0 -36
  217. package/conf.json +0 -3
  218. package/core/base/mqtt/index.js +0 -1110
  219. package/core/base/mqtt/lib.js +0 -40
  220. package/core/base/web/index.js +0 -245
  221. package/core/com/api/com.json +0 -4
  222. package/core/com/api/drive.js +0 -668
  223. package/core/com/api/index.js +0 -108
  224. package/core/com/api/oauth.js +0 -158
  225. package/core/com/api/script.js +0 -32
  226. package/core/com/app/README.md +0 -3
  227. package/core/com/app/com.json +0 -4
  228. package/core/com/app/config.tpl.json +0 -16
  229. package/core/com/app/drive.js +0 -309
  230. package/core/com/app/index.js +0 -211
  231. package/core/com/app/script.js +0 -155
  232. package/core/com/cmd/com.json +0 -4
  233. package/core/com/cmd/config.tpl.json +0 -66
  234. package/core/com/cmd/drive.js +0 -513
  235. package/core/com/cmd/index.js +0 -354
  236. package/core/com/cmd/old/5w2h.js +0 -54
  237. package/core/com/cmd/old/drive.js +0 -423
  238. package/core/com/cmd/script.js +0 -11
  239. package/core/com/component/README.md +0 -3
  240. package/core/com/component/com.json +0 -4
  241. package/core/com/component/component.html +0 -16
  242. package/core/com/component/drive.js +0 -197
  243. package/core/com/component/index.js +0 -312
  244. package/core/com/component/script.js +0 -18
  245. package/core/com/db/com.json +0 -4
  246. package/core/com/db/drive.js +0 -1160
  247. package/core/com/db/index.js +0 -176
  248. package/core/com/event/com.json +0 -4
  249. package/core/com/event/drive.js +0 -133
  250. package/core/com/event/index.js +0 -345
  251. package/core/com/event/script.js +0 -26
  252. package/core/com/eventer/com.js +0 -477
  253. package/core/com/eventer/com.json +0 -4
  254. package/core/com/middleware/com.js +0 -154
  255. package/core/com/middleware/com.json +0 -4
  256. package/core/com/middleware/config.tpl.json +0 -8
  257. package/core/com/middleware/script.js +0 -9
  258. package/core/com/mqtt/com.json +0 -4
  259. package/core/com/mqtt/drive.js +0 -600
  260. package/core/com/mqtt/index.js +0 -572
  261. package/core/com/mqtt/mm_mqtt.js +0 -330
  262. package/core/com/mqtt/script.js +0 -604
  263. package/core/com/msg/com.js +0 -296
  264. package/core/com/msg/com.json +0 -4
  265. package/core/com/nav/com.json +0 -4
  266. package/core/com/nav/config.tpl.json +0 -75
  267. package/core/com/nav/drive.js +0 -549
  268. package/core/com/nav/index.js +0 -182
  269. package/core/com/nav/tpl/admin_pc/page_form.vue +0 -180
  270. package/core/com/nav/tpl/admin_pc/page_view.vue +0 -124
  271. package/core/com/nav/tpl/dev_pc/page_default.vue +0 -247
  272. package/core/com/nav/tpl/dev_pc/page_type.vue +0 -313
  273. package/core/com/nav/tpl/home_pc/page_default.vue +0 -234
  274. package/core/com/nav/tpl/home_pc/page_form.vue +0 -137
  275. package/core/com/nav/tpl/home_pc/page_list.vue +0 -234
  276. package/core/com/nav/tpl/home_pc/page_nav.vue +0 -221
  277. package/core/com/nav/tpl/home_pc/page_type.vue +0 -234
  278. package/core/com/nav/tpl/home_pc/page_view.vue +0 -125
  279. package/core/com/nav/tpl/home_phone/page_channel.vue +0 -234
  280. package/core/com/nav/tpl/home_phone/page_default.vue +0 -234
  281. package/core/com/nav/tpl/home_phone/page_form.vue +0 -137
  282. package/core/com/nav/tpl/home_phone/page_nav.vue +0 -237
  283. package/core/com/nav/tpl/home_phone/page_type.vue +0 -234
  284. package/core/com/nav/tpl/home_phone/page_view.vue +0 -125
  285. package/core/com/nav/viewmodel.js +0 -296
  286. package/core/com/param/drive.js +0 -366
  287. package/core/com/param/index.js +0 -80
  288. package/core/com/param/script.js +0 -12
  289. package/core/com/param/test.js +0 -98
  290. package/core/com/plugin/README.md +0 -3
  291. package/core/com/plugin/com.json +0 -4
  292. package/core/com/plugin/config.tpl.json +0 -26
  293. package/core/com/plugin/drive.js +0 -536
  294. package/core/com/plugin/index.js +0 -259
  295. package/core/com/plugin/script.js +0 -213
  296. package/core/com/rpc/com.json +0 -4
  297. package/core/com/rpc/drive.js +0 -160
  298. package/core/com/rpc/index.js +0 -87
  299. package/core/com/rpc/rpc.js +0 -118
  300. package/core/com/socket/com.json +0 -4
  301. package/core/com/socket/config.tpl.json +0 -14
  302. package/core/com/socket/drive.js +0 -403
  303. package/core/com/socket/index.js +0 -62
  304. package/core/com/socket/script.js +0 -42
  305. package/core/com/sql/drive.js +0 -1087
  306. package/core/com/sql/index.js +0 -83
  307. package/core/com/sql/script.js +0 -48
  308. package/core/com/static/com.json +0 -4
  309. package/core/com/static/drive.js +0 -220
  310. package/core/com/static/index.js +0 -149
  311. package/core/com/static/script.js +0 -28
  312. package/core/com/task/com.json +0 -4
  313. package/core/com/task/drive.js +0 -403
  314. package/core/com/task/index.js +0 -110
  315. package/core/com/task/script.js +0 -37
  316. package/core/com/timer/com.js +0 -217
  317. package/core/com/timer/com.json +0 -4
  318. package/core/com/tpl/com.js +0 -19
  319. package/core/com/tpl/com.json +0 -4
  320. package/lib/actions.js +0 -50
  321. package/lib/base.js +0 -361
  322. package/lib/com.js +0 -29
  323. package/lib/ref.js +0 -121
  324. package/middleware/cors/index.js +0 -119
  325. package/middleware/cors/middleware.json +0 -20
  326. package/middleware/csrf/index.js +0 -202
  327. package/middleware/csrf/middleware.json +0 -24
  328. package/middleware/ip_firewall/index.js +0 -476
  329. package/middleware/ip_firewall/middleware.json +0 -109
  330. package/middleware/mqtt_base/index.js +0 -10
  331. package/middleware/mqtt_base/middleware.json +0 -11
  332. package/middleware/security_audit/index.js +0 -543
  333. package/middleware/security_audit/middleware.json +0 -48
  334. package/middleware/waf/index.js +0 -343
  335. package/middleware/waf/middleware.json +0 -10
  336. package/middleware/waf_ddos/index.js +0 -520
  337. package/middleware/waf_ddos/middleware.json +0 -38
  338. package/middleware/waf_xss/index.js +0 -269
  339. package/middleware/waf_xss/middleware.json +0 -18
  340. package/middleware/web_after/index.js +0 -33
  341. package/middleware/web_after/middleware.json +0 -10
  342. package/middleware/web_base/index.js +0 -90
  343. package/middleware/web_base/middleware.json +0 -10
  344. package/middleware/web_before/index.js +0 -27
  345. package/middleware/web_before/middleware.json +0 -10
  346. package/middleware/web_check/index.js +0 -28
  347. package/middleware/web_check/middleware.json +0 -10
  348. package/middleware/web_main/index.js +0 -28
  349. package/middleware/web_main/middleware.json +0 -10
  350. package/middleware/web_proxy/index.js +0 -37
  351. package/middleware/web_proxy/middleware.json +0 -10
  352. package/middleware/web_render/index.js +0 -87
  353. package/middleware/web_render/middleware.json +0 -10
  354. package/middleware/web_socket/index.js +0 -34
  355. package/middleware/web_socket/middleware.json +0 -10
  356. package/middleware/web_static/index.js +0 -115
  357. package/middleware/web_static/middleware.json +0 -10
  358. /package/{core/com → com}/api/README.md +0 -0
  359. /package/{core/com → com}/db/README.md +0 -0
  360. /package/{core/com → com}/mqtt/README.md +0 -0
  361. /package/{core/com → com}/nav/README.md +0 -0
  362. /package/{core/com → com}/nav/tpl/admin_pc/page_channel.vue +0 -0
  363. /package/{core/com → com}/nav/tpl/admin_pc/page_default.vue +0 -0
  364. /package/{core/com → com}/nav/tpl/admin_pc/page_lang.vue +0 -0
  365. /package/{core/com → com}/nav/tpl/admin_pc/page_nav.vue +0 -0
  366. /package/{core/com → com}/nav/tpl/admin_pc/page_table.vue +0 -0
  367. /package/{core/com → com}/nav/tpl/admin_pc/page_type.vue +0 -0
  368. /package/{core/com → com}/nav/tpl/dev_pc/page_channel.vue +0 -0
  369. /package/{core/com → com}/nav/tpl/dev_pc/page_config.vue +0 -0
  370. /package/{core/com → com}/nav/tpl/dev_pc/page_form.vue +0 -0
  371. /package/{core/com → com}/nav/tpl/dev_pc/page_nav.vue +0 -0
  372. /package/{core/com → com}/nav/tpl/dev_pc/page_table.vue +0 -0
  373. /package/{core/com → com}/nav/tpl/home_pc/page_channel.vue +0 -0
  374. /package/{core/com → com}/nav/tpl/home_phone/page_list.vue +0 -0
  375. /package/{core/com → com}/param/README.md +0 -0
  376. /package/{core/com/cmd → com/pendant}/README.md +0 -0
  377. /package/{core/com → com}/socket/README.md +0 -0
  378. /package/{core/com → com}/sql/README.md +0 -0
  379. /package/{core/com → com}/static/README.md +0 -0
  380. /package/{core/com → com}/task/README.md +0 -0
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 游戏逻辑
3
+ */
4
+ module.exports = {
5
+ /**
6
+ * 初始化
7
+ */
8
+ async _init() {
9
+ // this.log('debug', '初始化');
10
+ },
11
+ /**
12
+ * 主要逻辑
13
+ * @param {...any} args 参数列表
14
+ */
15
+ async main(...args) {
16
+ this.log('debug', 'logic main 被调用', { args });
17
+ // 主要代码写在这
18
+ }
19
+ };
@@ -0,0 +1,16 @@
1
+ {
2
+ // 名称
3
+ "name": "${name}",
4
+ // 标题
5
+ "title": "${title || '示例中间件'}",
6
+ // 描述
7
+ "description": "${description || '用于中间件演示'}",
8
+ // 主文件
9
+ "main": "${main || 'index.js'}",
10
+ // 类型
11
+ "type": "${type || 'web'}",
12
+ // 排序,越小越靠前
13
+ "sort": 100,
14
+ // 状态 0:禁用 1:启用
15
+ "state": 1
16
+ }
@@ -0,0 +1,125 @@
1
+ const {
2
+ Drive
3
+ } = require('mm_machine');
4
+
5
+ /**
6
+ * Koa中间件基类
7
+ */
8
+ class Middleware extends Drive {
9
+ static config = {
10
+ // 中间件名称
11
+ name: 'default',
12
+ // 状态 0:禁用 1:启用
13
+ state: 1,
14
+ // 排序,越小越靠前
15
+ sort: 100
16
+ };
17
+ /**
18
+ * 构造函数
19
+ * @param {object} config 配置参数
20
+ * @param {object} parent 父对象
21
+ */
22
+ constructor(config, parent) {
23
+ super({ ...Middleware.config, ...config || {} }, parent);
24
+ }
25
+ }
26
+
27
+ /**
28
+ * 获取模板目录
29
+ * @returns {string} 模板目录
30
+ */
31
+ Middleware.prototype.getTplDir = function () {
32
+ return __dirname;
33
+ };
34
+
35
+ /**
36
+ * 初始化核心
37
+ * @param {object} apapter 适配器
38
+ * @param {object} eventer 事件总线
39
+ * @param {object} logger 日志管理器
40
+ * @returns {Promise<void>}
41
+ */
42
+ Middleware.prototype._initCore = async function (apapter, eventer, logger) {
43
+ // 初始化依赖项
44
+ if (logger) {
45
+ this.setLogger(logger);
46
+ }
47
+ if (eventer) {
48
+ this.getEventer = function () {
49
+ return eventer;
50
+ };
51
+ }
52
+ if (apapter) {
53
+ this.getAdapter = function () {
54
+ return apapter[this.config.type];
55
+ };
56
+ }
57
+ this._register();
58
+ };
59
+
60
+ /**
61
+ * 注册中间件
62
+ * @private
63
+ * @returns {Promise<void>}
64
+ */
65
+ Middleware.prototype._register = async function () {
66
+ // 注册中间件到Koa应用
67
+ this.getAdapter().use(this.create());
68
+ };
69
+
70
+ /**
71
+ * 注册中间件
72
+ * @returns {Promise<void>}
73
+ */
74
+ Middleware.prototype.register = async function () {
75
+ await this._register();
76
+ };
77
+
78
+ /**
79
+ * 创建中间件函数
80
+ * @returns {Function} Koa中间件函数
81
+ */
82
+ Middleware.prototype.create = function () {
83
+ var self = this;
84
+ if (!this.config.state) {
85
+ return async function (ctx, next) {
86
+ return await next();
87
+ };
88
+ }
89
+ return async (ctx, next) => {
90
+ await self.before(ctx);
91
+ await self.main(ctx, next);
92
+ await self.after(ctx);
93
+ };
94
+ };
95
+
96
+ /**
97
+ * 中间件前置处理
98
+ * @returns {Promise<void>}
99
+ */
100
+ Middleware.prototype.before = async function () {
101
+ };
102
+
103
+ /**
104
+ * 中间件主逻辑处理
105
+ * @param {object} ctx Koa上下文
106
+ * @param {Function} next 下一个中间件
107
+ * @returns {Promise<void>}
108
+ */
109
+ Middleware.prototype.main = async function (ctx, next) {
110
+ await next();
111
+ };
112
+
113
+ /**
114
+ * 中间件后置处理
115
+ * @returns {Promise<void>}
116
+ */
117
+ Middleware.prototype.after = async function () {
118
+ // 默认空实现,由子类重写
119
+ // this.log('debug', 'middleware after 被调用', { ctx });
120
+ };
121
+
122
+ // 模块导出
123
+ module.exports = {
124
+ Middleware
125
+ };
@@ -0,0 +1,37 @@
1
+ /**
2
+ * 中间件
3
+ */
4
+ module.exports = {
5
+ /**
6
+ * 中间件初始化
7
+ * @param {object} apapter 适配器
8
+ * @param {object} eventer 事件处理器
9
+ */
10
+ async _init(apapter, eventer) {
11
+ this.log('debug', 'middleware _init 被调用', { apapter, eventer });
12
+ // 初始化代码写在这
13
+ // 可在这里注入其他中间件
14
+ },
15
+ /**
16
+ * 中间件执行前,可用于触发事件
17
+ */
18
+ async before() {
19
+
20
+ },
21
+ /**
22
+ * 中间件执行后,可用于触发事件
23
+ */
24
+ async after() {
25
+
26
+ },
27
+ /**
28
+ * 主要逻辑
29
+ * @param {object} ctx Koa上下文
30
+ * @param {Function} next 下一个中间件
31
+ */
32
+ async main(ctx, next) {
33
+ this.log('debug', 'middleware main 被调用', { ctx });
34
+ // 主要代码写在这
35
+ await next();
36
+ }
37
+ };
@@ -0,0 +1,22 @@
1
+ {
2
+ // 名称
3
+ "name": "${name}",
4
+ // 标题
5
+ "title": "${title || '示例模块'}",
6
+ // 描述
7
+ "description": "${description || '介绍该模块有什么用'}",
8
+ // 版本号
9
+ "version": "${version || '1.0.0'}",
10
+ // 作者
11
+ "author": "${author || 'mos'}",
12
+ // 作用域,决定加载到什么区域
13
+ "scope": "${scope || 'server'}",
14
+ // 主文件
15
+ "main": "${main || 'index.js'}",
16
+ // 状态 0:禁用 1:启用
17
+ "state": 1,
18
+ // 排序,越小越靠前
19
+ "sort": 100,
20
+ // 依赖的npm module
21
+ "dependencies": []
22
+ }
@@ -0,0 +1,130 @@
1
+ const {
2
+ Drive
3
+ } = require('mm_machine');
4
+
5
+ /**
6
+ * 模组基类
7
+ * 扩展插件功能,用于管理和协调多个应用和插件
8
+ */
9
+ class Mod extends Drive {
10
+ static config = {
11
+ // 模组名称
12
+ name: 'default',
13
+ // 模组版本
14
+ version: '1.0.0',
15
+ // 依赖的npm模块
16
+ dependencies: [],
17
+ // 作者
18
+ author: 'qww',
19
+ // 模组目录
20
+ dir: './mod'
21
+ };
22
+ /**
23
+ * 构造函数
24
+ * @param {object} config 配置参数
25
+ * @param {object} parent 父对象
26
+ */
27
+ constructor(config, parent) {
28
+ super({ ...Mod.config, ...config || {} }, parent);
29
+ }
30
+ }
31
+
32
+ /**
33
+ * 预设
34
+ */
35
+ Mod.prototype._preset = function () {
36
+ // 服务器实例
37
+ this.getServer = function () {
38
+ return $.server;
39
+ };
40
+ };
41
+
42
+ /**
43
+ * 获取模板目录
44
+ * @returns {string} 模板目录
45
+ */
46
+ Mod.prototype.getTplDir = function () {
47
+ return __dirname;
48
+ };
49
+
50
+ /**
51
+ * 初始化核心
52
+ * @param {object} server 服务
53
+ * @param {object} eventer 事件总线
54
+ * @param {object} logger 日志管理器
55
+ * @private
56
+ */
57
+ Mod.prototype._initCore = async function (server, eventer, logger) {
58
+ // 初始化依赖项
59
+ if (logger) {
60
+ this.setLogger(logger);
61
+ }
62
+ if (eventer) {
63
+ this.getEventer = function () {
64
+ return eventer;
65
+ };
66
+ }
67
+ if (server) {
68
+ this.getServer = function () {
69
+ return server;
70
+ };
71
+ }
72
+
73
+
74
+ // 初始化管理
75
+ await this._initManager();
76
+ // 加载资源
77
+ await this._loadSources();
78
+ // 初始化资源
79
+ await this._initSources();
80
+ };
81
+
82
+ /**
83
+ * 初始化管理器
84
+ * @private
85
+ */
86
+ Mod.prototype._initManager = async function () {
87
+ this.log('debug', 'mod _initManager 被调用');
88
+ };
89
+
90
+ /**
91
+ * 加载资源
92
+ * @private
93
+ */
94
+ Mod.prototype._loadSources = async function () {
95
+ this.log('debug', 'mod _loadSources 被调用');
96
+ };
97
+
98
+ /**
99
+ * 初始化资源
100
+ * @private
101
+ */
102
+ Mod.prototype._initSources = async function () {
103
+ this.log('debug', 'mod _initSources 被调用');
104
+ };
105
+
106
+ /**
107
+ * 启动模组
108
+ */
109
+ Mod.prototype._start = async function () {
110
+ try {
111
+ this.log('info', 'started');
112
+ } catch (error) {
113
+ this.log('error', 'start error:', error);
114
+ }
115
+ };
116
+
117
+ /**
118
+ * 停止模组
119
+ */
120
+ Mod.prototype._stop = async function () {
121
+
122
+ };
123
+
124
+ /**
125
+ * 清理模组资源
126
+ */
127
+ Mod.prototype._cleanup = async function () {
128
+ };
129
+
130
+ exports.Mod = Mod;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * 模组,用于拓展游戏玩法
3
+ */
4
+ module.exports = {
5
+ /**
6
+ * 安装
7
+ */
8
+ async _install() {
9
+ this.log('info', `应用安装`);
10
+ },
11
+ /**
12
+ * 卸载
13
+ */
14
+ async _uninstall() {
15
+ this.log('info', `应用卸载`);
16
+ },
17
+ /**
18
+ * 初始化
19
+ * @param {object} server 服务器对象
20
+ * @param {object} eventer 事件处理器
21
+ * @returns {Promise<void>}
22
+ */
23
+ async _init(server, eventer) {
24
+ // this.log('debug', `初始化!`);
25
+ },
26
+ /**
27
+ * 主要逻辑
28
+ * @param {...any} args 参数列表
29
+ */
30
+ async main(...args) {
31
+ this.log('debug', `main 被调用`, { args });
32
+ // 主要代码写在这
33
+ }
34
+ };
@@ -0,0 +1,219 @@
1
+ {
2
+ // 名称
3
+ "name": "${name}",
4
+ // 标题
5
+ "title": "${title || '用户账户模型'}",
6
+ // 描述
7
+ "description": "${description || '定于用户账户模型的组件'}",
8
+ // 主文件
9
+ "main": "${main || ''}",
10
+ // 状态 0:禁用 1:启用
11
+ "state": 1,
12
+ // 排序,越小越靠前
13
+ "sort": 100,
14
+ // 模型包含字段
15
+ "fields": {
16
+ "user_id": {
17
+ // 值类型
18
+ "type": "number",
19
+ // 数据类型
20
+ "data_type": "int",
21
+ // 标题
22
+ "title": "用户ID",
23
+ // 描述
24
+ "description": "用户的唯一标识符",
25
+ // 最小值
26
+ "min": 1,
27
+ // 最大值
28
+ "max": 10000000,
29
+ // 默认值
30
+ "default": 0,
31
+ // 是否主键
32
+ "primary_key": true,
33
+ // 是否自动增长
34
+ "auto": true
35
+ },
36
+ "username": {
37
+ "type": "string",
38
+ "data_type": "varchar",
39
+ "title": "用户名",
40
+ "description": "用户的显示名称",
41
+ // 最小长度
42
+ "min": 1,
43
+ // 最大长度
44
+ "max": 24,
45
+ "default": ""
46
+ },
47
+ "password": {
48
+ "type": "string",
49
+ "data_type": "varchar",
50
+ "title": "密码",
51
+ "description": "用户的密码",
52
+ "min": 1,
53
+ "max": 32,
54
+ "default": "123456"
55
+ },
56
+ "salt": {
57
+ "type": "string",
58
+ "data_type": "varchar",
59
+ "title": "盐值",
60
+ "description": "用户密码的盐值",
61
+ "min": 1,
62
+ "max": 32,
63
+ "default": "mm2025"
64
+ },
65
+ "state": {
66
+ "type": "number",
67
+ "data_type": "int",
68
+ "title": "状态",
69
+ "description": "账户的状态",
70
+ "min": 1,
71
+ "max": 10000000,
72
+ "default": 1,
73
+ "enum": [
74
+ {
75
+ "value": 1,
76
+ "label": "可用"
77
+ },
78
+ {
79
+ "value": 2,
80
+ "label": "异常"
81
+ },
82
+ {
83
+ "value": 3,
84
+ "label": "已冻结"
85
+ },
86
+ {
87
+ "value": 4,
88
+ "label": "已注销"
89
+ }
90
+ ]
91
+ },
92
+ "avatar": {
93
+ "type": "string",
94
+ "data_type": "varchar",
95
+ "title": "头像",
96
+ "description": "用户的头像",
97
+ "min": 1,
98
+ "max": 255,
99
+ "default": "/avatar.jpg"
100
+ },
101
+ "nickname": {
102
+ "type": "string",
103
+ "data_type": "varchar",
104
+ "title": "昵称",
105
+ "description": "用户的昵称",
106
+ "min": 1,
107
+ "max": 24,
108
+ "default": ""
109
+ },
110
+ "vip": {
111
+ "type": "number",
112
+ "data_type": "int",
113
+ "title": "会员等级",
114
+ "description": "用户的会员等级",
115
+ "min": 0,
116
+ "max": 10000000,
117
+ "default": 0
118
+ },
119
+ "gm": {
120
+ "type": "number",
121
+ "data_type": "int",
122
+ "title": "管理员等级",
123
+ "description": "用户的管理员等级",
124
+ "min": 0,
125
+ "max": 10000000,
126
+ "default": 0
127
+ },
128
+ "mc": {
129
+ "type": "number",
130
+ "data_type": "int",
131
+ "title": "商家等级",
132
+ "description": "用户的商家等级",
133
+ "min": 0,
134
+ "max": 10000000,
135
+ "default": 0
136
+ },
137
+ "email": {
138
+ "type": "string",
139
+ "data_type": "varchar",
140
+ "title": "邮箱",
141
+ "description": "用户的邮箱",
142
+ "min": 1,
143
+ "max": 255,
144
+ "default": ""
145
+ },
146
+ "phone": {
147
+ "type": "string",
148
+ "data_type": "varchar",
149
+ "title": "手机号",
150
+ "description": "用户的手机号",
151
+ "min": 1,
152
+ "max": 11,
153
+ "default": ""
154
+ },
155
+ "admin_group": {
156
+ "type": "string",
157
+ "data_type": "varchar",
158
+ "title": "管理员组",
159
+ "description": "用户所属的管理员组集合",
160
+ "min": 0,
161
+ "max": 255,
162
+ "default": ""
163
+ },
164
+ "user_group": {
165
+ "type": "string",
166
+ "data_type": "varchar",
167
+ "title": "用户组",
168
+ "description": "用户所属的用户组集合",
169
+ "min": 0,
170
+ "max": 255,
171
+ "default": "default"
172
+ },
173
+ "referee_id": {
174
+ "type": "number",
175
+ "data_type": "int",
176
+ "title": "推荐人ID",
177
+ "description": "用户的推荐人ID",
178
+ "min": 1,
179
+ "max": 10000000,
180
+ "default": 0
181
+ },
182
+ "login_ip": {
183
+ "type": "string",
184
+ "data_type": "varchar",
185
+ "title": "登录IP",
186
+ "description": "用户最近一次登录的IP地址",
187
+ "min": 0,
188
+ "max": 255,
189
+ "default": "127.0.0.1"
190
+ },
191
+ "login_time": {
192
+ "type": "string",
193
+ "data_type": "datetime",
194
+ "title": "登录时间",
195
+ "description": "用户最近一次登录的时间",
196
+ "min": 1,
197
+ "max": 20,
198
+ "default": "1970-01-01 00:00:00"
199
+ },
200
+ "time_create": {
201
+ "type": "string",
202
+ "data_type": "datetime",
203
+ "title": "创建时间",
204
+ "description": "用户账户的创建时间",
205
+ "min": 1,
206
+ "max": 20,
207
+ "default": "now()"
208
+ },
209
+ "time_update": {
210
+ "type": "string",
211
+ "data_type": "datetime",
212
+ "title": "更新时间",
213
+ "description": "用户账户的更新时间",
214
+ "min": 1,
215
+ "max": 20,
216
+ "default": "1970-01-01 00:00:00"
217
+ }
218
+ }
219
+ }