Skocz do zawartości
  • Pierwszy bot dla Discorda #2 - Tworzymy plik główny

       (3 opinie)

    Losowy awatar

    W tym odcinku zajmiemy się stworzeniem pliku głównego. Przed przeczytaniem tego poradnika warto też zapoznać się z poprzednią częścią, którą można znaleźć tutaj. Repozytorium z kodem można znaleźć tutaj.

    Główny kod naszego bota umieścimy w pliku server.js, który oczywiście musimy najpierw utworzyć w folderze głównym. Po zrobieniu tego możemy rozpocząć jego edycję.

    W pierwszej kolejności na początku pliku standardowo umieszczamy dyrektywę uruchamiającą strict mode.

    'use strict';

    Importujemy moduł fs i path, które wykorzystamy do wczytania pliku config.json i package.json oraz modułów wewnętrznych.

    const fs = require('fs');
    const path = require('path');

    Następnie importujemy bibliotekę, którą wykorzystamy do stworzenia naszego bota - discord.js.

    const Discord = require('discord.js');

    Ostatnią rzeczą, którą zrobimy, będzie zaimportowanie konfiguracji oraz pliku package.json - korzystając z funkcji JSON.parse przetworzymy zawartość pliku dostępnego pod ścieżką wygenerowaną przez path.join, odczytaną za pomocą funkcji fs.readFileSync (używamy funkcji synchronicznej ze względu na to, że plik ten wczytujemy jednorazowo).

    const config = JSON.parse(fs.readFileSync(path.join(__dirname, 'config.json')));
    const packageInfo = JSON.parse(fs.readFileSync(path.join(__dirname, 'package.json')));

    Zaimportowaliśmy już wszystkie gotowe moduły. Teraz utworzymy nową instancję klienta Discord.

    const client = new Discord.Client();

    Następnie ustawimy funkcję wywoływaną po połączeniu się z API Discorda przez bota.

    client.on('ready', () => {
    
    });

    Wewnątrz ustawiamy status naszego bota na !pomoc | v{wersja} za pomocą funkcji client.user.setActivity - wersję pobieramy z pliku package.json, który wcześniej zaimportowaliśmy.

    client.user.setActivity(`!pomoc | v${packageInfo.version}`);

    Następnie przygotowujemy informację o gotowości, który będzie się pojawiać w konsoli po udanym połączeniu się z API Discorda.

    console.log('Client is ready!');

    Kod powinien teraz wyglądać w ten sposób:

    client.on('ready', () => {
        client.user.setActivity(`!pomoc | v${packageInfo.version}`);
        console.log('Client is ready!');
    });

    Teraz zajmiemy się ustawieniem funkcji wywoływaniu przez bota po tym, jak na jednym z dostępnych dla niego kanałów tekstowych zostanie wysłana nowa wiadomość.

    client.on('message', message => {
    
    });

    Wewnątrz funkcji umieszczamy w pierwszej kolejności argumenty komendy. Aby je uzyskać usuniemy z zawartości wiadomości (message.content) niepotrzebne spacje (i część innych znaków specjalnych) za pomocą funkcji trim, a następnie rozdzielimy ją za pomocą wyrażenia regularnego \s+, odpowiadającego dowolnej ilości spacji.

    const args = message.content.trim().split(/\s+/);

    Pod tym umieścimy instrukcję switch, wykonującą podaną przez nas polecenia zależnie od wartości args[0].toLowerCase() - na razie pozostawimy ją pustą.

    switch(args[0].toLowerCase()) {
    
    }

    Nasz kod powinien teraz wyglądać tak:

    client.on('message', message => {
        const args = message.content.trim().split(/\s+/);
    
        switch(args[0].toLowerCase()) {
    
        }
    });

    Na końcu pliku używając funkcji client.login spowodujemy połączenie się naszego bota z API Discorda.

    client.login(config.token);

    Plik główny naszego bota jest teraz gotowy!



    Opinie użytkowników

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Losowy awatar

    Michaux0

    Zgłoszenie ·

       2 z 4 użytkowników uznało tę opinię za pomocną 2 / 4 użytkowników

    A po co kombinować z fs i path? Wystarczy zrobić

    const data = require('./plik.json');

    No i jeszcze ja klienta nazwałbym z dużej litery bo jest to instancja klasy, ale to już zależy od piszącego.

    Podziel się tą opinią


    Odnośnik do opinii
    Losowy awatar

    Zgłoszenie ·

       0 z 4 użytkowników uznało tę opinię za pomocną 0 / 4 użytkowników

    W Python łatwiej dało by się to napisać.

    Podziel się tą opinią


    Odnośnik do opinii

×