Skip to content

Commit c9c68fc

Browse files
committed
Commands parameters support
1 parent f3e39da commit c9c68fc

File tree

13 files changed

+1426
-366
lines changed

13 files changed

+1426
-366
lines changed

package-lock.json

+697-170
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+18-7
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@
1212
"lint": "echo \"No linting configured\""
1313
},
1414
"keywords": [],
15-
"author": {
16-
"name": "TedCraft",
17-
"email": "tedwo@yandex.ru"
18-
},
15+
"author": "TedCraft <tedwo@yandex.ru>",
1916
"license": "MIT",
2017
"config": {
2118
"forge": {
@@ -45,11 +42,17 @@
4542
}
4643
},
4744
"dependencies": {
48-
"copy-dir": "^1.3.0",
4945
"electron-context-menu": "^3.1.2",
5046
"electron-squirrel-startup": "^1.0.0",
47+
"copy-dir": "^1.3.0",
5148
"jquery": "^3.6.0",
52-
"monaco-editor": "^0.33.0"
49+
"monaco-editor": "^0.33.0",
50+
"@discordjs/opus": "^0.5.3",
51+
"@discordjs/rest": "^0.3.0",
52+
"@discordjs/voice": "^0.8.0",
53+
"discord-api-types": "^0.31.1",
54+
"discord-ytdl-core": "^5.0.4",
55+
"discord.js": "^13.6.0"
5356
},
5457
"devDependencies": {
5558
"@electron-forge/cli": "^6.0.0-beta.63",
@@ -58,5 +61,13 @@
5861
"@electron-forge/maker-squirrel": "^6.0.0-beta.63",
5962
"@electron-forge/maker-zip": "^6.0.0-beta.63",
6063
"electron": "18.0.4"
61-
}
64+
},
65+
"repository": {
66+
"type": "git",
67+
"url": "git+https://github.com/TedCraft/discord-bot-management-system.git"
68+
},
69+
"bugs": {
70+
"url": "https://github.com/TedCraft/discord-bot-management-system/issues"
71+
},
72+
"homepage": "https://github.com/TedCraft/discord-bot-management-system#readme"
6273
}

src/events.js

