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.
- package/ddbot.js-0374.d.ts +316 -0
- 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.
|
|
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
|
}
|