yeow-api 0.2.48 → 0.2.50

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yeow-api",
3
- "version": "0.2.48",
3
+ "version": "0.2.50",
4
4
  "description": "Yeow API",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
package/src/event.ts CHANGED
@@ -7,86 +7,104 @@ import { Location } from './location.js';
7
7
  export interface PlayerJoinEvent {
8
8
  player: Player;
9
9
  joinMessage: string;
10
+ cancelled?: boolean;
10
11
  }
11
12
  export interface PlayerQuitEvent {
12
13
  player: Player;
13
14
  quitMessage: string;
15
+ cancelled?: boolean;
14
16
  }
15
17
  export interface PlayerChatEvent {
16
18
  player: Player;
17
19
  message: string;
18
20
  format: string;
21
+ cancelled?: boolean;
19
22
  }
20
23
  export interface PlayerMoveEvent {
21
24
  player: Player;
22
25
  from: Location;
23
26
  to: Location;
27
+ cancelled?: boolean;
24
28
  }
25
29
  export interface PlayerInteractEvent {
26
30
  player: Player;
27
31
  action: string;
28
32
  material: string | null;
29
33
  block: { x: number; y: number; z: number; type: string } | null;
34
+ cancelled?: boolean;
30
35
  }
31
36
  export interface PlayerCommandEvent {
32
37
  player: Player;
33
38
  message: string;
39
+ cancelled?: boolean;
34
40
  }
35
41
  export interface PlayerDeathEvent {
36
42
  player: Player;
37
43
  deathMessage: string;
38
44
  deathType: string;
45
+ cancelled?: boolean;
39
46
  }
40
47
  export interface PlayerRespawnEvent {
41
48
  player: Player;
42
49
  respawnLocation: Location;
50
+ cancelled?: boolean;
43
51
  }
44
52
  export interface PlayerDropItemEvent {
45
53
  player: Player;
46
54
  itemType: string;
47
55
  amount: number;
56
+ cancelled?: boolean;
48
57
  }
49
58
  export interface PlayerPickupItemEvent {
50
59
  player: Player;
51
60
  itemType: string;
52
61
  amount: number;
62
+ cancelled?: boolean;
53
63
  }
54
64
  export interface PlayerBucketFillEvent {
55
65
  player: Player;
56
66
  bucket: string;
67
+ cancelled?: boolean;
57
68
  }
58
69
  export interface PlayerBucketEmptyEvent {
59
70
  player: Player;
60
71
  bucket: string;
72
+ cancelled?: boolean;
61
73
  }
62
74
  export interface PlayerExpChangeEvent {
63
75
  player: Player;
64
76
  amount: number;
77
+ cancelled?: boolean;
65
78
  }
66
79
  export interface PlayerLevelChangeEvent {
67
80
  player: Player;
68
81
  oldLevel: number;
69
82
  newLevel: number;
83
+ cancelled?: boolean;
70
84
  }
71
85
  export interface PlayerGameModeChangeEvent {
72
86
  player: Player;
73
87
  newGameMode: string;
88
+ cancelled?: boolean;
74
89
  }
75
90
  export interface FoodLevelChangeEvent {
76
91
  player: Player;
77
92
  oldFoodLevel: number;
78
93
  newFoodLevel: number;
94
+ cancelled?: boolean;
79
95
  }
80
96
  export interface EntityDamageEvent {
81
97
  entity: string;
82
98
  damage: number;
83
99
  cause: string;
84
100
  entityType: string;
101
+ cancelled?: boolean;
85
102
  }
86
103
  export interface EntityDeathEvent {
87
104
  entity: string;
88
105
  entityType: string;
89
106
  entityName: string;
107
+ cancelled?: boolean;
90
108
  }
