mm_os 3.3.0 → 4.0.0

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 +491 -99
  3. package/README_EN.md +498 -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/com/event/com.json +5 -0
  28. package/{core/com → com}/event/config.tpl.json +8 -8
  29. package/com/event/drive.js +59 -0
  30. package/com/event/index.js +409 -0
  31. package/com/event/script.tpl.js +23 -0
  32. package/com/mqtt/com.json +5 -0
  33. package/{core/com → com}/mqtt/config.tpl.json +3 -5
  34. package/com/mqtt/drive.js +676 -0
  35. package/com/mqtt/index.js +822 -0
  36. package/com/mqtt/mm_mqtt.js +425 -0
  37. package/com/mqtt/script.tpl.js +723 -0
  38. package/com/nav/com.json +5 -0
  39. package/com/nav/config.tpl.json +84 -0
  40. package/com/nav/drive.js +702 -0
  41. package/com/nav/index.js +231 -0
  42. package/{core/com → com}/nav/tpl/admin_pc/page_config.vue +280 -280
  43. package/{core/com → com}/nav/tpl/admin_pc/page_config_form.vue +194 -194
  44. package/com/nav/tpl/admin_pc/page_form.vue +180 -0
  45. package/com/nav/tpl/admin_pc/page_view.vue +124 -0
  46. package/com/nav/tpl/dev_pc/page_default.vue +247 -0
  47. package/com/nav/tpl/dev_pc/page_type.vue +313 -0
  48. package/com/nav/tpl/home_pc/page_default.vue +234 -0
  49. package/com/nav/tpl/home_pc/page_form.vue +137 -0
  50. package/com/nav/tpl/home_pc/page_list.vue +234 -0
  51. package/com/nav/tpl/home_pc/page_nav.vue +221 -0
  52. package/com/nav/tpl/home_pc/page_type.vue +234 -0
  53. package/com/nav/tpl/home_pc/page_view.vue +125 -0
  54. package/com/nav/tpl/home_phone/page_channel.vue +234 -0
  55. package/com/nav/tpl/home_phone/page_default.vue +234 -0
  56. package/com/nav/tpl/home_phone/page_form.vue +137 -0
  57. package/com/nav/tpl/home_phone/page_nav.vue +237 -0
  58. package/com/nav/tpl/home_phone/page_type.vue +234 -0
  59. package/com/nav/tpl/home_phone/page_view.vue +125 -0
  60. package/com/nav/viewmodel.js +446 -0
  61. package/com/param/com.json +5 -0
  62. package/{core/com → com}/param/config.tpl.json +7 -1
  63. package/com/param/drive.js +502 -0
  64. package/com/param/index.js +155 -0
  65. package/com/param/script.tpl.js +12 -0
  66. package/com/pendant/com.json +5 -0
  67. package/{core/com/component → com/pendant}/config.tpl.json +15 -13
  68. package/com/pendant/drive.js +204 -0
  69. package/com/pendant/index.js +441 -0
  70. package/com/pendant/pendant.html +16 -0
  71. package/com/pendant/script.tpl.js +18 -0
  72. package/com/socket/com.json +5 -0
  73. package/com/socket/config.tpl.json +12 -0
  74. package/com/socket/drive.js +651 -0
  75. package/com/socket/index.js +351 -0
  76. package/com/socket/script.tpl.js +41 -0
  77. package/com/sql/com.json +5 -0
  78. package/{core/com → com}/sql/config.tpl.json +13 -9
  79. package/com/sql/drive.js +1259 -0
  80. package/com/sql/index.js +150 -0
  81. package/com/sql/script.tpl.js +47 -0
  82. package/com/static/com.json +5 -0
  83. package/{core/com → com}/static/config.tpl.json +10 -6
  84. package/com/static/drive.js +194 -0
  85. package/com/static/index.js +226 -0
  86. package/com/static/script.tpl.js +28 -0
  87. package/com/task/com.json +5 -0
  88. package/{core/com → com}/task/config.tpl.json +4 -6
  89. package/com/task/drive.js +405 -0
  90. package/com/task/index.js +148 -0
  91. package/com/task/script.tpl.js +37 -0
  92. package/com/template/com.json +5 -0
  93. package/com/template/config.tpl.json +16 -0
  94. package/com/template/drive.js +80 -0
  95. package/com/template/index.js +141 -0
  96. package/com.js +156 -0
  97. package/common/README.md +2 -0
  98. package/common/handler/msg/handler.json +22 -0
  99. package/common/handler/msg/index.js +23 -0
  100. package/common/handler/player/handler.json +22 -0
  101. package/common/handler/player/index.js +287 -0
  102. package/common/handler/user/handler.json +22 -0
  103. package/common/handler/user/index.js +23 -0
  104. package/common/middleware/web_after/index.js +29 -0
  105. package/common/middleware/web_after/middleware.json +9 -0
  106. package/common/middleware/web_base/index.js +113 -0
  107. package/common/middleware/web_base/middleware.json +19 -0
  108. package/common/middleware/web_before/index.js +33 -0
  109. package/common/middleware/web_before/middleware.json +9 -0
  110. package/common/middleware/web_cors/index.js +87 -0
  111. package/common/middleware/web_cors/middleware.json +24 -0
  112. package/common/middleware/web_error/index.js +119 -0
  113. package/common/middleware/web_error/middleware.json +18 -0
  114. package/common/middleware/web_ip/index.js +15 -0
  115. package/common/middleware/web_ip/middleware.json +14 -0
  116. package/common/middleware/web_logger/index.js +156 -0
  117. package/common/middleware/web_logger/middleware.json +14 -0
  118. package/common/middleware/web_main/index.js +24 -0
  119. package/common/middleware/web_main/middleware.json +9 -0
  120. package/common/middleware/web_static/index.js +73 -0
  121. package/common/middleware/web_static/middleware.json +54 -0
  122. package/common/middleware/web_waf/index.js +385 -0
  123. package/common/middleware/web_waf/middleware.json +13 -0
  124. package/common/model/msg/index.js +88 -0
  125. package/common/model/msg/model.json +401 -0
  126. package/common/model/player/index.js +63 -0
  127. package/common/model/player/model.json +185 -0
  128. package/common/model/user/index.js +11 -0
  129. package/common/model/user/model.json +219 -0
  130. package/core/app/config.tpl.json +67 -0
  131. package/core/app/index.js +632 -0
  132. package/core/app/script.tpl.js +52 -0
  133. package/core/channel/index.js +899 -0
  134. package/core/channel/matcher.js +585 -0
  135. package/core/com/config.tpl.json +16 -0
  136. package/core/com/index.js +74 -0
  137. package/core/com/script.tpl.js +5 -0
  138. package/core/component/component.js +42 -0
  139. package/core/component/config.tpl.json +63 -0
  140. package/core/component/index.js +273 -0
  141. package/core/component/script.tpl.js +19 -0
  142. package/core/controller/config.tpl.json +14 -0
  143. package/core/controller/index.js +373 -0
  144. package/core/controller/script.tpl.js +27 -0
  145. package/core/factory/config.tpl.json +14 -0
  146. package/core/factory/entity.js +275 -0
  147. package/core/factory/index.js +241 -0
  148. package/core/factory/script.tpl.js +16 -0
  149. package/core/game/bat/index.js +137 -0
  150. package/core/game/bat/world.js +622 -0
  151. package/core/game/config.tpl.json +16 -0
  152. package/core/game/entity_admin.js +230 -0
  153. package/core/game/index.js +186 -0
  154. package/core/handler/config.tpl.json +22 -0
  155. package/core/handler/index.js +181 -0
  156. package/core/handler/script.tpl.js +23 -0
  157. package/core/logic/config.tpl.json +14 -0
  158. package/core/logic/index.js +59 -0
  159. package/core/logic/script.tpl.js +19 -0
  160. package/core/middleware/config.tpl.json +16 -0
  161. package/core/middleware/index.js +125 -0
  162. package/core/middleware/script.tpl.js +37 -0
  163. package/core/mod/config.tpl.json +22 -0
  164. package/core/mod/index.js +130 -0
  165. package/core/mod/script.tpl.js +34 -0
  166. package/core/model/config.tpl.json +219 -0
  167. package/core/model/index.js +272 -0
  168. package/core/model/model.js +27 -0
  169. package/core/model/script.tpl.js +20 -0
  170. package/core/notifier/config.tpl.json +14 -0
  171. package/core/notifier/index.js +77 -0
  172. package/core/notifier/script.tpl.js +20 -0
  173. package/core/plugin/config.tpl.json +24 -0
  174. package/core/plugin/index.js +232 -0
  175. package/core/plugin/script.tpl.js +51 -0
  176. package/core/pusher/config.tpl.json +14 -0
  177. package/core/pusher/index.js +161 -0
  178. package/core/pusher/script.tpl.js +20 -0
  179. package/core/room/bat/index.js +170 -0
  180. package/core/room/bat/room.js +524 -0
  181. package/core/room/config.tpl.json +20 -0
  182. package/core/room/index.js +249 -0
  183. package/core/room/room.js +61 -0
  184. package/core/scene/config.tpl.json +14 -0
  185. package/core/scene/index.js +466 -0
  186. package/core/scene/loop.js +1255 -0
  187. package/core/scene/map.js +28 -0
  188. package/core/scene/script.tpl.js +22 -0
  189. package/core/sender/config.tpl.json +14 -0
  190. package/core/sender/index.js +79 -0
  191. package/core/sender/script.tpl.js +20 -0
  192. package/core/service/config.tpl.json +14 -0
  193. package/core/service/index.js +100 -0
  194. package/core/service/script.tpl.js +25 -0
  195. package/core/store/config.tpl.json +26 -0
  196. package/core/store/index.js +1755 -0
  197. package/core/store/script.tpl.js +22 -0
  198. package/core/store/sql.js +1464 -0
  199. package/core/system/config.tpl.json +18 -0
  200. package/core/system/index.js +312 -0
  201. package/core/system/script.tpl.js +77 -0
  202. package/core/view/config.tpl.json +14 -0
  203. package/core/view/index.js +91 -0
  204. package/core/view/script.tpl.js +20 -0
  205. package/core/zone/bat/index.js +725 -0
  206. package/core/zone/config.tpl.json +54 -0
  207. package/core/zone/index.js +614 -0
  208. package/core/zone/script.tpl.js +10 -0
  209. package/core/zone/zone_bat.js +136 -0
  210. package/core//345/237/272/347/261/273/346/250/241/345/235/227/346/270/205/345/215/225.md +24 -0
  211. package/index.js +17 -314
  212. package/os.js +57 -0
  213. package/package.json +60 -58
  214. package/server.js +598 -0
  215. package/README.en.md +0 -36
  216. package/conf.json +0 -3
  217. package/core/base/mqtt/index.js +0 -1107
  218. package/core/base/mqtt/lib.js +0 -40
  219. package/core/base/web/index.js +0 -243
  220. package/core/com/api/com.json +0 -4
  221. package/core/com/api/drive.js +0 -668
  222. package/core/com/api/index.js +0 -108
  223. package/core/com/api/oauth.js +0 -158
  224. package/core/com/api/script.js +0 -32
  225. package/core/com/app/README.md +0 -3
  226. package/core/com/app/com.json +0 -4
  227. package/core/com/app/config.tpl.json +0 -16
  228. package/core/com/app/drive.js +0 -309
  229. package/core/com/app/index.js +0 -211
  230. package/core/com/app/script.js +0 -155
  231. package/core/com/cmd/com.json +0 -4
  232. package/core/com/cmd/config.tpl.json +0 -66
  233. package/core/com/cmd/drive.js +0 -513
  234. package/core/com/cmd/index.js +0 -354
  235. package/core/com/cmd/old/5w2h.js +0 -54
  236. package/core/com/cmd/old/drive.js +0 -423
  237. package/core/com/cmd/script.js +0 -11
  238. package/core/com/component/README.md +0 -3
  239. package/core/com/component/com.json +0 -4
  240. package/core/com/component/component.html +0 -16
  241. package/core/com/component/drive.js +0 -197
  242. package/core/com/component/index.js +0 -312
  243. package/core/com/component/script.js +0 -18
  244. package/core/com/db/com.json +0 -4
  245. package/core/com/db/drive.js +0 -1160
  246. package/core/com/db/index.js +0 -176
  247. package/core/com/event/com.json +0 -4
  248. package/core/com/event/drive.js +0 -133
  249. package/core/com/event/index.js +0 -345
  250. package/core/com/event/script.js +0 -26
  251. package/core/com/eventer/com.js +0 -477
  252. package/core/com/eventer/com.json +0 -4
  253. package/core/com/middleware/com.js +0 -153
  254. package/core/com/middleware/com.json +0 -4
  255. package/core/com/middleware/config.tpl.json +0 -8
  256. package/core/com/middleware/script.js +0 -9
  257. package/core/com/mqtt/com.json +0 -4
  258. package/core/com/mqtt/drive.js +0 -600
  259. package/core/com/mqtt/index.js +0 -572
  260. package/core/com/mqtt/mm_mqtt.js +0 -330
  261. package/core/com/mqtt/script.js +0 -604
  262. package/core/com/msg/com.js +0 -296
  263. package/core/com/msg/com.json +0 -4
  264. package/core/com/nav/com.json +0 -4
  265. package/core/com/nav/config.tpl.json +0 -75
  266. package/core/com/nav/drive.js +0 -549
  267. package/core/com/nav/index.js +0 -182
  268. package/core/com/nav/tpl/admin_pc/page_form.vue +0 -180
  269. package/core/com/nav/tpl/admin_pc/page_view.vue +0 -124
  270. package/core/com/nav/tpl/dev_pc/page_default.vue +0 -247
  271. package/core/com/nav/tpl/dev_pc/page_type.vue +0 -313
  272. package/core/com/nav/tpl/home_pc/page_default.vue +0 -234
  273. package/core/com/nav/tpl/home_pc/page_form.vue +0 -137
  274. package/core/com/nav/tpl/home_pc/page_list.vue +0 -234
  275. package/core/com/nav/tpl/home_pc/page_nav.vue +0 -221
  276. package/core/com/nav/tpl/home_pc/page_type.vue +0 -234
  277. package/core/com/nav/tpl/home_pc/page_view.vue +0 -125
  278. package/core/com/nav/tpl/home_phone/page_channel.vue +0 -234
  279. package/core/com/nav/tpl/home_phone/page_default.vue +0 -234
  280. package/core/com/nav/tpl/home_phone/page_form.vue +0 -137
  281. package/core/com/nav/tpl/home_phone/page_nav.vue +0 -237
  282. package/core/com/nav/tpl/home_phone/page_type.vue +0 -234
  283. package/core/com/nav/tpl/home_phone/page_view.vue +0 -125
  284. package/core/com/nav/viewmodel.js +0 -296
  285. package/core/com/param/drive.js +0 -366
  286. package/core/com/param/index.js +0 -80
  287. package/core/com/param/script.js +0 -12
  288. package/core/com/param/test.js +0 -98
  289. package/core/com/plugin/README.md +0 -3
  290. package/core/com/plugin/com.json +0 -4
  291. package/core/com/plugin/config.tpl.json +0 -26
  292. package/core/com/plugin/drive.js +0 -536
  293. package/core/com/plugin/index.js +0 -259
  294. package/core/com/plugin/script.js +0 -213
  295. package/core/com/rpc/com.json +0 -4
  296. package/core/com/rpc/drive.js +0 -160
  297. package/core/com/rpc/index.js +0 -87
  298. package/core/com/rpc/rpc.js +0 -118
  299. package/core/com/socket/com.json +0 -4
  300. package/core/com/socket/config.tpl.json +0 -14
  301. package/core/com/socket/drive.js +0 -403
  302. package/core/com/socket/index.js +0 -62
  303. package/core/com/socket/script.js +0 -42
  304. package/core/com/sql/drive.js +0 -1087
  305. package/core/com/sql/index.js +0 -83
  306. package/core/com/sql/script.js +0 -48
  307. package/core/com/static/com.json +0 -4
  308. package/core/com/static/drive.js +0 -220
  309. package/core/com/static/index.js +0 -149
  310. package/core/com/static/script.js +0 -28
  311. package/core/com/task/com.json +0 -4
  312. package/core/com/task/drive.js +0 -403
  313. package/core/com/task/index.js +0 -110
  314. package/core/com/task/script.js +0 -37
  315. package/core/com/timer/com.js +0 -217
  316. package/core/com/timer/com.json +0 -4
  317. package/core/com/tpl/com.js +0 -19
  318. package/core/com/tpl/com.json +0 -4
  319. package/lib/actions.js +0 -50
  320. package/lib/base.js +0 -361
  321. package/lib/com.js +0 -29
  322. package/lib/ref.js +0 -121
  323. package/middleware/mqtt_base/index.js +0 -10
  324. package/middleware/mqtt_base/middleware.json +0 -10
  325. package/middleware/performance/index.js +0 -151
  326. package/middleware/performance/middleware.json +0 -16
  327. package/middleware/security_audit/index.js +0 -549
  328. package/middleware/security_audit/middleware.json +0 -48
  329. package/middleware/security_headers/index.js +0 -487
  330. package/middleware/security_headers/middleware.json +0 -45
  331. package/middleware/waf/index.js +0 -348
  332. package/middleware/waf/middleware.json +0 -10
  333. package/middleware/waf_ddos/index.js +0 -520
  334. package/middleware/waf_ddos/middleware.json +0 -38
  335. package/middleware/waf_ip/index.js +0 -379
  336. package/middleware/waf_ip/middleware.json +0 -49
  337. package/middleware/waf_xss/index.js +0 -269
  338. package/middleware/waf_xss/middleware.json +0 -18
  339. package/middleware/web_after/index.js +0 -33
  340. package/middleware/web_after/middleware.json +0 -9
  341. package/middleware/web_base/index.js +0 -90
  342. package/middleware/web_base/middleware.json +0 -9
  343. package/middleware/web_before/index.js +0 -27
  344. package/middleware/web_before/middleware.json +0 -9
  345. package/middleware/web_check/index.js +0 -28
  346. package/middleware/web_check/middleware.json +0 -9
  347. package/middleware/web_main/index.js +0 -28
  348. package/middleware/web_main/middleware.json +0 -9
  349. package/middleware/web_proxy/index.js +0 -37
  350. package/middleware/web_proxy/middleware.json +0 -9
  351. package/middleware/web_render/index.js +0 -87
  352. package/middleware/web_render/middleware.json +0 -9
  353. package/middleware/web_socket/index.js +0 -34
  354. package/middleware/web_socket/middleware.json +0 -9
  355. package/middleware/web_static/index.js +0 -115
  356. package/middleware/web_static/middleware.json +0 -9
  357. /package/{core/com → com}/api/README.md +0 -0
  358. /package/{core/com → com}/db/README.md +0 -0
  359. /package/{core/com → com}/event/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,141 @@
