2
2
// LiteLoaderScript Dev Helper
3
3
/// <reference path="../HelperLib/src/index.d.ts"/>
4
4
5
- const pluginName = 'NavigationAPI' ;
6
- const exportNamespace = 'NavAPI' ;
7
- const tasks = new Map ( ) ;
8
- const { Red, Green, Aqua, White, LightPurple, Clear, MinecoinGold } = Format ;
5
+ const pluginName = 'NavigationAPI'
6
+ const exportNamespace = 'NavAPI'
7
+ const tasks = new Map ( )
8
+ const { Red, Green, Aqua, White, LightPurple, Clear, MinecoinGold } = Format
9
9
10
10
/**
11
11
* @typedef {Object } FloatPosObject
@@ -25,25 +25,25 @@ const { Red, Green, Aqua, White, LightPurple, Clear, MinecoinGold } = Format;
25
25
* @returns {string }
26
26
*/
27
27
function formatPos ( pos ) {
28
- const { x, y, z, dimId } = pos ;
28
+ const { x, y, z, dimId } = pos
29
29
const dim = ( ( ) => {
30
30
switch ( dimId ) {
31
31
case 0 :
32
- return '主世界' ;
32
+ return '主世界'
33
33
case 1 :
34
- return '地狱' ;
34
+ return '地狱'
35
35
case 2 :
36
- return '末地' ;
36
+ return '末地'
37
37
default :
38
- return '未知' ;
38
+ return '未知'
39
39
}
40
- } ) ( ) ;
40
+ } ) ( )
41
41
return (
42
42
`${ White } ${ x . toFixed ( 0 ) } , ` +
43
43
`${ y . toFixed ( 0 ) } , ` +
44
44
`${ z . toFixed ( 0 ) } , ` +
45
45
`${ LightPurple } ${ dim } `
46
- ) ;
46
+ )
47
47
}
48
48
49
49
/**
@@ -53,18 +53,18 @@ function formatPos(pos) {
53
53
* @returns {boolean } 是否成功
54
54
*/
55
55
function clearNavigationTask ( xuid ) {
56
- const pl = mc . getPlayer ( xuid ) ;
57
- const taskId = tasks . get ( xuid ) ;
56
+ const pl = mc . getPlayer ( xuid )
57
+ const taskId = tasks . get ( xuid )
58
58
59
59
if ( ! taskId ) {
60
- pl . tell ( `${ Red } 没有导航进行中` ) ;
61
- return false ;
60
+ pl . tell ( `${ Red } 没有导航进行中` )
61
+ return false
62
62
}
63
63
64
- clearInterval ( taskId ) ;
65
- tasks . delete ( xuid ) ;
66
- pl . tell ( `${ Green } 本次导航完成~欢迎下次使用~` , 5 ) ;
67
- return true ;
64
+ clearInterval ( taskId )
65
+ tasks . delete ( xuid )
66
+ pl . tell ( `${ Green } 本次导航完成~欢迎下次使用~` , 5 )
67
+ return true
68
68
}
69
69
70
70
/**
@@ -74,7 +74,7 @@ function clearNavigationTask(xuid) {
74
74
* @returns {boolean } 玩家导航状态 true为正在导航
75
75
*/
76
76
function hasNavigationTask ( xuid ) {
77
- return ! ! tasks . get ( xuid ) ; // to boolean
77
+ return ! ! tasks . get ( xuid ) // to boolean
78
78
}
79
79
80
80
/**
@@ -85,91 +85,90 @@ function hasNavigationTask(xuid) {
85
85
* @returns {boolean } 是否成功
86
86
*/
87
87
function newNavigationTask ( xuid , warp ) {
88
- const tmpPl = mc . getPlayer ( xuid ) ;
88
+ const tmpPl = mc . getPlayer ( xuid )
89
89
90
90
/**
91
91
* @param {number } x
92
92
* @param {number } z
93
93
* @returns {string }
94
94
*/
95
95
function formatXZPos ( x , z ) {
96
- return `${ Green } ${ x . toFixed ( ) } , ~, ${ z . toFixed ( ) } ` ;
96
+ return `${ Green } ${ x . toFixed ( ) } , ~, ${ z . toFixed ( ) } `
97
97
}
98
98
99
99
if ( hasNavigationTask ( xuid ) ) {
100
- tmpPl . tell ( `${ Red } 已有导航正在进行中,请先结束` ) ;
101
- return false ;
100
+ tmpPl . tell ( `${ Red } 已有导航正在进行中,请先结束` )
101
+ return false
102
102
}
103
103
104
104
function task ( ) {
105
- const pl = mc . getPlayer ( xuid ) ;
105
+ const pl = mc . getPlayer ( xuid )
106
106
const {
107
107
pos : { x, y, z, dimid : dimId } ,
108
- } = pl ;
109
- const { pos, name } = warp ;
110
- const { x : dx , y : dy , z : dz , dimId : dDim } = pos ;
108
+ } = pl
109
+ const { pos, name } = warp
110
+ const { x : dx , y : dy , z : dz , dimId : dDim } = pos
111
111
const distance = Math . sqrt (
112
- ( x - dx ) * ( x - dx ) + ( y - dy ) * ( y - dy ) + ( z - dz ) * ( z - dz )
113
- ) ;
112
+ ( x - dx ) * ( x - dx ) + ( y - dy ) * ( y - dy ) + ( z - dz ) * ( z - dz ) ,
113
+ )
114
114
115
115
let msg =
116
116
`${ Green } ${ name } ${ Clear } | ` +
117
- `${ MinecoinGold } 目标位置: ${ formatPos ( pos ) } ${ Clear } | ` ;
117
+ `${ MinecoinGold } 目标位置: ${ formatPos ( pos ) } ${ Clear } | `
118
118
if ( dimId !== dDim ) {
119
119
msg += ( ( ) => {
120
- if ( dimId === 2 || dDim === 2 ) return `${ Red } 维度不匹配` ;
121
- if ( dDim === 1 )
120
+ if ( dimId === 2 || dDim === 2 ) return `${ Red } 维度不匹配`
121
+ if ( dDim === 1 ) {
122
122
// warp点在地狱
123
- return `${ MinecoinGold } 主世界坐标: ${ formatXZPos ( dx * 8 , dz * 8 ) } ` ;
124
- if ( dDim === 0 )
123
+ return `${ MinecoinGold } 主世界坐标: ${ formatXZPos ( dx * 8 , dz * 8 ) } `
124
+ }
125
+ if ( dDim === 0 ) {
125
126
// warp点在主世界
126
- return `${ MinecoinGold } 地狱坐标: ${ formatXZPos ( dx / 8 , dz / 8 ) } ` ;
127
- return `${ Red } 非法导航` ;
128
- } ) ( ) ;
127
+ return `${ MinecoinGold } 地狱坐标: ${ formatXZPos ( dx / 8 , dz / 8 ) } `
128
+ }
129
+ return `${ Red } 非法导航`
130
+ } ) ( )
129
131
} else {
130
132
if ( distance <= 3 ) {
131
- clearNavigationTask ( pl . xuid ) ;
132
- return ;
133
+ clearNavigationTask ( pl . xuid )
134
+ return
133
135
}
134
136
135
137
msg +=
136
- `${ MinecoinGold } 距离 ${ Green } ${ distance . toFixed ( 2 ) } ` +
137
- `${ MinecoinGold } 方块` ;
138
+ `${ MinecoinGold } 距离 ${ Green } ${ distance . toFixed ( 2 ) } ` + `${ MinecoinGold } 方块`
138
139
}
139
- pl . tell ( msg , 5 ) ;
140
+ pl . tell ( msg , 5 )
140
141
}
141
142
142
- tmpPl . tell ( `${ Green } 开始为您导航~` ) ;
143
- tmpPl . tell ( `${ Green } 开始为您导航~` , 5 ) ;
144
- const taskId = setInterval ( task , 500 ) ;
145
- tasks . set ( xuid , taskId ) ;
146
- return true ;
143
+ tmpPl . tell ( `${ Green } 开始为您导航~` )
144
+ tmpPl . tell ( `${ Green } 开始为您导航~` , 5 )
145
+ const taskId = setInterval ( task , 500 )
146
+ tasks . set ( xuid , taskId )
147
+ return true
147
148
}
148
149
149
- mc . listen ( 'onLeft' , ( pl ) => clearNavigationTask ( pl . xuid ) ) ;
150
+ mc . listen ( 'onLeft' , ( pl ) => clearNavigationTask ( pl . xuid ) )
150
151
151
152
mc . listen ( 'onServerStarted' , ( ) => {
152
- const cmd = mc . newCommand ( 'stopnav' , '停止导航' , PermType . Any ) ;
153
+ const cmd = mc . newCommand ( 'stopnav' , '停止导航' , PermType . Any )
153
154
154
155
cmd . setCallback ( ( _ , origin , out ) => {
155
156
if ( ! origin . player ) {
156
- out . error (
157
- '该指令只能由玩家执行,请使用execute命令模拟目标玩家执行该指令'
158
- ) ;
159
- return false ;
157
+ out . error ( '该指令只能由玩家执行,请使用execute命令模拟目标玩家执行该指令' )
158
+ return false
160
159
}
161
- return clearNavigationTask ( origin . player . xuid ) ;
162
- } ) ;
160
+ return clearNavigationTask ( origin . player . xuid )
161
+ } )
163
162
164
- cmd . overload ( ) ;
165
- cmd . setup ( ) ;
166
- } ) ;
163
+ cmd . overload ( )
164
+ cmd . setup ( )
165
+ } )
167
166
168
- ll . exports ( newNavigationTask , `${ exportNamespace } _newTask` ) ;
169
- ll . exports ( clearNavigationTask , `${ exportNamespace } _clearTask` ) ;
170
- ll . exports ( hasNavigationTask , `${ exportNamespace } _hasTask` ) ;
167
+ ll . exports ( newNavigationTask , `${ exportNamespace } _newTask` )
168
+ ll . exports ( clearNavigationTask , `${ exportNamespace } _clearTask` )
169
+ ll . exports ( hasNavigationTask , `${ exportNamespace } _hasTask` )
171
170
172
171
ll . registerPlugin ( pluginName , '导航API' , [ 0 , 1 , 4 ] , {
173
172
Author : 'student_2333' ,
174
173
License : 'Apache-2.0' ,
175
- } ) ;
174
+ } )
0 commit comments