@@ -7,6 +7,23 @@ const exportNamespace = 'NavAPI';
7
7
const tasks = new Map ( ) ;
8
8
const { Red, Green, Aqua, White, LightPurple, Clear, MinecoinGold } = Format ;
9
9
10
+ /**
11
+ * @typedef {Object } FloatPosObject
12
+ * @property {number } x
13
+ * @property {number } y
14
+ * @property {number } z
15
+ * @property {number } dimId
16
+ */
17
+ /**
18
+ * @typedef {Object } Warp
19
+ * @property {FloatPosObject } pos
20
+ * @property {string } name
21
+ */
22
+
23
+ /**
24
+ * @param {FloatPosObject } pos
25
+ * @returns {string }
26
+ */
10
27
function formatPos ( pos ) {
11
28
const { x, y, z, dimId } = pos ;
12
29
const dim = ( ( ) => {
@@ -32,8 +49,8 @@ function formatPos(pos) {
32
49
/**
33
50
* 停止导航任务
34
51
*
35
- * @param {String } xuid 玩家Xuid
36
- * @returns {Boolean } 是否成功
52
+ * @param {string } xuid 玩家Xuid
53
+ * @returns {boolean } 是否成功
37
54
*/
38
55
function clearNavigationTask ( xuid ) {
39
56
const pl = mc . getPlayer ( xuid ) ;
@@ -53,8 +70,8 @@ function clearNavigationTask(xuid) {
53
70
/**
54
71
* 获取玩家是否正在导航中
55
72
*
56
- * @param {String } xuid 玩家Xuid
57
- * @returns {Boolean } 玩家导航状态 true为正在导航
73
+ * @param {string } xuid 玩家Xuid
74
+ * @returns {boolean } 玩家导航状态 true为正在导航
58
75
*/
59
76
function hasNavigationTask ( xuid ) {
60
77
return ! ! tasks . get ( xuid ) ; // to boolean
@@ -63,24 +80,18 @@ function hasNavigationTask(xuid) {
63
80
/**
64
81
* 新建导航任务
65
82
*
66
- * warp对象必须包含的项目示例
67
- * {
68
- * "pos": {
69
- * "x": 39.43924331665039,
70
- * "y": 65.62001037597656,
71
- * "z": 92.11305236816406,
72
- * "dimId": 0
73
- * },
74
- * "name": "岩浆池"
75
- * }
76
- *
77
- * @param {String } xuid 玩家Xuid
78
- * @param {Object } warp warp对象,示例见上
79
- * @returns {Boolean } 是否成功
83
+ * @param {string } xuid 玩家Xuid
84
+ * @param {Warp } warp warp对象
85
+ * @returns {boolean } 是否成功
80
86
*/
81
87
function newNavigationTask ( xuid , warp ) {
82
88
const tmpPl = mc . getPlayer ( xuid ) ;
83
89
90
+ /**
91
+ * @param {number } x
92
+ * @param {number } z
93
+ * @returns {string }
94
+ */
84
95
function formatXZPos ( x , z ) {
85
96
return `${ Green } ${ x . toFixed ( ) } ${ Red } ~ ${ Aqua } ${ z . toFixed ( ) } ` ;
86
97
}
@@ -99,7 +110,7 @@ function newNavigationTask(xuid, warp) {
99
110
const { x : dx , y : dy , z : dz , dimId : dDim } = pos ;
100
111
const distance = Math . sqrt (
101
112
( x - dx ) * ( x - dx ) + ( y - dy ) * ( y - dy ) + ( z - dz ) * ( z - dz )
102
- ) . toFixed ( 2 ) ;
113
+ ) ;
103
114
104
115
let msg =
105
116
`${ Green } ${ name } ${ Clear } | ` +
@@ -121,7 +132,9 @@ function newNavigationTask(xuid, warp) {
121
132
return ;
122
133
}
123
134
124
- msg += `${ MinecoinGold } 距离 ${ Green } ${ distance } ${ MinecoinGold } 方块` ;
135
+ msg +=
136
+ `${ MinecoinGold } 距离 ${ Green } ${ distance . toFixed ( 2 ) } ` +
137
+ `${ MinecoinGold } 方块` ;
125
138
}
126
139
pl . tell ( msg , 5 ) ;
127
140
}
@@ -135,7 +148,7 @@ function newNavigationTask(xuid, warp) {
135
148
136
149
mc . listen ( 'onLeft' , ( pl ) => clearNavigationTask ( pl . xuid ) ) ;
137
150
138
- ( ( ) => {
151
+ mc . listen ( 'onServerStarted' , ( ) => {
139
152
const cmd = mc . newCommand ( 'stopnav' , '停止导航' , PermType . Any ) ;
140
153
141
154
cmd . setCallback ( ( _ , origin , out ) => {
@@ -150,13 +163,13 @@ mc.listen('onLeft', (pl) => clearNavigationTask(pl.xuid));
150
163
151
164
cmd . overload ( ) ;
152
165
cmd . setup ( ) ;
153
- } ) ( ) ;
166
+ } ) ;
154
167
155
- ll . export ( newNavigationTask , `${ exportNamespace } _newTask` ) ;
156
- ll . export ( clearNavigationTask , `${ exportNamespace } _clearTask` ) ;
157
- ll . export ( hasNavigationTask , `${ exportNamespace } _hasTask` ) ;
168
+ ll . exports ( newNavigationTask , `${ exportNamespace } _newTask` ) ;
169
+ ll . exports ( clearNavigationTask , `${ exportNamespace } _clearTask` ) ;
170
+ ll . exports ( hasNavigationTask , `${ exportNamespace } _hasTask` ) ;
158
171
159
- ll . registerPlugin ( pluginName , '导航API' , [ 0 , 1 , 2 ] , {
172
+ ll . registerPlugin ( pluginName , '导航API' , [ 0 , 1 , 3 ] , {
160
173
Author : 'student_2333' ,
161
174
License : 'Apache-2.0' ,
162
175
} ) ;
0 commit comments