91
109
  export interface EntitySpawnEvent {
92
110
  entity: string;
@@ -95,11 +113,13 @@ export interface EntitySpawnEvent {
95
113
  y: number;
96
114
  z: number;
97
115
  world: string;
116
+ cancelled?: boolean;
98
117
  }
99
118
  export interface ProjectileLaunchEvent {
100
119
  entity: string;
101
120
  projectileType: string;
102
121
  shooter?: string;
122
+ cancelled?: boolean;
103
123
  }
104
124
  export interface BlockBreakEvent {
105
125
  player: Player;
@@ -107,6 +127,7 @@ export interface BlockBreakEvent {
107
127
  x: number;
108
128
  y: number;
109
129
  z: number;
130
+ cancelled?: boolean;
110
131
  }
111
132
  export interface BlockPlaceEvent {
112
133
  player: Player;
@@ -115,31 +136,37 @@ export interface BlockPlaceEvent {
115
136
  x: number;
116
137
  y: number;
117
138
  z: number;
139
+ cancelled?: boolean;
118
140
  }
119
141
  export interface InventoryOpenEvent {
120
142
  player: Player;
121
143
  inventoryType: string;
122
144
  title: string;
145
+ cancelled?: boolean;
123
146
  }
124
147
  export interface InventoryCloseEvent {
125
148
  player: Player;
126
149
  inventoryType: string;
150
+ cancelled?: boolean;
127
151
  }
128
152
  export interface ServerPingEvent {
129
153
  address: string;
130
154
  numPlayers: number;
131
155
  maxPlayers: number;
132
156
  motd: string;
157
+ cancelled?: boolean;
133
158
  }
134
159
  export interface PlayerTeleportEvent {
135
160
  player: Player;
136
161
  from: Location;
137
162
  to: Location;
138
163
  cause: string;
164
+ cancelled?: boolean;
139
165
  }
140
166
  export interface PlayerItemConsumeEvent {
141
167
  player: Player;
142
168
  itemType: string;
169
+ cancelled?: boolean;
143
170
  }
144
171
  export interface EntityExplodeEvent {
145
172
  entity: string;
@@ -148,49 +175,58 @@ export interface EntityExplodeEvent {
148
175
  y: number;
149
176
  z: number;
150
177
  blockCount: number;
178
+ cancelled?: boolean;
151
179
  }
152
180
  export interface EntityRegainHealthEvent {
153
181
  entity: string;
154
182
  amount: number;
155
183
  reason: string;
184
+ cancelled?: boolean;
156
185
  }
157
186
  export interface EntityTargetEvent {
158
187
  entity: string;
159
188
  target: string | null;
189
+ cancelled?: boolean;
160
190
  }
161
191
  export interface ProjectileHitEvent {
162
192
  entity: string;
163
193
  projectileType: string;
164
194
  hitEntity: string | null;
165
195
  hitBlock: { x: number; y: number; z: number; type: string } | null;
196
+ cancelled?: boolean;
166
197
  }
167
198
  export interface BlockFadeEvent {
168
199
  block: string;
169
200
  x: number;
170
201
  y: number;
171
202
  z: number;
203
+ cancelled?: boolean;
172
204
  }
173
205
  export interface BlockGrowEvent {
174
206
  block: string;
175
207
  x: number;
176
208
  y: number;
177
209
  z: number;
210
+ cancelled?: boolean;
178
211
  }
179
212
  export interface BlockSpreadEvent {
180
213
  block: string;
181
214
  x: number;
182
215
  y: number;
183
216
  z: number;
217
+ cancelled?: boolean;
184
218
  }
185
219
  export interface BlockExplodeEvent {
186
220
  block: string;
187
221
  x: number;
188
222
  y: number;
189
223
  z: number;
224
+ cancelled?: boolean;
190
225
  }
191
226
  export interface ServerCommandEvent {
192
227
  command: string;
193
228
  sender: string;
229
+ cancelled?: boolean;
194
230
  }
195
231
  export interface InventoryClickEvent {
196
232
  player: Player;
@@ -203,6 +239,7 @@ export interface InventoryClickEvent {
203
239
  isShiftClick: boolean;
204
240
  clickedItem: ItemData | null;
205
241
  cursorItem: ItemData | null;
242
+ cancelled?: boolean;
206
243
  }
207
244
  interface ItemData {
208
245
  type: string;
@@ -212,6 +249,7 @@ export interface PlayerResourcePackStatusEvent {
212
249
  player: Player;
213
250
  status: string;
214
251
  hash: string;
252
+ cancelled?: boolean;
215
253
  }
216
254
 
217
255
  type EventMap = {
package/src/index.ts CHANGED
@@ -79,3 +79,4 @@ export { createBoard as createScoreboard, deleteBoard as deleteScoreboard,
79
79
  setPlayerBoard } from './scoreboard.js';
80
80
  export { getMaterials, getBlocks, getItems } from './material.js';
81
81
  export type { MaterialInfo } from './material.js';
82
+ export { log, Logger } from './log.js';
package/src/log-error.ts CHANGED
@@ -12,5 +12,5 @@ export function logError(err: any, context?: string): void {
12
12
  const m = err?.stack?.match(/at\s+(?:\S+\s+)?\(?([^\s(]+):(\d+):(\d+)\)?/);
13
13
  if (m) { info.fileName = m[1]; info.lineNumber = parseInt(m[2]); info.columnNumber = parseInt(m[3]); }
14
14
  }
15
- (globalThis as any).$send('reportError', info);
15
+ (globalThis as any).$send('debug', { t: 'reportError', p: info });
16
16
  }
package/src/log.ts ADDED
@@ -0,0 +1,34 @@
1
+ function _sendLog(level: string, prefix: string, ...args: unknown[]): void {
2
+ const msg = (prefix || '') + args.map((v) => { try { return String(v); } catch { return '?'; } }).join(' ');
3
+ $send('log', { level, message: msg });
4
+ }
5
+
6
+ export const log = {
7
+ info(...args: unknown[]): void {
8
+ _sendLog('INFO', '', ...args);
9
+ },
10
+ warn(...args: unknown[]): void {
11
+ _sendLog('WARN', '', ...args);
12
+ },
13
+ error(...args: unknown[]): void {
14
+ _sendLog('ERROR', '', ...args);
15
+ },
16
+ };
17
+
18
+ export class Logger {
19
+ private prefix: string;
20
+
21
+ constructor(prefix?: string) {
22
+ this.prefix = prefix || '';
23
+ }
24
+
25
+ info(...args: unknown[]): void {
26
+ _sendLog('INFO', this.prefix, ...args);
27
+ }
28
+ warn(...args: unknown[]): void {
29
+ _sendLog('WARN', this.prefix, ...args);
30
+ }
31
+ error(...args: unknown[]): void {
32
+ _sendLog('ERROR', this.prefix, ...args);
33
+ }
34
+ }