Zanim będziemy hostować bota na serwer Discord w systemie Linux, to objaśnię Wam co to jest bot na Discordzie.
Co to jest bot na Discordzie?
Bot swoją nazwę wziął od słowa robot, ponieważ ma wiele z nim wspólnego. Bot to program komputerowy, którego celem jest zastępowanie niektórych funkcji, jakie pełni człowiek. Boty na serwerach Discord mogą być niezwykle przydatne ponieważ mogą wykonać za niego naprawdę sporo pracy administracyjnej.
Między innymi mogą witać nowych użytkowników, kontrolować dyskusję, a także w razie potrzeby zablokować kogoś, kto nie przestrzega zasad obowiązujących na grupie. Bot może posiadać również rozrywkowe możliwość tj. odtwarzanie muzyki, dodawanie ankiet bądź też memów.
Podzielę ten artykuł na wersję bota Discord zarówno jako w języku Python jak i JavaScript, gdyż w tych językach możemy pisać takowe boty.
Python
- Instalacja menadżera pakietów Python pip.
> sudo apt install python3-pip -y
2. Instalacja wrappera Discord API dla Pythona.
> pip install discord.py
Tworzenie bota Discord w Python.
a) przełącz się na swój domowy katalog – cd ~
b) utwórz folder projektu – mkdir discord-bot-python
c) przechodzimy do folderu discord-bot-python – cd discord-bot-python
d) utwórz plik python o nazwie discord_bot_python.py – nano discord_bot_python.py
e) wklej ten przykładowy kod do swojego discord_bot_python.py- , – Na tym plik. Zastąp <YOUR BOT TOKEN> Z tokenem, który zostanie utworzony podczas tego jak stworzymy nową aplikację „bota” w Discord Developer Portal:
import discord
TOKEN = '<YOUR BOT TOKEN>'
client = discord.Client()
@client.event
async def on_ready():
print('We have successfully loggged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.lower() == 'hello':
await message.channel.send(f'Hello, {message.author.display_name}!')
return
if message.content.lower() == 'bye':
await message.channel.send(f'See you later, {message.author.display_name}!')
return
client.run(TOKEN)
f) zapisz i wyjdź z pliku.
- Uruchomienie bota Discord w oparciu o Pythona.
Twój bot Discord przestaje działać po wyjściu z sesji SSH. Aby utrzymać bota w pełnym wymiarze godzin (czyli po prostu cały czas), użyj Tmux lub PM2.
Tmux:
a) instalacja Tmux’a – sudo apt-get update && sudo apt-get -y install tmux
b) utwórz sesję tmux:
- tmux new -s DiscordBotPython
c) zmiana w katalogu projektu Discord Bot Python – cd ~/discord-bot-python
d) uruchom bota – python3 discord_bot_python.py
Aby zatrzymać bota Discord, naciśnij Ctrl + C
PM2:
a) zainstaluj npm – apt install npm -y
b) instalacja pm2 – npm install -g pm2
c) zmiana katalogu projektu – discord-bot-python – cd ~/discord-bot-python
d) uruchom bota – pm2 start discord_bot_python.py –interpreter=/usr/bin/python3
Lub po prostu wrzucasz pliki bota na serwer FTP, jeżeli go tworzysz za pośrednictwem programu, np. Visual Studio Code i tylko używasz jednego z dwóch do uruchomienia bota, pm2 lub tmux’a.
JavaScript
Instalacja ważnych programów> apt install -y ca-certificates curl gnupg
- Utwórz katalog keyrings, a następnie w nim rozszyfruj klucz nodesource
> mkdir /etc/apt/keyrings
> curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
- Utwórz zmienną określającą wersję NodeJS (np. 20, 18), dopisz nodejs do listy aplikacji, oraz zainstaluj nodeJS
> NODE_MAJOR=20
> echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
> apt update && apt install nodejs -y
- Sprawdź poprawność instalacji nodeJS oraz NPM
> nodejs -v
> npm -v
- Utwórz i przejdź do folderu w którym ma znajdować się bot. Do tego folderu wgrywamy pliki naszego bota.
> mkdir /home/discordbot
> cd /home/discordbot
- Zainstaluj wymagane moduły (w naszym wypadku tylko discord.js)
> npm install discord.js
- Sprawdźmy czy bot się uruchamia.
> node index.js (lub też src/index.js) w zależności od tego jak masz to zrobione. Ten src to folder.