-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfullhelpers.js
More file actions
146 lines (142 loc) Β· 3.1 KB
/
Copy pathfullhelpers.js
File metadata and controls
146 lines (142 loc) Β· 3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
// fullhelper.js - $WinLEW Bot: All Commands Reference (User + Mod/Admin)
// Use for dynamic !help menus or docs!
/**
* Regular user commands.
* No duplicates, sorted for clarity.
*/
export const userCommands = [
{
cmd: '!balance <address|.sol>',
desc: 'π Check your $WinLEW balance'
},
{
cmd: '!faucet <address|.sol>',
desc: 'π§ Get daily free $WinLEW tokens (one claim per 24h)'
},
{
cmd: '!register <address|.sol>',
desc: 'π Register for $WinLEW airdrops'
},
{
cmd: '!price',
desc: 'π° View current $WinLEW price'
},
{
cmd: '!supply',
desc: 'π Show total $WinLEW supply'
},
{
cmd: '!links',
desc: 'π All major $WinLEW project links'
},
{
cmd: '!buy',
desc: 'π Buy $WinLEW on Pump.fun'
},
{
cmd: '!dexscreener',
desc: 'π View $WinLEW DexScreener chart'
},
{
cmd: '!rugcheck',
desc: 'π Safety check for $WinLEW (RugCheck)'
},
{
cmd: '!swap',
desc: 'π± Swap on Raydium'
},
{
cmd: '!geckoterminal',
desc: 'π View $WinLEW pool on GeckoTerminal'
},
{
cmd: '!cmc',
desc: 'π View CoinMarketCap listing'
},
{
cmd: '!website',
desc: 'π₯οΈ Official $WinLEW website'
},
{
cmd: '!quicklinks',
desc: 'β‘ Quick access to all $WinLEW essential links'
},
{
cmd: '!data',
desc: 'π Full price/stats from all major sources'
},
{
cmd: '!gdata',
desc: 'π¦ GeckoTerminal price and stats'
},
{
cmd: '!ddata',
desc: 'π DexScreener price and stats'
},
{
cmd: '!rdata',
desc: 'π± Raydium price and stats'
},
{
cmd: '!pdata',
desc: 'π§βπ Pump.fun price and stats'
},
{
cmd: '!uptime',
desc: 'β±οΈ Show bot uptime'
},
{
cmd: '!help',
desc: 'π Show main help menu'
},
{
cmd: '!fhelp',
desc: 'π Show all regular commands (for advanced users)'
}
];
/**
* Moderator/Admin-only commands.
* Use !modhelp or !mhelp to show these.
*/
export const adminCommands = [
{
cmd: '!send <address|.sol>',
desc: 'βοΈ Send DRIP_AMOUNT $WinLEW tokens to an address (admin only)'
},
{
cmd: '!wallet',
desc: 'π€ Show the botβs Solana public address'
},
{
cmd: '!restart',
desc: 'β»οΈ Restart the bot process (admin/mod only)'
},
{
cmd: '!debugprice',
desc: 'π§© Show all price source diagnostics'
},
{
cmd: '!modhelp',
desc: 'π οΈ Show all moderator/admin commands'
},
{
cmd: '!mhelp',
desc: 'π οΈ Show all moderator/admin commands (alternate)'
}
];
/**
* Utility function: return merged, unique commands for docs or audit.
*/
export function allCommands() {
// No duplicates, user wins if in both
const seen = {};
userCommands.forEach(c => { seen[c.cmd] = c.desc; });
adminCommands.forEach(c => { if (!seen[c.cmd]) seen[c.cmd] = c.desc; });
return Object.entries(seen).map(([cmd, desc]) => ({ cmd, desc }));
}
/**
* Dynamic formatted string for !help or !modhelp replies.
*/
export function formatCommandList(list) {
return list.map(c => `β’ \`${c.cmd}\` β ${c.desc}`).join('\n');
}