+15-18
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ ipcMain.on('show-context-menu-main', (event) => {
2727
{ type: 'separator' },
2828
{
2929
label: 'Подключить всех',
30-
click: () => { event.sender.send('context-menu-command', 'menu-item-1') }
30+
click: () => { event.sender.send('connectAll'); }
3131
},
3232
{
3333
label: 'Отключить всех',
34-
click: () => { event.sender.send('context-menu-command', 'menu-item-1') }
34+
click: () => { event.sender.send('disconnectAll') }
3535
},
3636
]
3737
createMenu(event, template)
@@ -42,24 +42,25 @@ ipcMain.on('show-context-menu-bot', (event, id) => {
4242
const template = [
4343
{
4444
label: 'Подключить',
45-
click: () => { event.sender.send('context-menu-command', 'menu-item-1') }
45+
click: () => { event.sender.send('connectBot', id) }
4646
},
4747
{
4848
label: 'Перезагрузить',
49-
click: () => { event.sender.send('context-menu-command', 'menu-item-1') }
49+
click: () => { event.sender.send('refreshBot', id) }
5050
},
5151
{
5252
label: 'Отключить',
53-
click: () => { event.sender.send('context-menu-command', 'menu-item-1') }
53+
click: () => { event.sender.send('disconnectBot', id) }
5454
},
5555
{ type: 'separator' },
5656
{
57-
label: 'Новый бот',
58-
click: () => { event.sender.send('createBotMenu'); }
57+
label: 'Открыть логи',
58+
click: () => { event.sender.send('openLogs', id) }
5959
},
60+
{ type: 'separator' },
6061
{
61-
label: 'Создать копию',
62-
click: () => { event.sender.send('context-menu-command', 'menu-item-1') }
62+
label: 'Новый бот',
63+
click: () => { event.sender.send('createBotMenu'); }
6364
},
6465
{
6566
label: 'Удалить бота',
@@ -82,12 +83,12 @@ ipcMain.on('show-context-menu-bot-eorc', (event, id) => {
8283

8384
// context menu
8485
ipcMain.on('show-context-menu-bot-eorc-group', (event, id) => {
85-
const name = id.split('-')[1] == 'events' ? 'событие': 'команду';
86-
const commandName = id.split('-')[1] == 'events' ? 'Event': 'Command';
86+
const name = id.split('-')[1] == 'events' ? 'событие' : 'команду';
87+
const commandName = id.split('-')[1] == 'events' ? 'Event' : 'Command';
8788
const template = [
8889
{
8990
label: `Создать ${name}`,
90-
click: () => { event.sender.send(`create${commandName}`, id) }
91+
click: () => { event.sender.send(`create${commandName}`, id) }
9192
},
9293
{ type: 'separator' },
9394
{
@@ -105,8 +106,8 @@ ipcMain.on('show-context-menu-bot-eorc-group', (event, id) => {
105106

106107
// context menu
107108
ipcMain.on('show-context-menu-bot-eorc-group-events', (event, id) => {
108-
const name = id.split('-')[1] == 'events' ? 'событие': 'команду';
109-
const commandName = id.split('-')[1] == 'events' ? 'Event': 'Command';
109+
const name = id.split('-')[1] == 'events' ? 'событие' : 'команду';
110+
const commandName = id.split('-')[1] == 'events' ? 'Event' : 'Command';
110111
const template = [
111112
{
112113
label: `Создать событие`,
@@ -132,10 +133,6 @@ ipcMain.on('show-context-menu-bot-eorc-group-commands', (event, id) => {
132133
label: `Создать команду`,
133134
click: () => { event.sender.send(`createCommand`, id) }
134135
},
135-
{
136-
label: `Редактировать команду`,
137-
click: () => { event.sender.send('context-menu-command', 'menu-item-1') }
138-
},
139136
{
140137
label: `Удалить команду`,
141138
click: () => { event.sender.send(`deleteCommand`, id) }

src/functions.js

+34-24
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
module.exports = {
2-
createNavTab(navTabId, navTabName, navMenuId, navMenuContent) {
2+
createNavTab(navTabId, navTabName, navMenuId, navMenuContent, customCloseButton = 'closeNavTabs') {
33
if (!document.getElementById(navTabId)) {
44
const navTab = document.getElementById("nav-tab");
55
navTab.innerHTML +=
66
`<a class="nav-link" id="${navTabId}" data-bs-toggle="tab" data-bs-target="#${navMenuId}" type="button"
77
role="tab" aria-controls="${navMenuId}" aria-selected="false">${navTabName}
8-
<button type="button" class="btn-close" aria-label="Close" onclick="closeNavTabs('${navTabId}', '${navMenuId}')"></button></a>`;
8+
<button type="button" class="btn-close" aria-label="Close" onclick="${customCloseButton}('${navTabId}', '${navMenuId}')"></button></a>`;
9+
navTab.normalize();
910

1011
const navContent = document.getElementById("nav-tabContent");
1112
const contentElem = document.createElement('div');
@@ -14,9 +15,10 @@ module.exports = {
1415
contentElem.setAttribute('role', 'tabpanel');
1516
contentElem.setAttribute('aria-labelledby', `${navTabId}`);
1617
contentElem.innerHTML +=
17-
`<div class="p-3">
18-
${navMenuContent}
19-
</div>`;
18+
`<div class="p-3">` +
19+
`${navMenuContent}` +
20+
`</div>`;
21+
contentElem.normalize();
2022
navContent.appendChild(contentElem);
2123

2224
const tab = new bootstrap.Tab(navTab.lastChild)
@@ -27,26 +29,24 @@ module.exports = {
2729
createModal(content, onclick, label, buttonLabel, buttons = "") {
2830
if (!document.getElementById("staticBackdrop")) {
2931
const modal = document.getElementById("modal");
32+
3033
modal.innerHTML =
31-
`<div class="modal fade" id="staticBackdrop" data-bs-backdrop="static" data-bs-keyboard="false"
32-
tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
33-
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered">
34-
<div class="modal-content">
35-
<div class="modal-header">
36-
<h5 class="modal-title" id="staticBackdropLabel">${label}</h5>
37-
<button type="button" class="btn-close" data-bs-dismiss="modal"
38-
aria-label="Close" onclick="closeModal()"></button>
39-
</div>
40-
<div class="modal-body">
41-
${content}
42-
</div>
43-
<div class="modal-footer">
44-
${buttons}
45-
<button type="button" class="btn btn-primary" onclick="${onclick}">${buttonLabel}</button>
46-
</div>
47-
</div>
48-
</div>
49-
</div>`;
34+
`<div class="modal fade" id="staticBackdrop" data-bs-backdrop="static" data-bs-keyboard="false"` +
35+
`tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">` +
36+
`<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered">` +
37+
`<div class="modal-content">` +
38+
`<div class="modal-header">` +
39+
`<h5 class="modal-title" id="staticBackdropLabel">${label}</h5>` +
40+
`<button type="button" class="btn-close" data-bs-dismiss="modal"` +
41+
`aria-label="Close" onclick="closeModal()"></button>` +
42+
`</div>` +
43+
`<div class="modal-body" id="modal-body">${content}</div>` +
44+
`<div class="modal-footer">${buttons}<button type="button" class="btn btn-primary" onclick="${onclick}">${buttonLabel}</button>` +
45+
`</div>` +
46+
`</div>` +
47+
`</div>` +
48+
`</div>`;
49+
modal.normalize();
5050

5151
bootstrap.Modal.getOrCreateInstance(document.getElementById("staticBackdrop")).show();
5252
}
@@ -75,8 +75,18 @@ module.exports = {
7575
</div>
7676
</div>
7777
</div>`;
78+
modal.normalize();
7879

7980
bootstrap.Modal.getOrCreateInstance(document.getElementById("staticBackdrop")).show();
8081
}
82+
},
83+
84+
async closeModal() {
85+
const elem = document.getElementById("staticBackdrop");
86+
elem.addEventListener('hidden.bs.modal', function (event) {
87+
document.getElementById("modal").innerHTML = "";
88+
});
89+
const modal = bootstrap.Modal.getInstance(elem);
90+
modal.hide();
8191
}
8292
}

src/index.html

+1-5
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,7 @@
1717
integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4"
1818
crossorigin="anonymous"></script>
1919

20-
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"
21-
integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1"
22-
crossorigin="anonymous"></script>
23-
24-
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
20+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css">
2521
<link rel="stylesheet" href="style.css">
2622
</head>
2723

0 commit comments

Comments
 (0)