ddbot.js-0374 1.0.2 → 1.0.3

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 (2) hide show
  1. package/ddbot.js-0374.d.ts +316 -0
  2. package/package.json +3 -2
@@ -0,0 +1,316 @@
1
+ declare module 'ddbot.js-0374' {
2
+ import { EventEmitter } from 'events';
3
+
4
+ /**
5
+ * Информация об идентичности бота (скин, клан, цвета и т.д.)
6
+ */
7
+ export interface BotIdentity {
8
+ name?: string;
9
+ clan?: string;
10
+ skin?: string;
11
+ use_custom_color?: number;
12
+ color_body?: number;
13
+ color_feet?: number;
14
+ country?: number;
15
+ }
16
+
17
+ /**
18
+ * Параметры для создания бота
19
+ */
20
+ export interface BotParameters {
21
+ /** Идентичность бота (скин, клан, цвета) */
22
+ identity?: BotIdentity;
23
+ /** Переподключаться ли боту при разрыве соединения */
24
+ reconnect?: boolean;
25
+ /** Количество попыток переподключения (-1 для бесконечного) */
26
+ reconnectAttempts?: number;
27
+ /** Использовать ли случайную задержку при переподключении (0-1 сек) */
28
+ randreconnect?: boolean;
29
+ }
30
+
31
+ /**
32
+ * Информация о боте
33
+ */
34
+ export interface BotInfo {
35
+ client: any;
36
+ fulladdress: string;
37
+ originalName: string;
38
+ parameter: BotParameters;
39
+ isConnected: boolean;
40
+ createdAt: number;
41
+ }
42
+
43
+ /**
44
+ * Информация об игроке на сервере
45
+ */
46
+ export interface PlayerInfo {
47
+ client_id: number;
48
+ name: string;
49
+ clan: string;
50
+ country: number;
51
+ team: number;
52
+ skin: string;
53
+ x: number | null;
54
+ y: number | null;
55
+ }
56
+
57
+ /**
58
+ * Детали карты
59
+ */
60
+ export interface MapDetails {
61
+ map_name: string;
62
+ map_url?: string;
63
+ }
64
+
65
+ /**
66
+ * Менеджер ботов для управления несколькими ботами
67
+ */
68
+ export class BotManager extends EventEmitter {
69
+ /**
70
+ * Создает нового бота
71
+ * @param fulladdress - Полный адрес сервера (IP:порт)
72
+ * @param botName - Имя бота
73
+ * @param parameter - Параметры бота
74
+ * @returns Уникальное имя бота или null в случае ошибки
75
+ */
76
+ createBot(
77
+ fulladdress: string,
78
+ botName: string,
79
+ parameter?: BotParameters
80
+ ): Promise<string | null>;
81
+
82
+ /**
83
+ * Подключает бота к серверу
84
+ * @param botName - Уникальное имя бота
85
+ * @returns true если подключение успешно
86
+ */
87
+ connectBot(botName: string): Promise<boolean>;
88
+
89
+ /**
90
+ * Отключает бота от сервера
91
+ * @param botName - Уникальное имя бота
92
+ * @returns true если отключение успешно
93
+ */
94
+ disconnectBot(botName: string): Promise<boolean>;
95
+
96
+ /**
97
+ * Отключает всех ботов
98
+ * @returns Результаты отключения каждого бота
99
+ */
100
+ disconnectAllBots(): Promise<Array<PromiseSettledResult<boolean>>>;
101
+
102
+ /**
103
+ * Получает информацию о боте
104
+ * @param botName - Уникальное имя бота
105
+ * @returns Информация о боте или null
106
+ */
107
+ getBotInfo(botName: string): BotInfo | null;
108
+
109
+ /**
110
+ * Проверяет, подключен ли бот
111
+ * @param botName - Уникальное имя бота
112
+ * @returns true если бот подключен
113
+ */
114
+ isBotConnected(botName: string): boolean;
115
+
116
+ /**
117
+ * Проверяет, заморожен ли бот
118
+ * @param botName - Уникальное имя бота
119
+ * @returns true если бот заморожен
120
+ */
121
+ isFreezeBot(botName: string): boolean;
122
+
123
+ /**
124
+ * Устанавливает состояние заморозки бота
125
+ * @param botName - Уникальное имя бота
126
+ * @param isFrozen - true для заморозки, false для разморозки
127
+ */
128
+ setFreezeBot(botName: string, isFrozen: boolean): void;
129
+
130
+ /**
131
+ * Получает список всех активных ботов
132
+ * @returns Массив имен всех активных ботов
133
+ */
134
+ getAllActiveBots(): string[];
135
+
136
+ /**
137
+ * Получает клиент бота
138
+ * @param botName - Уникальное имя бота
139
+ * @returns Клиент бота или null
140
+ */
141
+ getBotClient(botName: string): any | null;
142
+
143
+ /**
144
+ * Удаляет бота из менеджера
145
+ * @param botName - Уникальное имя бота
146
+ * @returns true если бот был удален
147
+ */
148
+ removeBot(botName: string): boolean;
149
+
150
+ /**
151
+ * Получает объект бота с событиями
152
+ * @param botName - Уникальное имя бота
153
+ * @returns Объект бота или null
154
+ */
155
+ getBot(botName: string): any | null;
156
+
157
+ /**
158
+ * Получает список игроков на сервере
159
+ * @param botName - Уникальное имя бота
160
+ * @returns Массив игроков
161
+ */
162
+ getPlayerList(botName: string): PlayerInfo[];
163
+
164
+ /**
165
+ * Получает имя игрока по его ID
166
+ * @param botName - Уникальное имя бота или массив игроков
167
+ * @param clientId - ID клиента игрока
168
+ * @returns Имя игрока или null
169
+ */
170
+ getPlayerName(botName: string | PlayerInfo[], clientId: number): string | null;
171
+
172
+ // События
173
+ on(event: `${string}:connect`, listener: () => void): this;
174
+ on(event: `${string}:connected`, listener: () => void): this;
175
+ on(event: `${string}:disconnect`, listener: (reason: string, reconnectTime?: number) => void): this;
176
+ on(event: `${string}:disconnected`, listener: (reason: string, reconnectTime?: number) => void): this;
177
+ on(event: `${string}:reconnect`, listener: (reconnectTime: number) => void): this;
178
+ on(event: `${string}:snapshot`, listener: (snapshot: any) => void): this;
179
+ on(event: `${string}:message`, listener: (msg: any) => void): this;
180
+ on(event: `${string}:ChatNoSystem`, listener: (msgraw: any, autormsg: string, text: string, team: number, client_id: number) => void): this;
181
+ on(event: `${string}:ChatRaw`, listener: (msgraw: any, autormsg: string, text: string, team: number, client_id: number) => void): this;
182
+ on(event: `${string}:error`, listener: (error: Error) => void): this;
183
+ on(event: `${string}:map_details`, listener: (mapDetails: MapDetails) => void): this;
184
+ on(event: string, listener: (...args: any[]) => void): this;
185
+ }
186
+
187
+ /**
188
+ * Класс для логирования с настройками отладки
189
+ */
190
+ export class DebugLogger {
191
+ /**
192
+ * Создает новый логгер
193
+ * @param prefix - Префикс для сообщений
194
+ * @param isDebug - Включить режим отладки
195
+ * @param islog - Использовать console.log вместо console.debug
196
+ * @param prefixforprefix - Префикс для префикса [начало, конец]
197
+ * @param chalk - Использовать цветной текст
198
+ */
199
+ constructor(
200
+ prefix: string,
201
+ isDebug?: boolean,
202
+ islog?: boolean,
203
+ prefixforprefix?: [string, string] | null,
204
+ chalk?: boolean
205
+ );
206
+
207
+ /**
208
+ * Логирует отладочную информацию
209
+ * @param args - Аргументы для логирования
210
+ */
211
+ logDebug(...args: any[]): void;
212
+
213
+ /**
214
+ * Устанавливает режим отладки
215
+ * @param debugMode - Включить/выключить отладку
216
+ * @param useLog - Использовать console.log
217
+ * @param chalk - Использовать цветной текст
218
+ */
219
+ setDebugMode(debugMode: boolean, useLog?: boolean, chalk?: boolean): void;
220
+ }
221
+
222
+ /**
223
+ * Функции для загрузки карт
224
+ */
225
+ export interface MapLoader {
226
+ /**
227
+ * Получает тип карты с ddnet.org
228
+ * @param mapName - Имя карты
229
+ * @returns Тип карты (novice, moderate и т.д.)
230
+ */
231
+ fetchMapType(mapName: string): Promise<string>;
232
+
233
+ /**
234
+ * Загружает карту по имени
235
+ * @param mapName - Имя карты
236
+ * @param MAP_DIR - Директория для загрузки
237
+ * @returns true если загрузка успешна
238
+ */
239
+ loadMap(mapName: string, MAP_DIR: string): Promise<boolean>;
240
+
241
+ /**
242
+ * Расширенные функции для работы с картами
243
+ */
244
+ advanced: {
245
+ /**
246
+ * Загружает карту по имени и типу
247
+ * @param mapName - Имя карты
248
+ * @param type - Тип карты
249
+ * @param MAP_DIR_DM - Директория для загрузки
250
+ * @returns Путь к загруженной карте
251
+ */
252
+ downloadMap(mapName: string, type: string, MAP_DIR_DM: string): Promise<string>;
253
+
254
+ /**
255
+ * Пытается загрузить карту
256
+ * @param mapName - Имя карты
257
+ * @param type - Тип карты
258
+ * @param MAP_DIR - Директория для загрузки
259
+ * @returns true если успешно
260
+ */
261
+ tryDownloadMap(mapName: string, type: string, MAP_DIR: string): Promise<boolean>;
262
+
263
+ /** Логгер для MapLoader */
264
+ logDebuger: DebugLogger;
265
+ };
266
+ }
267
+
268
+ /**
269
+ * Событие загрузки карты
270
+ */
271
+ export interface AutoMapLoadedEvent {
272
+ loaded: boolean;
273
+ mapDetails: MapDetails;
274
+ botName: string;
275
+ dir: string;
276
+ }
277
+
278
+ /**
279
+ * Автоматический загрузчик карт
280
+ */
281
+ export interface AutomapLoader {
282
+ /**
283
+ * Запускает автоматическую загрузку карт для бота
284
+ * @param botName - Имя бота
285
+ * @param dir - Директория для загрузки карт
286
+ */
287
+ work(botName: string, dir: string): Promise<void>;
288
+
289
+ /**
290
+ * Подписка на события автозагрузки
291
+ * @param event - Имя события
292
+ * @param callback - Обработчик события
293
+ */
294
+ on(event: 'automaploader:map_loaded', callback: (data: AutoMapLoadedEvent) => void): void;
295
+ }
296
+
297
+ /**
298
+ * Объект с классом BotManager и логгером
299
+ */
300
+ export interface BotClassAndLogger {
301
+ BotManager: typeof BotManager;
302
+ logDebuger: DebugLogger;
303
+ }
304
+
305
+ /** Экземпляр BotManager */
306
+ export const bot: BotManager;
307
+
308
+ /** Загрузчик карт */
309
+ export const mapLoader: MapLoader;
310
+
311
+ /** Автоматический загрузчик карт */
312
+ export const Automaploader: AutomapLoader;
313
+
314
+ /** Класс BotManager и логгер */
315
+ export const botClassAndLoger: BotClassAndLogger;
316
+ }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "neiky-ddracebot.js": "^2.4.0"
5
5
  },
6
6
  "name": "ddbot.js-0374",
7
- "version": "1.0.2",
7
+ "version": "1.0.3",
8
8
  "description": "ddbot.js — это Node.js проект для автоматизации и управления ботами, а также работы с картами и логами.",
9
9
  "main": "./index.js",
10
10
  "scripts": {
@@ -31,5 +31,6 @@
31
31
  "bugs": {
32
32
  "url": "https://github.com/0374flop/ddbot.js/issues"
33
33
  },
34
- "homepage": "https://github.com/0374flop/ddbot.js#readme"
34
+ "homepage": "https://github.com/0374flop/ddbot.js#readme",
35
+ "types": "ddbot.js-0374.d.ts"
35
36
  }