1
+ const compressing = require('compressing');
2
+ const Index = require('mm_machine').Index;
3
+ const Drive = require('./drive').Drive;
4
+
5
+ /**
6
+ * 参数类
7
+ * @extends {Index}
8
+ * @class
9
+ */
10
+ class Template extends Index {
11
+ /**
12
+ * 配置参数
13
+ * @type {object}
14
+ */
15
+ static config = {
16
+ /**
17
+ * 名称
18
+ * @type {string}
19
+ */
20
+ name: '',
21
+ /**
22
+ * 标题
23
+ * @type {string}
24
+ */
25
+ title: 'sql管理',
26
+ /**
27
+ * 描述
28
+ * @type {string}
29
+ */
30
+ description: '这是sql管理器',
31
+ /**
32
+ * 检索文件名
33
+ * @type {string}
34
+ */
35
+ filename: 'sql.json',
36
+ /**
37
+ * 模板目录
38
+ * @type {string}
39
+ */
40
+ tpl_dir: __dirname,
41
+ /**
42
+ * 基础目录
43
+ * @type {string}
44
+ */
45
+ base_dir: '../common/sql'.fullname(__dirname),
46
+ /**
47
+ * 自定义目录,加载项目自定义资源
48
+ * @type {string}
49
+ */
50
+ dir: './app'.fullname(),
51
+ /**
52
+ * 搜索模式 dir按目录搜索 | file按文件名搜索
53
+ * @type {string}
54
+ */
55
+ search_way: 'file',
56
+ /**
57
+ * 是否懒加载
58
+ * @type {boolean}
59
+ */
60
+ lazy_load: true,
61
+ /**
62
+ * 模式
63
+ * 1.生产模式,改变文件不会重新加载
64
+ * 2.热更新模式,改变配置文件会重新加载配置,不重新加载脚本
65
+ * 3.热重载模式,改变配置文件都会加载配置和脚本
66
+ * 4.重载模式,执行完后重新加载脚本,避免变量污染
67
+ * 5.热更新+重载模式,改变配置文件重新加载配置和脚本,执行完后重新加载脚本
68
+ * @type {number}
69
+ */
70
+ mode: 3
71
+ };
72
+
73
+ /**
74
+ * 构造函数
75
+ * @param {String} scope 作用域
76
+ * @param {String} title 标题
77
+ * @constructor
78
+ */
79
+ constructor(config, parent) {
80
+ super({ ...Template.config, ...config }, parent);
81
+ this.type = "template";
82
+ this.title = config.title;
83
+ }
84
+ }
85
+
86
+ Template.prototype.Drive = Drive;
87
+
88
+ /**
89
+ * 解压模板
90
+ * @param {Object} file 模板压缩文件
91
+ */
92
+ Template.prototype.unzip = async function(file) {
93
+ var done = await compressing.zip.uncompress(file, "/static/template".fullname());
94
+ return done;
95
+ };
96
+
97
+ /**
98
+ * 获取模板
99
+ * @param {string} key 模板键名
100
+ * @returns {object} 模板对象
101
+ */
102
+ Template.prototype.get = function(key) {
103
+ return this.mods[key];
104
+ };
105
+
106
+ /**
107
+ * 主题模板模板池
108
+ */
109
+ if (!$.pool.template) {
110
+ $.pool.template = {};
111
+ }
112
+
113
+ /**
114
+ * 主题模板管理器,用于创建缓存
115
+ * @param {string} scope 作用域
116
+ * @param {string} title 标题
117
+ * @returns {object} 返回一个缓存类
118
+ */
119
+ function templateAdmin(scope, title) {
120
+ var sc = scope || $.val.scope + '';
121
+ var obj = $.pool.template[sc];
122
+ if (!obj) {
123
+ $.pool.template[sc] = new Template({
124
+ name: sc,
125
+ title: title
126
+ });
127
+ obj = $.pool.template[sc];
128
+ }
129
+ return obj;
130
+ }
131
+
132
+ /**
133
+ * @module 导出模板管理器
134
+ */
135
+ if ($.admin) {
136
+ $.admin.template = templateAdmin;
137
+ }
138
+
139
+ module.exports = {
140
+ Template
141
+ };
package/com.js ADDED
@@ -0,0 +1,156 @@
1
+ require('mm_machine');
2
+ const { Word } = require('./ulits/word.js');
3
+
4
+ if (!$.admin) {
5
+ $.admin = {};
6
+ }
7
+ /**
8
+ * 公共模块管理类
9
+ */
10
+ class Com {
11
+ static config = {
12
+ name: 'com',
13
+ title: '公共模块'
14
+ };
15
+
16
+ /**
17
+ * 构造函数
18
+ * @param {object} config 配置参数
19
+ */
20
+ constructor(config) {
21
+ this.config = {
22
+ name: 'com',
23
+ ...Com.config,
24
+ ...config
25
+ };
26
+ /**
27
+ * 公共模块配置列表
28
+ */
29
+ this.list = [];
30
+ }
31
+ }
32
+
33
+ /**
34
+ * 排序
35
+ * @private
36
+ */
37
+ Com.prototype._sort = function () {
38
+ this.list.sort((a, b) => {
39
+ return a.sort - b.sort;
40
+ });
41
+ };
42
+
43
+ /**
44
+ * 将文件名改为类名
45
+ * @param {string} name 文件名
46
+ * @returns {string} 类名
47
+ */
48
+ Com.prototype.toClassName = function (name) {
49
+ var word = new Word();
50
+ return word.toPascalCase(name);
51
+ };
52
+
53
+ /**
54
+ * 加载配置
55
+ * @param {string} file 配置文件
56
+ * @returns {object} 返回配置信息
57
+ */
58
+ Com.prototype._loadConfig = function (file) {
59
+ var cg;
60
+ if (file.hasFile()) {
61
+ cg = file.loadJson();
62
+ if (!cg) {
63
+ var name = this.toClassName(file.dirname().basename());
64
+ var content = `{
65
+ // 名称
66
+ "name": "${name}",
67
+ // 标题
68
+ "title": "公共模块",
69
+ // 描述
70
+ "description": "定义公共模块",
71
+ // 状态 0:禁用 1:启用
72
+ "state": 1,
73
+ // 排序,越小越靠前
74
+ "sort": 100,
75
+ // 依赖的module
76
+ "dependencies": []
77
+ }`;
78
+ file.saveText(content);
79
+ cg = file.loadJson();
80
+ }
81
+ }
82
+ return cg;
83
+ };
84
+
85
+ /**
86
+ * 加载脚本
87
+ * @param {object} cg 配置信息
88
+ */
89
+ Com.prototype._loadScript = function (cg) {
90
+ var file = (cg.main || './index.js').fullname(cg.dir);
91
+ if (!file.hasFile()) {
92
+ var name = this.toClassName(cg.name);
93
+ var title = cg.title;
94
+ var script = `/**
95
+ * ${title}
96
+ */
97
+ class ${name} {
98
+ /**
99
+ * 构造函数
100
+ * @param {object} config 配置参数
101
+ */
102
+ constructor(config) {
103
+ this.config = {...config};
104
+ }
105
+ }
106
+
107
+ exports.${name} = ${name};`;
108
+ file.saveText(script);
109
+ }
110
+ try {
111
+ this[cg.name] = $.require(file, (mod) => {
112
+ this[cg.name] = mod;
113
+ });
114
+ } catch (error) {
115
+ $.log.error('加载脚本失败!', error);
116
+ }
117
+ };
118
+
119
+ /**
120
+ * 批量加载配置
121
+ * @private
122
+ * @param {string} dir 目录路径
123
+ * @param {string} dirname 目录名
124
+ */
125
+ Com.prototype._loads = function (dir, dirname) {
126
+ if (!dir || !dir.hasDir()) {
127
+ return;
128
+ }
129
+ var files = $.file.getAll(dir, this.config.name + '.json', dirname);
130
+ for (let i = 0; i < files.length; i++) {
131
+ var file = files[i];
132
+ var cg = this._loadConfig(file);
133
+ if (cg) {
134
+ cg.dir = file.dirname();
135
+ this.list.push(cg);
136
+ }
137
+ }
138
+
139
+ this._sort();
140
+ for (let i = 0; i < this.list.length; i++) {
141
+ var cg = this.list[i];
142
+ if (cg.state) {
143
+ this._loadScript(cg);
144
+ }
145
+ }
146
+ };
147
+
148
+ /**
149
+ * 加载公共模块
150
+ */
151
+ Com.prototype.loads = function () {
152
+ this._loads('./com'.fullname(__dirname));
153
+ this._loads('/com'.fullname());
154
+ };
155
+
156
+ exports.Com = Com;
@@ -0,0 +1,2 @@
1
+ common 为公共模块, 会被每一个APP引用
2
+ 提供一些内置的处理器、模型、服务。
@@ -0,0 +1,22 @@
1
+ {
2
+ // 名称
3
+ "name": "msg",
4
+ // 标题
5
+ "title": "消息处理器",
6
+ // 描述
7
+ "description": "负责处理消息",
8
+ // 主文件
9
+ "main": "index.js",
10
+ // 作用域,决定加载到什么区域
11
+ "scope": "server",
12
+ // 状态 0:禁用 1:启用
13
+ "state": 1,
14
+ // 排序,越小越靠前
15
+ "sort": 100,
16
+ // 依赖的领域服务
17
+ "services": [],
18
+ // 依赖的仓储
19
+ "stores": [],
20
+ // 依赖的富血模型
21
+ "models": ["msg"]
22
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 处理器(应用层)
3
+ */
4
+ module.exports = {
5
+ /**
6
+ * 初始化
7
+ * @param {object} app 应用实例
8
+ * @param {object} eventer 事件总线
9
+ */
10
+ async _init(app, eventer) {
11
+ // this.log('debug', `初始化!`, app.config.name);
12
+ // 可将监听写在这里
13
+ // eventer.on('');
14
+ },
15
+ /**
16
+ * 主要逻辑
17
+ * @param {...any} args 逻辑参数
18
+ */
19
+ async main(...args) {
20
+ this.log('debug', `主要逻辑`);
21
+ // 主要代码写在这
22
+ }
23
+ };
@@ -0,0 +1,22 @@
1
+ {
2
+ // 名称
3
+ "name": "player",
4
+ // 标题
5
+ "title": "玩家处理器",
6
+ // 描述
7
+ "description": "负责处理玩家相关的操作",
8
+ // 主文件
9
+ "main": "index.js",
10
+ // 作用域,决定加载到什么区域
11
+ "scope": "server",
12
+ // 状态 0:禁用 1:启用
13
+ "state": 1,
14
+ // 排序,越小越靠前
15
+ "sort": 100,
16
+ // 依赖的领域服务
17
+ "services": [],
18
+ // 依赖的仓储
19
+ "stores": [],
20
+ // 依赖的富血模型
21
+ "models": ["player"]
22
+ }
@@ -0,0 +1,287 @@
1
+ /**
2
+ * 处理器(应用层)
3
+ */
4
+ module.exports = {
5
+ /**
6
+ * 初始化
7
+ * @param {object} app 应用实例
8
+ * @param {object} eventer 事件总线
9
+ */
10
+ async _init(app, eventer) {
11
+ // this.log('debug', `初始化!`);
12
+ // 可将监听写在这里
13
+ // eventer.on('');
14
+ },
15
+ /**
16
+ * 主要逻辑
17
+ * @param {...any} args 逻辑参数
18
+ */
19
+ async main(...args) {
20
+ this.log('debug', `主要逻辑`);
21
+ // 主要代码写在这
22
+ },
23
+ /**
24
+ * 设置玩家数据
25
+ * @param {object} data 玩家数据
26
+ */
27
+ async setting(data) {
28
+ $.push(this, data, true);
29
+ },
30
+
31
+ /**
32
+ * 设置玩家频道ID
33
+ * @param {number} channel_id 频道ID
34
+ */
35
+ async setChannelId(channel_id) {
36
+ this.channel_id = channel_id;
37
+ },
38
+
39
+ /**
40
+ * 设置玩家房间ID
41
+ * @param {number} room_id 房间ID
42
+ */
43
+ async setRoomId(room_id) {
44
+ this.room_id = room_id;
45
+ },
46
+
47
+ /**
48
+ * 处理消息
49
+ * @param {object} msg 消息对象
50
+ * @returns {boolean} 是否处理成功
51
+ */
52
+ async onMessage(msg) {
53
+ try {
54
+ // 根据消息类型进行分发处理
55
+ switch (msg.msg_type) {
56
+ case 'combat':
57
+ return await this._handleCombat(msg);
58
+ case 'activity':
59
+ return await this._handleActivity(msg);
60
+ case 'mail':
61
+ return await this._handleMail(msg);
62
+ case 'system':
63
+ return await this._handleSystem(msg);
64
+ case 'text':
65
+ return await this._handleText(msg);
66
+ case 'chat':
67
+ return await this._handleChat(msg);
68
+ default:
69
+ return await this._handleDefault(msg);
70
+ }
71
+ } catch (error) {
72
+ console.error(`玩家 ${this.player_id} 数据处理失败:`, error);
73
+ return false;
74
+ }
75
+ },
76
+
77
+ /**
78
+ * 处理文本消息
79
+ * @param {object} msg 消息对象
80
+ * @returns {boolean} 是否处理成功
81
+ */
82
+ async _handleText(msg) {
83
+ try {
84
+ // 根据消息范围进行分发处理
85
+ switch (msg.msg_group) {
86
+ case 'private':
87
+ return await this._handlePrivateText(msg);
88
+ case 'channel':
89
+ return await this._handleChannelText(msg);
90
+ case 'world':
91
+ return await this._handleWorldText(msg);
92
+ case 'guild':
93
+ return await this._handleGuildText(msg);
94
+ default:
95
+ return await this._handleDefaultText(msg);
96
+ }
97
+ } catch (error) {
98
+ console.error(`玩家 ${this.player_id} 处理文本消息失败:`, error);
99
+ return false;
100
+ }
101
+ },
102
+
103
+ /**
104
+ * 处理私聊文本消息
105
+ * @param {object} msg 消息对象
106
+ * @returns {boolean} 是否处理成功
107
+ */
108
+ async _handlePrivateText(msg) {
109
+ // 处理私聊消息逻辑
110
+ console.log(`[私聊] ${msg.sender_name}: ${msg.content}`);
111
+ return true;
112
+ },
113
+
114
+ /**
115
+ * 处理频道文本消息
116
+ * @param {object} msg 消息对象
117
+ * @returns {boolean} 是否处理成功
118
+ */
119
+ async _handleChannelText(msg) {
120
+ // 处理频道消息逻辑
121
+ console.log(`[频道${msg.channel_id}] ${msg.sender_name}: ${msg.content}`);
122
+ return true;
123
+ },
124
+
125
+ /**
126
+ * 处理世界文本消息
127
+ * @param {object} msg 消息对象
128
+ * @returns {boolean} 是否处理成功
129
+ */
130
+ async _handleWorldText(msg) {
131
+ // 处理世界消息逻辑
132
+ console.log(`[世界] ${msg.sender_name}: ${msg.content}`);
133
+ return true;
134
+ },
135
+
136
+ /**
137
+ * 处理公会文本消息
138
+ * @param {object} msg 消息对象
139
+ * @returns {boolean} 是否处理成功
140
+ */
141
+ async _handleGuildText(msg) {
142
+ // 处理公会消息逻辑
143
+ console.log(`[公会] ${msg.sender_name}: ${msg.content}`);
144
+ return true;
145
+ },
146
+
147
+ /**
148
+ * 处理默认文本消息
149
+ * @param {object} msg 消息对象
150
+ * @returns {boolean} 是否处理成功
151
+ */
152
+ async _handleDefaultText(msg) {
153
+ // 处理默认文本消息逻辑
154
+ console.log(`[未知范围] ${msg.sender_name}: ${msg.content}`);
155
+ return true;
156
+ },
157
+
158
+ /**
159
+ * 处理战斗数据
160
+ * @param {object} msg 消息对象
161
+ * @returns {boolean} 是否处理成功
162
+ */
163
+ async _handleCombat(msg) {
164
+ // 处理战斗相关数据:技能释放、伤害计算、战斗结果等
165
+ var combat = msg.data;
166
+
167
+ // 示例:处理伤害数据
168
+ if (combat.damage && combat.target_id === this.player_id) {
169
+ this.health -= combat.damage;
170
+ }
171
+
172
+ // 这里可以添加更多的战斗数据处理逻辑
173
+ return true;
174
+ },
175
+
176
+ /**
177
+ * 处理活动数据
178
+ * @param {object} msg 消息对象
179
+ * @returns {boolean} 是否处理成功
180
+ */
181
+ async _handleActivity(msg) {
182
+ // 处理活动相关数据:活动开始、奖励发放、进度更新等
183
+ var activity = msg.data;
184
+
185
+ // 示例:处理活动奖励
186
+ if (activity.rewards) {
187
+ this.rewards = this.rewards || [];
188
+ this.rewards.push(...activity.rewards);
189
+ }
190
+
191
+ return true;
192
+ },
193
+
194
+ /**
195
+ * 处理邮件数据
196
+ * @param {object} msg 消息对象
197
+ * @returns {boolean} 是否处理成功
198
+ */
199
+ async _handleMail(msg) {
200
+ // 处理邮件相关数据:邮件内容、附件、赠品等
201
+ var mail = msg.data;
202
+
203
+ // 示例:处理邮件接收
204
+ this.mailbox = this.mailbox || [];
205
+ this.mailbox.push({
206
+ id: Date.now(),
207
+ title: mail.title,
208
+ content: mail.content,
209
+ attachments: mail.attachments || [],
210
+ timestamp: Date.now()
211
+ });
212
+
213
+ return true;
214
+ },
215
+
216
+ /**
217
+ * 处理系统数据
218
+ * @param {object} msg 消息对象
219
+ * @returns {boolean} 是否处理成功
220
+ */
221
+ async _handleSystem(msg) {
222
+ // 处理系统相关数据:系统公告、维护通知等
223
+ var system = msg.data;
224
+
225
+ // 示例:处理系统公告
226
+ console.log(`玩家 ${this.player_id} 收到系统公告:`, system.message);
227
+
228
+ return true;
229
+ },
230
+
231
+ /**
232
+ * 处理私聊数据
233
+ * @param {object} msg 消息对象
234
+ * @returns {boolean} 是否处理成功
235
+ * @private
236
+ */
237
+ async _handlePrivate(msg) {
238
+ // 处理私聊相关数据:私聊消息、好友请求等
239
+ var data = msg.data;
240
+
241
+ // 示例:处理私聊消息
242
+ console.log(`玩家 ${this.player_id} 收到私聊消息:`, data.message);
243
+
244
+ return true;
245
+ },
246
+
247
+ /**
248
+ * 处理频道数据
249
+ * @param {object} msg 消息对象
250
+ * @returns {boolean} 是否处理成功
251
+ */
252
+ async _handleChannel(msg) {
253
+ // 处理频道相关数据:频道公告、频道活动等
254
+ var channel = msg.data;
255
+
256
+ // 示例:处理频道消息
257
+ console.log(`玩家 ${this.player_id} 收到频道消息:`, channel.message);
258
+
259
+ return true;
260
+ },
261
+
262
+ /**
263
+ * 处理聊天数据
264
+ * @param {object} msg 消息对象
265
+ * @returns {boolean} 是否处理成功
266
+ */
267
+ async _handleChat(msg) {
268
+ // 处理聊天相关数据:聊天消息、频道消息等
269
+ var chat = msg.data;
270
+
271
+ // 示例:处理聊天消息
272
+ console.log(`玩家 ${this.player_id} 收到聊天消息:`, chat.message);
273
+
274
+ return true;
275
+ },
276
+
277
+ /**
278
+ * 处理默认数据
279
+ * @param {object} msg 消息对象
280
+ * @returns {boolean} 是否处理成功
281
+ */
282
+ async _handleDefault(msg) {
283
+ // 处理未知类型的数据
284
+ console.log(`玩家 ${this.player_id} 收到未知类型数据:`, msg);
285
+ return true;
286
+ }
287
+ };
@@ -0,0 +1,22 @@
1
+ {
2
+ // 名称
3
+ "name": "user",
4
+ // 标题
5
+ "title": "示例处理器",
6
+ // 描述
7
+ "description": "介绍该处理器有什么用",
8
+ // 主文件
9
+ "main": "index.js",
10
+ // 作用域,决定加载到什么区域
11
+ "scope": "server",
12
+ // 状态 0:禁用 1:启用
13
+ "state": 1,
14
+ // 排序,越小越靠前
15
+ "sort": 100,
16
+ // 依赖的领域服务
17
+ "services": [],
18
+ // 依赖的仓储
19
+ "stores": [],
20
+ // 依赖的富血模型
21
+ "models": ["user"]
22
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 处理器(应用层)
3
+ */
4
+ module.exports = {
5
+ /**
6
+ * 初始化
7
+ * @param {object} app 应用实例
8
+ * @param {object} eventer 事件总线
9
+ */
10
+ async _init(app, eventer) {
11
+ // this.log('debug', `初始化!`);
12
+ // 可将监听写在这里
13
+ // eventer.on('');
14
+ },
15
+ /**
16
+ * 主要逻辑
17
+ * @param {...any} args 逻辑参数
18
+ */
19
+ async main(...args) {
20
+ this.log('debug', `主要逻辑`);
21
+ // 主要代码写在这
22
+ }
23
+ };