From 6518c8adda0e7480f482f4e6241cc29b1241ae75 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 20 Jun 2020 12:37:22 -0400 Subject: [PATCH 1/2] update for bastion v8 adds mongo to the main image and uses it in the server. --- bots/discord/bastion/egg-bastion.json | 57 ++++++++++++++++++++------- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/bots/discord/bastion/egg-bastion.json b/bots/discord/bastion/egg-bastion.json index 4355f1d8..3ba87287 100644 --- a/bots/discord/bastion/egg-bastion.json +++ b/bots/discord/bastion/egg-bastion.json @@ -3,35 +3,26 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-05-06T23:13:44-04:00", + "exported_at": "2020-06-20T12:36:24-04:00", "name": "Bastion", "author": "parker@parkervcp.com", "description": "Bastion is an all-in-one multipurpose Discord bot that can do a whole bunch of things and its features are expanding daily. Bastion does everything most people will ever need it to do. Check out some feature highlights below to get a peek into the vast feature list of Bastion. And if you think Bastion lacks some feature, please send a suggestion and we will add it to Bastion as soon as possible.", "image": "quay.io\/parkervcp\/pterodactyl-images:bot_bastion", - "startup": "node -r .\/utils\/globals.js .", + "startup": "\"rmv() { echo -e \"stopping nodejs\"; for i in $(pgrep node); do kill $i; done; echo -e \"stopping mongo\"; mongo --eval \\\"db.getSiblingDB('admin').shutdownServer()\\\" ; }; trap \\'echo -e \\\"ctrl-c caught\\\" && rmv\\'; mongod --fork --dbpath \/home\/container\/mongodb\/ --port 27017 --logpath \/home\/container\/mongod.log && until nc -z -v -w5 127.0.0.1 27017; do echo 'Waiting for mongodb connection...'; sleep 5; done && yarn start\"", "config": { - "files": "{\r\n \"settings\/credentials.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"botId\": \"{{server.build.env.BOT_ID}}\",\r\n \"token\": \"{{server.build.env.BOT_TOKEN}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"settings\/credentials.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"token\": \"{{server.build.env.BOT_TOKEN}}\"\r\n }\r\n },\r\n \"settings\/configurations.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"presence.status\": \"{{server.build.env.STATUS}}\",\r\n \"presence.activity.type\": \"{{server.build.env.ACTIVITY}}\",\r\n \"presence.activity.name\": \"{{server.build.env.PLAYING}}\",\r\n \"presence.activity.url\": \"{{server.build.env.STREAM_URL}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"I'm ready to roll!\"\r\n}", "logs": "{}", "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Bastion Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n\r\n## Install Requirements\r\napk --no-cache add python g++ make git\r\n\r\n## Move to install folder\r\ncd \/mnt\/server\/\r\n\r\n## Clone repo\r\ngit clone -b stable -q --depth 1 https:\/\/github.com\/TheBastionBot\/Bastion.git .\/\r\n\r\n## Install node_modules\r\nyarn install --only=production\r\n\r\n## Move config files.\r\nmv settings\/credentials.example.yaml settings\/credentials.yaml\r\nmv settings\/configurations.example.yaml settings\/configurations.yaml", - "container": "node:10-alpine", - "entrypoint": "ash" + "script": "#!\/bin\/bash\r\n# Bastion Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## Move to install folder\r\ncd \/mnt\/server\/\r\n\r\n## Clone repo\r\ngit clone -q --depth 1 https:\/\/github.com\/TheBastionBot\/Bastion.git .\/\r\n\r\n## Install node_modules\r\nyarn install --only=production\r\n\r\n## Move config files.\r\nmv settings\/credentials.example.yaml settings\/credentials.yaml\r\nmv settings\/configurations.example.yaml settings\/configurations.yaml\r\n\r\n## make folders for mongodb\r\nmkdir mongodb\/", + "container": "node:12-buster", + "entrypoint": "bash" } }, "variables": [ - { - "name": "Bot ID", - "description": "The Bot ID you get from https:\/\/discordapp.com\/developers\/applications\/", - "env_variable": "BOT_ID", - "default_value": "GETABOTID", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:32" - }, { "name": "Bot Token", "description": "The Bot ID you get from https:\/\/discordapp.com\/developers\/applications\/", @@ -40,6 +31,42 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|string|max:64" + }, + { + "name": "Bot Status", + "description": "valid values are `online`, `idle`, `dnd` and `invisible`", + "env_variable": "STATUS", + "default_value": "online", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Activity Type", + "description": "valid options are `PLAYING`, `LISTENING`, `WATCHING` and `STREAMING`", + "env_variable": "ACTIVITY", + "default_value": "PLAYING", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:9" + }, + { + "name": "ACTIVITY", + "description": "What the bot is doing", + "env_variable": "PLAYING", + "default_value": "on a pterodactyl server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:64" + }, + { + "name": "Stream URL", + "description": "If the bot activity is set to `STREAMING`", + "env_variable": "STREAM_URL", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|max:64" } ] } \ No newline at end of file From 5845d140b89fb02e22868a856f731ef5603a4694 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 20 Jun 2020 13:12:36 -0400 Subject: [PATCH 2/2] fix startup and update readme fix catching the startup correctly updates the readme for the intents issue. --- bots/discord/bastion/README.md | 4 ++++ bots/discord/bastion/egg-bastion.json | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bots/discord/bastion/README.md b/bots/discord/bastion/README.md index c57d5814..1dc840db 100644 --- a/bots/discord/bastion/README.md +++ b/bots/discord/bastion/README.md @@ -5,5 +5,9 @@ Give awesome perks to your Discord server! ### Install notes Due to rate limiting the console on the panel cannot keep up with the game console and the build will complete before the panel console may show it. Reloading the console will load it to the latest part of the log. +## Running the bot +You need to enable both `Privileged Gateway Intents` for the bot to run. +Enable this from `https://discord.com/developers/applications//bot` + ### Server Ports No Ports are required for the bastion bot. \ No newline at end of file diff --git a/bots/discord/bastion/egg-bastion.json b/bots/discord/bastion/egg-bastion.json index 3ba87287..5a298b10 100644 --- a/bots/discord/bastion/egg-bastion.json +++ b/bots/discord/bastion/egg-bastion.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2020-06-20T12:36:24-04:00", + "exported_at": "2020-06-20T13:11:43-04:00", "name": "Bastion", "author": "parker@parkervcp.com", "description": "Bastion is an all-in-one multipurpose Discord bot that can do a whole bunch of things and its features are expanding daily. Bastion does everything most people will ever need it to do. Check out some feature highlights below to get a peek into the vast feature list of Bastion. And if you think Bastion lacks some feature, please send a suggestion and we will add it to Bastion as soon as possible.", @@ -11,7 +11,7 @@ "startup": "\"rmv() { echo -e \"stopping nodejs\"; for i in $(pgrep node); do kill $i; done; echo -e \"stopping mongo\"; mongo --eval \\\"db.getSiblingDB('admin').shutdownServer()\\\" ; }; trap \\'echo -e \\\"ctrl-c caught\\\" && rmv\\'; mongod --fork --dbpath \/home\/container\/mongodb\/ --port 27017 --logpath \/home\/container\/mongod.log && until nc -z -v -w5 127.0.0.1 27017; do echo 'Waiting for mongodb connection...'; sleep 5; done && yarn start\"", "config": { "files": "{\r\n \"settings\/credentials.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"token\": \"{{server.build.env.BOT_TOKEN}}\"\r\n }\r\n },\r\n \"settings\/configurations.yaml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"presence.status\": \"{{server.build.env.STATUS}}\",\r\n \"presence.activity.type\": \"{{server.build.env.ACTIVITY}}\",\r\n \"presence.activity.name\": \"{{server.build.env.PLAYING}}\",\r\n \"presence.activity.url\": \"{{server.build.env.STREAM_URL}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"I'm ready to roll!\"\r\n}", + "startup": "{\r\n \"done\": \"Systems Ready!\"\r\n}", "logs": "{}", "stop": "^C" },