@diegofemello/bitbot-types 1.0.3 → 1.1.0
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/README.md +60 -20
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/utils/card.utils.d.ts +31 -0
- package/dist/utils/card.utils.d.ts.map +1 -0
- package/dist/utils/card.utils.js +59 -0
- package/dist/utils/command.utils.d.ts +22 -0
- package/dist/utils/command.utils.d.ts.map +1 -0
- package/dist/utils/command.utils.js +49 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +20 -0
- package/dist/utils/user.utils.d.ts +21 -0
- package/dist/utils/user.utils.d.ts.map +1 -0
- package/dist/utils/user.utils.js +40 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -23,22 +23,25 @@ npm install github:diegofemello/bitbot-types#master
|
|
|
23
23
|
|
|
24
24
|
```typescript
|
|
25
25
|
// Importando interfaces e enums específicos
|
|
26
|
-
import {
|
|
26
|
+
import { IUser, Bot, Card, Pokemon, Auction, UserRole, CommandIndex } from '@diegofemello/bitbot-types';
|
|
27
|
+
|
|
28
|
+
// Importando funções utilitárias
|
|
29
|
+
import { logUserInfo, hasUserRole, formatBitCoins, logCommandExecution, logCardInfo } from '@diegofemello/bitbot-types';
|
|
27
30
|
|
|
28
31
|
// Importando tudo
|
|
29
32
|
import * as BitBotTypes from '@diegofemello/bitbot-types';
|
|
30
33
|
|
|
31
|
-
// Exemplos de uso
|
|
32
|
-
const user: BitBotTypes.
|
|
34
|
+
// Exemplos de uso das interfaces
|
|
35
|
+
const user: BitBotTypes.IUser = {
|
|
33
36
|
// ... propriedades do usuário
|
|
34
37
|
roles: [UserRole.User, UserRole.Vip]
|
|
35
38
|
};
|
|
36
39
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
// Exemplos de uso das funções utilitárias
|
|
41
|
+
logUserInfo(user, '[DEBUG]');
|
|
42
|
+
hasUserRole(user, UserRole.Admin);
|
|
43
|
+
formatBitCoins(12500); // "12.500 BitCoins"
|
|
44
|
+
logCommandExecution(CommandIndex.abracar, user.id_usuario, true);
|
|
42
45
|
```
|
|
43
46
|
|
|
44
47
|
## 📋 Interfaces Disponíveis
|
|
@@ -63,26 +66,63 @@ const card: BitBotTypes.Card = {
|
|
|
63
66
|
| `CommandIndex` | Índice de comandos do bot | `abracar`, `addgrupo`, `atividade`, etc. |
|
|
64
67
|
| `UserRole` | Níveis de acesso do usuário | `User`, `Admin`, `GameMaster`, `SuperAdmin`, `Moderator`, `Vip` |
|
|
65
68
|
|
|
69
|
+
## 🛠️ Funções Utilitárias
|
|
70
|
+
|
|
71
|
+
### 👤 User Utils
|
|
72
|
+
- `logUserInfo(user, prefix?)` - Faz log das informações do usuário
|
|
73
|
+
- `hasUserRole(user, role)` - Verifica se usuário tem uma role específica
|
|
74
|
+
- `formatBitCoins(amount)` - Formata valor de BitCoins com separadores
|
|
75
|
+
|
|
76
|
+
### ⚡ Command Utils
|
|
77
|
+
- `logCommandExecution(command, userId, success?)` - Loga execução de comandos
|
|
78
|
+
- `isGameCommand(command)` - Verifica se é um comando de jogo
|
|
79
|
+
- `formatExecutionTime(startTime, endTime?)` - Formata tempo de execução
|
|
80
|
+
|
|
81
|
+
### 🃏 Card Utils
|
|
82
|
+
- `logCardInfo(card, context?)` - Faz log das informações da carta
|
|
83
|
+
- `isRareCard(card)` - Verifica se a carta é rara (raridade >= 8)
|
|
84
|
+
- `calculateCardValue(card, baseValue?)` - Calcula valor da carta baseado na raridade
|
|
85
|
+
- `getCardsStats(cards)` - Gera estatísticas de múltiplas cartas
|
|
86
|
+
|
|
66
87
|
## ✅ Testando a Instalação
|
|
67
88
|
|
|
68
89
|
Para testar se a instalação funcionou corretamente, você pode criar um arquivo de teste:
|
|
69
90
|
|
|
70
91
|
```typescript
|
|
71
92
|
// test.ts
|
|
72
|
-
import {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
93
|
+
import {
|
|
94
|
+
IUser,
|
|
95
|
+
CommandIndex,
|
|
96
|
+
UserRole,
|
|
97
|
+
logUserInfo,
|
|
98
|
+
hasUserRole,
|
|
99
|
+
formatBitCoins,
|
|
100
|
+
logCommandExecution
|
|
101
|
+
} from '@diegofemello/bitbot-types';
|
|
102
|
+
|
|
103
|
+
// Teste de interface e funções utilitárias
|
|
104
|
+
const user: IUser = {
|
|
105
|
+
_id: '123',
|
|
106
|
+
id_usuario: 'user123',
|
|
107
|
+
nome: 'João',
|
|
108
|
+
bitbcoins: 12500,
|
|
109
|
+
slots: 5,
|
|
110
|
+
frags: 10,
|
|
111
|
+
xp: 500,
|
|
112
|
+
createdAt: new Date(),
|
|
113
|
+
updatedAt: new Date(),
|
|
114
|
+
pontuacao: 100,
|
|
115
|
+
discord_id: 'discord123',
|
|
116
|
+
roles: [UserRole.User, UserRole.Vip]
|
|
83
117
|
};
|
|
84
118
|
|
|
85
|
-
|
|
119
|
+
// Testando as funções utilitárias
|
|
120
|
+
logUserInfo(user, '[TEST]');
|
|
121
|
+
hasUserRole(user, UserRole.Admin);
|
|
122
|
+
console.log(formatBitCoins(user.bitbcoins));
|
|
123
|
+
logCommandExecution(CommandIndex.abracar, user.id_usuario, true);
|
|
124
|
+
|
|
125
|
+
console.log('✅ Tipos e funções importados com sucesso!');
|
|
86
126
|
```
|
|
87
127
|
|
|
88
128
|
## 🛠️ Desenvolvimento
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAG7B,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAG7B,cAAc,QAAQ,CAAC;AAGvB,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ICard } from '../interfaces';
|
|
2
|
+
/**
|
|
3
|
+
* Função utilitária para logar informações de uma carta
|
|
4
|
+
* @param card - Objeto carta do tipo ICard
|
|
5
|
+
* @param context - Contexto do log (opcional)
|
|
6
|
+
*/
|
|
7
|
+
export declare function logCardInfo(card: ICard, context?: string): void;
|
|
8
|
+
/**
|
|
9
|
+
* Verifica se uma carta é rara (raridade >= 8)
|
|
10
|
+
* @param card - Carta a ser verificada
|
|
11
|
+
* @returns true se a carta é rara
|
|
12
|
+
*/
|
|
13
|
+
export declare function isRareCard(card: ICard): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Calcula o valor de uma carta baseado em sua raridade
|
|
16
|
+
* @param card - Carta para calcular o valor
|
|
17
|
+
* @param baseValue - Valor base (padrão: 100)
|
|
18
|
+
* @returns Valor calculado
|
|
19
|
+
*/
|
|
20
|
+
export declare function calculateCardValue(card: ICard, baseValue?: number): number;
|
|
21
|
+
/**
|
|
22
|
+
* Gera um resumo rápido de múltiplas cartas
|
|
23
|
+
* @param cards - Array de cartas
|
|
24
|
+
* @returns Objeto com estatísticas
|
|
25
|
+
*/
|
|
26
|
+
export declare function getCardsStats(cards: ICard[]): {
|
|
27
|
+
total: number;
|
|
28
|
+
raras: number;
|
|
29
|
+
valorTotal: number;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=card.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.utils.d.ts","sourceRoot":"","sources":["../../src/utils/card.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,GAAE,MAAiB,GAAG,IAAI,CAczE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAI/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM,CAO/E;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAUlG"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logCardInfo = logCardInfo;
|
|
4
|
+
exports.isRareCard = isRareCard;
|
|
5
|
+
exports.calculateCardValue = calculateCardValue;
|
|
6
|
+
exports.getCardsStats = getCardsStats;
|
|
7
|
+
/**
|
|
8
|
+
* Função utilitária para logar informações de uma carta
|
|
9
|
+
* @param card - Objeto carta do tipo ICard
|
|
10
|
+
* @param context - Contexto do log (opcional)
|
|
11
|
+
*/
|
|
12
|
+
function logCardInfo(card, context = '[CARD]') {
|
|
13
|
+
console.log(`${context} Nome: ${card.name} | Raridade: ${card.rarity} | ID: ${card.id}`);
|
|
14
|
+
if (card.price) {
|
|
15
|
+
console.log(`${context} Preço: ${card.price} BitCoins`);
|
|
16
|
+
}
|
|
17
|
+
if (card.title) {
|
|
18
|
+
console.log(`${context} Título: ${card.title}`);
|
|
19
|
+
}
|
|
20
|
+
if (card.description) {
|
|
21
|
+
console.log(`${context} Descrição: ${card.description.substring(0, 100)}...`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Verifica se uma carta é rara (raridade >= 8)
|
|
26
|
+
* @param card - Carta a ser verificada
|
|
27
|
+
* @returns true se a carta é rara
|
|
28
|
+
*/
|
|
29
|
+
function isRareCard(card) {
|
|
30
|
+
const isRare = card.rarity >= 8;
|
|
31
|
+
console.log(`[RARITY_CHECK] Carta ${card.name} ${isRare ? 'É' : 'NÃO É'} rara (raridade: ${card.rarity})`);
|
|
32
|
+
return isRare;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Calcula o valor de uma carta baseado em sua raridade
|
|
36
|
+
* @param card - Carta para calcular o valor
|
|
37
|
+
* @param baseValue - Valor base (padrão: 100)
|
|
38
|
+
* @returns Valor calculado
|
|
39
|
+
*/
|
|
40
|
+
function calculateCardValue(card, baseValue = 100) {
|
|
41
|
+
const multiplier = Math.pow(1.5, card.rarity);
|
|
42
|
+
const calculatedValue = Math.floor(baseValue * multiplier);
|
|
43
|
+
console.log(`[CARD_VALUE] Carta ${card.name} (raridade ${card.rarity}) vale ${calculatedValue} BitCoins`);
|
|
44
|
+
return calculatedValue;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Gera um resumo rápido de múltiplas cartas
|
|
48
|
+
* @param cards - Array de cartas
|
|
49
|
+
* @returns Objeto com estatísticas
|
|
50
|
+
*/
|
|
51
|
+
function getCardsStats(cards) {
|
|
52
|
+
const stats = {
|
|
53
|
+
total: cards.length,
|
|
54
|
+
raras: cards.filter(card => isRareCard(card)).length,
|
|
55
|
+
valorTotal: cards.reduce((total, card) => total + calculateCardValue(card), 0)
|
|
56
|
+
};
|
|
57
|
+
console.log(`[CARDS_STATS] Total: ${stats.total} | Raras: ${stats.raras} | Valor Total: ${stats.valorTotal} BitCoins`);
|
|
58
|
+
return stats;
|
|
59
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CommandIndex } from '../enum';
|
|
2
|
+
/**
|
|
3
|
+
* Função utilitária para logar execução de comandos
|
|
4
|
+
* @param command - Comando executado
|
|
5
|
+
* @param userId - ID do usuário que executou
|
|
6
|
+
* @param success - Se o comando foi executado com sucesso
|
|
7
|
+
*/
|
|
8
|
+
export declare function logCommandExecution(command: CommandIndex, userId: string, success?: boolean): void;
|
|
9
|
+
/**
|
|
10
|
+
* Verifica se um comando é relacionado a jogos
|
|
11
|
+
* @param command - Comando a ser verificado
|
|
12
|
+
* @returns true se é um comando de jogo
|
|
13
|
+
*/
|
|
14
|
+
export declare function isGameCommand(command: CommandIndex): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Formata tempo de execução de comando
|
|
17
|
+
* @param startTime - Timestamp de início
|
|
18
|
+
* @param endTime - Timestamp de fim (opcional, usa Date.now() se não fornecido)
|
|
19
|
+
* @returns Tempo formatado em ms
|
|
20
|
+
*/
|
|
21
|
+
export declare function formatExecutionTime(startTime: number, endTime?: number): string;
|
|
22
|
+
//# sourceMappingURL=command.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.utils.d.ts","sourceRoot":"","sources":["../../src/utils/command.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAc,GAAG,IAAI,CAKxG;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAa5D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAW/E"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logCommandExecution = logCommandExecution;
|
|
4
|
+
exports.isGameCommand = isGameCommand;
|
|
5
|
+
exports.formatExecutionTime = formatExecutionTime;
|
|
6
|
+
const enum_1 = require("../enum");
|
|
7
|
+
/**
|
|
8
|
+
* Função utilitária para logar execução de comandos
|
|
9
|
+
* @param command - Comando executado
|
|
10
|
+
* @param userId - ID do usuário que executou
|
|
11
|
+
* @param success - Se o comando foi executado com sucesso
|
|
12
|
+
*/
|
|
13
|
+
function logCommandExecution(command, userId, success = true) {
|
|
14
|
+
const status = success ? '✅ SUCESSO' : '❌ ERRO';
|
|
15
|
+
const timestamp = new Date().toISOString();
|
|
16
|
+
console.log(`[COMMAND] ${timestamp} - ${status} - Usuário: ${userId} - Comando: ${command}`);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Verifica se um comando é relacionado a jogos
|
|
20
|
+
* @param command - Comando a ser verificado
|
|
21
|
+
* @returns true se é um comando de jogo
|
|
22
|
+
*/
|
|
23
|
+
function isGameCommand(command) {
|
|
24
|
+
const gameCommands = [
|
|
25
|
+
enum_1.CommandIndex.bicho,
|
|
26
|
+
enum_1.CommandIndex.bingo,
|
|
27
|
+
enum_1.CommandIndex.capturar,
|
|
28
|
+
enum_1.CommandIndex.caracoroa,
|
|
29
|
+
// Adicione mais comandos de jogo conforme necessário
|
|
30
|
+
];
|
|
31
|
+
const isGame = gameCommands.includes(command);
|
|
32
|
+
console.log(`[GAME_CHECK] Comando ${command} ${isGame ? 'É' : 'NÃO É'} um comando de jogo`);
|
|
33
|
+
return isGame;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Formata tempo de execução de comando
|
|
37
|
+
* @param startTime - Timestamp de início
|
|
38
|
+
* @param endTime - Timestamp de fim (opcional, usa Date.now() se não fornecido)
|
|
39
|
+
* @returns Tempo formatado em ms
|
|
40
|
+
*/
|
|
41
|
+
function formatExecutionTime(startTime, endTime) {
|
|
42
|
+
const end = endTime || Date.now();
|
|
43
|
+
const duration = end - startTime;
|
|
44
|
+
console.log(`[PERFORMANCE] Comando executado em ${duration}ms`);
|
|
45
|
+
if (duration > 1000) {
|
|
46
|
+
return `${(duration / 1000).toFixed(2)}s`;
|
|
47
|
+
}
|
|
48
|
+
return `${duration}ms`;
|
|
49
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Export all utility functions
|
|
18
|
+
__exportStar(require("./user.utils"), exports);
|
|
19
|
+
__exportStar(require("./command.utils"), exports);
|
|
20
|
+
__exportStar(require("./card.utils"), exports);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IUser, UserRole } from '../interfaces';
|
|
2
|
+
/**
|
|
3
|
+
* Função utilitária para fazer log de informações do usuário
|
|
4
|
+
* @param user - Objeto usuário do tipo IUser
|
|
5
|
+
* @param prefix - Prefixo para o log (opcional)
|
|
6
|
+
*/
|
|
7
|
+
export declare function logUserInfo(user: IUser, prefix?: string): void;
|
|
8
|
+
/**
|
|
9
|
+
* Verifica se um usuário tem uma role específica
|
|
10
|
+
* @param user - Objeto usuário
|
|
11
|
+
* @param role - Role a ser verificada
|
|
12
|
+
* @returns true se o usuário tem a role
|
|
13
|
+
*/
|
|
14
|
+
export declare function hasUserRole(user: IUser, role: UserRole): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Formata BitCoins com separadores de milhares
|
|
17
|
+
* @param amount - Quantidade de BitCoins
|
|
18
|
+
* @returns String formatada
|
|
19
|
+
*/
|
|
20
|
+
export declare function formatBitCoins(amount: number): string;
|
|
21
|
+
//# sourceMappingURL=user.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.utils.d.ts","sourceRoot":"","sources":["../../src/utils/user.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,GAAE,MAAiB,GAAG,IAAI,CAUxE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAIhE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIrD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logUserInfo = logUserInfo;
|
|
4
|
+
exports.hasUserRole = hasUserRole;
|
|
5
|
+
exports.formatBitCoins = formatBitCoins;
|
|
6
|
+
/**
|
|
7
|
+
* Função utilitária para fazer log de informações do usuário
|
|
8
|
+
* @param user - Objeto usuário do tipo IUser
|
|
9
|
+
* @param prefix - Prefixo para o log (opcional)
|
|
10
|
+
*/
|
|
11
|
+
function logUserInfo(user, prefix = '[USER]') {
|
|
12
|
+
console.log(`${prefix} ID: ${user.id_usuario}, Nome: ${user.nome}, BitCoins: ${user.bitbcoins}`);
|
|
13
|
+
if (user.roles && user.roles.length > 0) {
|
|
14
|
+
console.log(`${prefix} Roles: ${user.roles.join(', ')}`);
|
|
15
|
+
}
|
|
16
|
+
if (user.vip?.status) {
|
|
17
|
+
console.log(`${prefix} VIP até: ${user.vip.until}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Verifica se um usuário tem uma role específica
|
|
22
|
+
* @param user - Objeto usuário
|
|
23
|
+
* @param role - Role a ser verificada
|
|
24
|
+
* @returns true se o usuário tem a role
|
|
25
|
+
*/
|
|
26
|
+
function hasUserRole(user, role) {
|
|
27
|
+
const hasRole = user.roles?.includes(role) || false;
|
|
28
|
+
console.log(`[ROLE_CHECK] Usuário ${user.nome} ${hasRole ? 'TEM' : 'NÃO TEM'} a role: ${role}`);
|
|
29
|
+
return hasRole;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Formata BitCoins com separadores de milhares
|
|
33
|
+
* @param amount - Quantidade de BitCoins
|
|
34
|
+
* @returns String formatada
|
|
35
|
+
*/
|
|
36
|
+
function formatBitCoins(amount) {
|
|
37
|
+
const formatted = amount.toLocaleString('pt-BR');
|
|
38
|
+
console.log(`[BITCOINS] Formatando ${amount} -> ${formatted} BitCoins`);
|
|
39
|
+
return `${formatted} BitCoins`;
|
|
40
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diegofemello/bitbot-types",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Interfaces e tipos compartilhados do Bit Bot",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Diego Mello <diegofemello@example.com>",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"gaming"
|
|
43
43
|
],
|
|
44
44
|
"devDependencies": {
|
|
45
|
+
"@types/node": "^24.0.13",
|
|
45
46
|
"rimraf": "^5.0.10",
|
|
46
47
|
"typescript": "^5.0.0"
|
|
47
48
|
},
|